In einem Projekt hatte ich die Aufgabe, einen Plug & Play Hotspot mit einem WLAN-Stick auf einem Raspberry Pi zu realisieren. Das hat soweit auch recht einfach funktioniert, eine Sache jedoch hatte mir mehr Probleme bereitet: Einen unterstützten WLAN-Stick zu finden.
Nach zwei Fehlkäufen und einer Menge Frust hatte ich in den Tiefen meiner Schubladen glücklicherweise noch einen uralten DLINK-Wlan Stick gefunden der von meinem Linux-System erkannt wurde. Das Problem dabei ist jedoch, dass es diesen WLAN-Stick nicht mehr zu kaufen gibt. Dieser WLAN-Stick verwendet den Chipsatz Ralink RT3072 - dieser wird nativ unterstützt und ist somit direkt einsatzbereit. Die beiden neuen WLAN-Sticks konnte ich erst nach dem manuellen kompilieren und installieren zusätzlicher Treiber verwenden.
Es geht speziell um den Chipsatz Realtek RTL8192EU der in beiden WLAN-Sticks verwendet wird. In diesem Tutorial werden wir die Treiber für den Chipsatz Realtek RTL8192EU unter Linux kompilieren und installieren.
Zum Kapitel springen WLAN-Stick prüfen
Um zu prüfen, ob ein WLAN-Stick bereits als unterstützte Netzwerk-Schnittstelle erkannt wird, kann man sich die unter Linux Network-Interfaces auflisten lassen. Mit diesem Befehl erhält man einen Überblick über alle verfügbaren Netzwerk-Schnittstellen, auch die für WLAN:
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
[...]
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
[...]
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether bc:f6:85:02:59:25 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Anhand der Schnittstelle wlan0
ist ersichtlich, dass der WLAN-Stick bereits ohne zutun erkannt wird. Das ist der Best-Case - der WLAN-Stick wird direkt erkannt und kann genutzt werden. Ein Blick in die Übersicht der USB-Geräte zeigt, welcher Chipsatz vom WLAN-Stick genutzt wird:
lsusb
Bus 001 Device 011: ID 07d1:3c0a D-Link System DWA-140 RangeBooster N Adapter(rev.B2) [Ralink RT3072]
In diesem Fall mit dem Chipsatz RT3072
. Auch wenn dieser WLAN-Stick direkt erkannt wird ist dies nicht immer der Fall.
Zum Kapitel springen Chipsatz validieren
Bei dem Versuch, einen anderen WLAN-Stick zu verbinden, wird keine wlan0
Netzwerkschnittstelle erkannt. Beim Prüfen des Chipsatzen über den Befehl lsusb
wird ersichtlich, um welchen Chipsatz es sich bei diesem Stick handelt:
Bus 001 Device 012: ID 2357:0109 TP-Link TL-WN823N v2/v3 [Realtek RTL8192EU]
Es wird der Chipsatz Realtek RTL8192EU verwendet. Gut für uns, denn genau diese Treiber werden wir in diesem Tutorial kompilieren und installieren. Auch wenn aktuell keine wlan0
Schnittstelle erkannt wird, wird das nach dem Tutorial der Fall sein.
Der Aufruf von lsusb
ist jedoch leider keine Garantie, den Chipsatz herauszufinden. Ein dritter WLAN-Stick zeigt dies:
Bus 001 Device 013: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Selbst mit der erweiterten Ausgabe lsusb -v
gibt es keinerlei Informationen zum verwendeten Chipsatz.
Stelle vor der Durchführung also, sicher, dass dein WLAN-Stick über den Realtek RTL8192EU
Chipsatz verfügt. Anderenfalls wird dein WLAN-Stick auch nach der Treiberinstallation nicht erkannt.
Mit der Installation der Treiber ist folgender WLAN-Stick kompatibel und getestet:
Grundsätzlich können nach der Installation aber alle WLAN-Sticks mit dem Chipsatz RTL8192EU verwendet werden.
Produktempfehlungen und -suche in Verbindung mit dem Amazon Partnerprogramm:
¹ Angaben ohne Gewähr. Bei einem Kauf über den Link erhalten wir eine Provision.
Zum Kapitel springen Treiber installieren
Für die Installation der Treiber wird auf die GIT-Repository rtl8192eu-linux zurückgegriffen. Stand 12.04.2024 unterstützt dieser Treiber alle Kernel bis zu Version 6.6 – um die aktuelle Kernel Version abzufragen kann folgender Befehl in der Konsole abgesetzt werden:
uname -r
5.10.152-rt75-v7l
Du kannst den Support der Kernel-Version jederzeit über das Repository prüfen. Als Systemarchitektur wird x86 sowie ARM unterstützt.
Zum Kapitel springen Benötigte Pakete
Um den Treiber auf einem Raspberry Pi kompilieren und installieren zu können müssen auf einem Raspberry Pi folgende Header-, Build-, DKMS- und Git-Pakete installiert werden.
sudo apt install git raspberrypi-kernel-headers build-essential dkms
Achte darauf, dass du das passende Header-Paket für dein spezifisches System installierst. Du findest in der Dokumentation die passenden Pakete für:
- Debian, Ubuntu, Mint
- Fedora
- RHEL, CentOS
- Arch Linux, Manjaro
- openSUSE
Zum Kapitel springen Download der Treiber
Nach der Installation der passenden Pakete kann das GIT-Repository heruntergeladen werden. Wechsle dafür zunächst in das Home-Verzeichnis, klone dir dann das GIT-Repository und wechsle in den Ordner:
cd ~
git clone https://github.com/clnhub/rtl8192eu-linux.git
cd rtl8192eu-linux
Zum Kapitel springen Makefile anpassen
Wenn du eine andere Architektur als x86 verwendest, was auch bei meinem Raspberry Pi der Fall ist, muss die Makefile
bearbeitet werden. Diese enthält definitionen zum Kompilieren. Deine Architektur kannst du mit dem folgenden Befehl auslesen:
dpkg --print-architecture
arm64
nano Makefile
In der Datei müssen zwei Zeilen bearbeitet werden; Mit Strg + W
kann nach Inhalten in der Datei gesucht werden.
Vor der Bearbeitung | Nach der Bearbeitung |
---|---|
CONFIG_PLATFORM_I386_PC = y | CONFIG_PLATFORM_I386_PC = n |
CONFIG_PLATFORM_ARM_RPI = n | CONFIG_PLATFORM_ARM_RPI = y |
Wenn diese beiden Zeilen geändert wurden, kann man die Datei mit Strg + O speichern und den Editor mit Strg + X schließen.
Zum Kapitel springen Treiber installation
Nach allen Installationen und Anpassungen kann der Treiber installiert werden. Dazu reicht ein weiterer Befehl in der Konsole:
./install_wifi.sh
Je nach verwendeter Hardware kann das Kompilieren einige Zeit in Anspruch nehmen. Warte also, bis der Prozess vollständig beendet ist, auch wenn es so scheint, als würde nichts passieren.
Nach der Installation des Treibers öffnet sich eine Konfigurationsdatei. Diese kann ohne weitere Bearbeitung geschlossen werden.
Anschließend ist es ratsam, das System via sudo reboot now
neuzustarten.
Zum Kapitel springen Installation prüfen
Anhand des Kapitels WLAN-Stick prüfen kann nun erneut geprüft werden, ob der WLAN-Stick als Netzwerkschnittstelle wlan0
erkannt wird.