Passwort vergessen?

Benutzername vergessen?

Alles rund um IT, Web und Entwicklung.
Von Nutzern für Nutzer.

Stabile Verbindung mit Realtek RTL8188EU unter Linux



Der Realtek RTL8188EU ist ein weit verbreiteter Chipsatz in Embedded Geräten. Dieser wird bespielsweise in Android Boxen auf Rockchip Basis oder in USB Sticks verwendet.



Leider gibt es bei manchen Geräten das Problem, dass die WLAN Verbindung nach einiger Zeit zusammenbricht bzw. die Sendeleistung heruntergefahren wird. Teilweise fällt die Verbindung auch komplett aus.

Die Ursache ist auf zwei Funktionen zurückzuführen:

  • USB Autosuspend - Der RTL8188 Chipsatz ist per USB angebunden. Um im Idle Betrieb Strom zu sparen, kann der Linux Kernel den USB Port in den Schlafmodus versetzen.

  • Power Management - Auch der Chipsatz an sich bringt ein integriertes Power Management mit, welches leider nicht immer zuverlässig arbeitet.



Voraussetzungen


Grundvoraussetzung vor den nächsten Schritten ist zunächst eine möglichst aktuelle Version des Treibers und der Firmware.

Den aktuellen Treiber + Firmware gibt es im GitHub Repository von lwfinger.


Treiber installieren


Um den Treiber kompilieren zu können müssen Build Essentials und Kernel Headers installiert sein. Zusätzlich wird DKMS installiert, um den Treiber auch bei zukünftigen Kernel Updates einzubinden.

sudo apt-get install build-essential linux-headers-generic dkms

Anschließend kann man den Treiber installieren.

wget https://github.com/lwfinger/rtl8188eu/archive/master.zip
unzip master.zip

sudo dkms add ./rtl8188eu-master
sudo dkms build 8188eu/1.0
sudo dkms install 8188eu/1.0


Firmware installieren


Die Firmware befindet sich ebenfalls im Repository, welches wir bei der Treiberinstallation heruntergeladen haben. Im folgenden Schritt kopieren wir die Firmware Datei in den Ordner /lib/firmware/rtlwifi.

sudo mkdir /lib/firmware/rtlwifi
sudo cp rtl8188eu-master/rtl8188eufw.bin /lib/firmware/rtlwifi/


Anschließend ein Neustart des Systems durchführen.


Autosuspend deaktivieren


Nun können wir die Autosuspend Funktion deaktivieren. Hierzu wird die Datei /etc/modprobe.d/usbcore.conf angepasst.

sudo nano /etc/modprobe.d/usbcore.conf

Der Inhalt der Datei lautet wie folgt:

options usbcore autosuspend=-1


Power Management deaktivieren


Anschließend deaktivieren wir die integrierten Power Management Funktionen des Chipsatzes. Dies geschieht über die Treiberparameter.

Auch hierzu legen wir wieder eine neue Datei /etc/modprobe.d/8188eu.conf an.

sudo nano /etc/modprobe.d/8188eu.conf

In der Datei werden die notwendigen Parameter gesetzt.

options 8188eu rtw_power_mgnt=0 rtw_enusbss=0 rtw_hwpwrp_detect=0 rtw_low_power=0 rtw_ips_mode=1

  • rtw_power_mgnt=0 - Deaktivieren des Power Managements

  • rtw_enusbss=0 - Deaktivieren des USB Schlafmodus

  • rtw_hwpwrp_detect=0 - Deaktivieren der Stromerkennung

  • rtw_low_power=0 - Deaktivieren des Low Power Modus

  • rtw_ips_mode=1 - IPS Mode auf 1 setzen




Weitere Optionen


Wer weitere Optionen testen möchte, findet über modinfo eine Auflistung aller zur Verfügung stehenden Parameter.

sudo modinfo 8188eu

Eine Aufschlüsselung bzw. Erklärung der einzelnen Parameter lässt sich einer Dokumentation zum Treiber RTL8192C entnehmen. Die Parameter sind hier größtenteils gleich.


Fazit


Dank dem gepflegten und aktuellen Repository lässt sich auf einfachem Wege ein funktionaler Treiber beziehen. Die Verbindungs- und Reichweitenprobleme, welche vor allem beim Betrieb als Access Point störend sind, lassen sich mit einigen Einstellungen beheben.

Michael Kostka

Fachinformatiker / Systemintegration
Ich schreibe hier regelmäßig zu den Themen Android, Web, Linux und Hardware.

Raspberry Pi Starter Kit
DataCloud

Hinterlasse einen Kommentar

Ich habe die Datenschutzerklärung zur Kenntnis genommen und stimme einer elektronischen Speicherung und Verarbeitung meiner eingegebenen Daten zur Beantwortung der Anfrage zu.