Wer Linux einsetzen will, kauft nicht selten ein Notebook ohne vorinstalliertes Windows. Das ist günstiger und man hat Microsoft sein Geld nicht in den Rachen geworfen. Meistens ist auf solchen Notebooks FreeDOS vorinstalliert, was als Betriebssystem nur sehr knapp oberhalb von vollkommen überflüssig rangiert. Also muss ein ordentliches Linux drauf. Gerade Einsteiger greifen dabei gerne nach Ubuntu oder Mint. Beide Distributionen lassen sich leicht in der aktuellen Version herunterladen und installieren. Aber schnell folgt die Ernüchterung: es ist kein Netzwerkzugriff möglich.
Notebooks haben keine sehr lange Verkaufsspanne im Handel. Da wird ein Modell auf den Markt geworfen, abverkauft und schon binnen Wochen durch den Nachfolger ersetzt. Sehr schnell können neuere Generationen von Hardwareteilen darin verbaut werden. Auf der anderen Seite nutzen viele Anwender von Linux gerne LTS-Versionen (Long Time Support), die etwa fünf Jahre lang Updates erhalten. Diese Distributionen sind allerdings relativ konservativ, was die Aktualität der verwendeten Software betrifft. Da kann es gut passieren, dass die Distribution einfach noch keine Treiber enthält, um diese neue Hardware anzusteuern.
Auf meinem Schreibtisch steht vor mir gerade ein Beispiel. Ein Freund hat sich ein HP Notebook gekauft, auf dem FreeDOS und die HP-Handbücher installiert waren. Die Bootoption der Handbücher bezieht sich übrigens auf eine komplette Debian Bullseye-Installation, deren einziger Zweck es ist, diese Handbücher anzuzeigen. Wäre sicher mal interessant zu schauen, ob diese Debian-Installation nicht auch schon brauchbar wäre. Aber das nur am Rande.
Da besagter Freund zwar schon seit Jahren Linux Mint nutzt, selbst aber keine besonderen Kenntnisse in diesem System besitzt, eben ein normaler Anwender, hat er mich gebeten, ihm dieses System zu installieren. Das zurzeit aktuelle Linux Mint ist Version 21.2, „Victoria“. Ich habe dieses auf einen USB-Stick gezogen und installiert. Soweit, so Routine.
Linux Mint 21.2 benutzt einen Kernel (Betriebssystemkern) Version 5.15.79. Dieser Kernel ist wohlerprobt, aber er verfügt nicht unbedingt über die allerneuesten Treiber. So auch in diesem Fall: der WLAN-Chip wird nicht erkannt. Bei heutigen Notebooks ist der WLAN-Chip aber die einzige vorhandene Netzwerktechnik, Ethernet-Ports für den Kabelanschluss werden nicht mehr grundsätzlich verbaut.
Wie bringe ich das Linux-Notebook ohne WLAN ins Netz?
Die einfachste Möglichkeit ist es, das Notebook an ein relativ neues Handy anzuschließen, das das sogenannte „USB-Tethering“ unterstützt. Mein Xiaomi besitzt dafür in den Einstellungen im Bereich „Hotspot“ eine Einschaltmöglichkeit. Voraussetzung ist, dass das Handy mit seinem Ladekabel an den USB-Port des Notebooks angeschlossen wird. Wenn das Handy selbst im WLAN ist, fungiert es nun als Zugang zum WLAN. Aber Obacht! Sollte es im Mobilnetz sein, funktioniert das auch, aber alle Daten fließen dann über das Mobilnetz und belasten die Flatrate. Auch ein Bluetooth-Tethering mag übrigens möglich sein, aber die USB-Kabel-Variante ist weniger problembehaftet.
Die Hürde, das Internet nicht nutzen zu können, ist damit schon mal genommen. Wir wollen aber logischerweise lieber den eingebauten WLAN-Chip benutzen. Es gibt jetzt einiges an Befehlszeilen-Yoga, um herauszufinden, welchen WLAN-Chip der Hersteller überhaupt verbaut hat, um dann die notwendigen Treiber herunterzuladen und ggf. verfügbar zu machen… Aber wir wollen es hier möglichst einfach halten.
Synaptic: Alle verfügbaren Pakete für das System
Auf jedem Ubuntu- oder Mint-System und auch bei den meisten anderen Linux-Distributionen dürfte ein Programm namens „Synaptic“ enthalten sein. Anders als die normalen „App Stores“, also Programme für die Installation von Anwendungen, enthält Synaptic einfach eine lange Liste von Paketen. Das ist nicht besonders übersichtlich, aber in unserem Fall genau das richtige.
In der Liste der Pakete sind bereits installierte Pakete grün markiert. Alles, was keine Markierung im Kästchen links hat, steht zur Verfügung.
Gerade für solche Fälle, in denen die Hardware vom aktuellen generischen Kernel des Distribution nicht unterstützt wird, gibt es bei Ubuntu und Mint eine Möglichkeit namens HWE, das steht für Hardware Enablement, also „Hardware-Verfügbarmachung“. Wenn wir die angezeigte Liste der Kernelpakete durchscrollen, erreichen wir einen Eintrag namens (derzeit) linux-generic-hwe-22.04. Daneben steht etwas von einer neuesten Version 6.20.26.26. Das ist die Kernelversion. Dieser Kernel ist zum aktuellen Zeitpunkt brandneu und sollte alle notwendigen Treiber mitbringen. Wählt man dieses Paket nun aus, indem man die Schaltfläche links markiert (zur Installation vormerken), dann werden automatisch auch alle weiteren notwendigen Pakete markiert. Durch Druck auf die Schaltfläche „Anwenden“ oben werden diese Pakete nun installiert.
Anschließend startet man das System neu, entfernt das Handy und der neue Kernel 6.20 läuft bereits. Im Falle des vor mir stehenden Notebooks war sonst nichts weiter notwendig. Das WLAN wurde anstandslos erkannt, nach Eingabe des Schlüssels wurde der darin gefundene Drucker sofort installiert, ohne dass ich irgendetwas tun musste. Mission erfolgreich beendet.
Was ist der Nachteil dieser Methode?
Diese Methode hat einen kleinen Nachteil, der ggfs. später zu Problemen führen könnte: der neue Kernel ist kein LTS-Kernel, er erhält also nicht für die nächsten fünf Jahre laufend Updates, sondern er wird nur ein halbes Jahr gepflegt und muss dann durch den nächsten Kernel ersetzt werden. Man verliert also, bezogen auf den Kernel, die LTS-Funktion. Das Versions-Update für den Kernel sollte aber automatisch angeboten werden. Nach Ablauf der LTS-Phase der Distribution sollte die nächste dann mit einem Kernel beginnen, in der das benutzte Notebook dann kein HWE mehr benötigt, sondern den dann normalen generischen Kernel benutzen kann.
Warum wird diese Methode so geheim gehalten?
Das muss ich mich ehrlich fragen. Wenn man nach dem Problem googelt, findet man jede Menge deutlich komplexere Lösungsansätze. Man soll eine externe Paketquelle für neuere Kernel einbinden, man soll an der Befehlszeile ermitteln, welchen Chip man einsetzt, und dann den Treiber dafür selbst kompilieren usw. Ja, das ist alles auch möglich, aber wozu?
Warum prüfen die Distributionen nicht bei der Installation, ob die Verbindung nach draußen ins Internet möglich ist? Es sollte wirklich kein Problem sein, mit einem kleinen Skript zu prüfen, ob ein WLAN-Treiber im Livesystem aktiviert wurde. Ist das nicht der Fall und gibt es keine Ethernet-Schnittstelle, gibt es auch keine Internetverbindung.
Wenn das erkannt wird, könnte man doch eine Meldung zwischenschalten: „Wir konnten keine Möglichkeit einrichten, eine Internetverbindung herzustellen. Wahrscheinlich verwendet Ihr Gerät sehr neue Komponenten. Wir empfehlen daher die Verwendung eines aktuelleren Kernels, als unsere LTS-Version normalerweise einsetzt, um diese Komponenten nutzen zu können.“ Man könnte dann eine Kernel-Auswahl anbieten. Man könnte diese Auswahl auch schon zum Testen in das Bootmenü aufnehmen. Vielleicht mit sprechenden Namen: Kernel 5.15 für Langzeit-Support auf Ihrem bewährten Gerät, Kernel 6.2 für die Verwendung auf einem fabrikneuen Gerät – häufigere Kernelupdates bis zur nächsten LTS erforderlich.
Ich bin der Ansicht, dass dies eine häufige Hürde für Einsteiger ausräumen würde. Oder liege ich da falsch? Spricht etwas gegen diese Lösung? Bitte nutzt die Kommentare für eure Ansichten zu diesem Thema.