Sonntag, 4. September 2016

Wlanprobleme unter Linux Mint 18 / Ubuntu 16.04 mit bestimmten Chipsätzen in den Griff bekommen - FIX IT

Wie ich bereits unter einem früheren Beitrag schrieb, habe ich ein kleines Problem mit meinem Wlan-Stick. Auch nachdem ich die KDE Beta von Linux Mint 18 vor einiger Zeit installierte, änderte sich nichts am vorhandenen Fehler. 

Was ich bisher heraus fand:
  • es gibt mehrere offizielle Bug-Reporte (Beispiel hier) ohne echte Lösung
  • Problem könnte mit systemd zusammenhängen 
  • Problem könnte im Kernel stecken
Der Fehler / Bug äußert sich in verschiedenen Arten.
  • Wlan geht im Test mit dem Live-Medium, nach Installation nicht
  • Wlanadapter lässt sich nicht aktivieren, keine Verbindung möglich
  • Wlanadapter scheint zu funktionieren, wird langsam, steigt nach einiger Zeit aus
  • Netzwerksymbol für Wlan wird nicht angezeigt, sondern ein Symbol für Kabelverbindung
  • Verbindungsdetails werden nicht richtig angezeigt
  • Wlan geht, aber es werden keine Netze angezeigt
Solche und ähnliche Probleme könnten vorliegen. Startet man den Netzwerk-Manager neu, dann wird der Wlanadapter richtig erkannt und man kann sich wie gewünscht mit den Wlannetzen verbinden. Wlan funktioniert dann einwandfrei. (Bisher meine Erfahrung) 
Wenn dies auch dein Problem und bisherige Lösung ist, dann sind die nachfolgenden Schritte sicherlich interessant für dich.

UPDATE !!!!!  Es gibt einen neuen, aktualisierten Beitrag im Blog!



Wie gesagt, ich behalf mir bisher mit einem kleinen Icon auf dem Desktop, mit dem ich den Netzwerk-Manager nach dem hochfahren von Mint neu starten konnte. Dies ist auf Dauer natürlich nervig. Nachdem ich mich gestern erneut auf die Suche nach der Lösung machte und das WWW durchstreifte, stieß ich irgendwann auf einige Ansätze, die mich nun etwas weiter brachten. Systemd wurde des Öfteren erwähnt, dass ja das bisherige Upstart ablöst.
Im Ubuntuusers Forum sah ich einen Beitrag, in dem der User Elektronenblitz auf einen Thread verwies, in dem mit Hilfe von systemd ein Script ausgeführt wurde, damit der NM nach Hibernate/Ruhezustand seinen Dienst wieder aufnimmt. Nun dachte ich mir, es wäre doch super, wenn man mit systemd den NM nach dem Hochfahren einmal neu starten könnte, damit die "lästige Sache" automatisiert wird. So saß ich nun die letzte Nacht bis ca. 1 Uhr am Rechner und bastelte an einer Lösung.

Zuerst einmal braucht man einen neuen "Service" für systemd. Man öffnet dazu ein Terminal und gibt den folgenden Befehl ein:
sudo pico /etc/systemd/system/wlanrestart.service
Damit wird eine neue Datei mit dem Namen wlanrestart.service gleich im richtigen Verzeichnis angelegt. In diese Datei müssen nun die folgenden Zeilen eingetragen werden:
[Unit]
Description=Wlan Restart

[Service]
Type=idle
ExecStart=/bin/systemctl restart network-manager.service
Restart=always
RestartSec=5
StartLimitInterval=15
StartLimitBurst=2

[Install]
WantedBy=multiuser.target
 
[Unit] bezeichnet den Dienst und enthält Anweisungen, vor oder nach welchen Diensten gestartet werden soll, bzw. von welchen Diesnten es abhängt.
[Service] enthält den Type, den Befehl der ausgeführt wird und natürlich wie der Dienst sich verhalten soll (z.B. immer in einer Schleife neustarten).
[Install] gibt an, in welchem Level (vgl. Runlevel) der Dienst startet.

Dieser Dienst soll demnach in Runlevel 3 und 5 gestartet werden. Es wird dabei der network-manager.service neu gestartet. Das Ganze soll immer passieren, nach 2 Sekunden (nach dem der Dinst erfolgreich ausgeführt wurde), innerhalb von 15 Sekunden(?), aber nur 2 mal. Den Type Idle habe ich gewählt, damit der Dienst so ziemlich als letzes startet (ob dem so ist, k.A.).
Klingt im ersten Moment verwirrend, sollte man aber ausprobieren.

Jetzt schließt man über die Tastenkombination STRG + X, bestätigt mit der Taste J die Änderungen und mit Taste ENTER bzw. RETURN bestätigt man noch den Pfad und Dateinamen.

Der Dienst ist angelegt. Nun muß man ihn noch mit folgendem Befehl bekannt machen:
sudo systemctl enable wlanrestart.service
Tauscht man enable durch disable kann man den Dienst wieder entfernen.
Starten kann man ihn auch sofort per:
sudo systemctl start wlanrestart.service
Nach Neustert des Rechners wird der Dienst automatisch von systemd gestartet. Ist man nicht zufrieden mit dem Inhalt bzw. möchte man den Dinst anpassen erfolgt dies über den Befehl:
sudo systemctl edit --full wlanrestart.service
Hat man alle Schritte richtig durchgeführt, kann man sich über das Ergebnis freuen. Zukünftig wird der Netzwerk-Manager automatisch nach dem Hochfahren neu gestartet. Kann man sogar beobachten, wenn man sich schnell anmeldet. Dann sieht man wie sich das Netzwerksymbol kurz nach Anmeldung auf der grafischen Oberfläche 1x erneut de/aktiviert. 

Die Lösung funktioniert bei mir bisher sehr gut, bis auf wenige Ausnahmen. Geht auch nach Bildschirmsperre und An-/Abmelden des Benutzers. Problematisch sind:
  • nach Ruhezustand bekomme ich Wlan nicht mehr aktiviert
  • nach Standby bleibt mein Bildschirm aus, Standby funktioniert nicht bei mir
Lösung: Standby/Ruhezustand nicht nutzen.

So, ich hoffe, ich konnte mit diesem Beitrag ein wenig bei den Wlanproblemen helfen. Zumindest bis es mal eine richtige Lösung gibt. Hat jemand noch andere Tipps und Tricks, oder gute/schlechte Erfahrungen mit diesem FIX IT bitte die Kommentarfunktion nutzen. Danke. 

Keine Kommentare:

Kommentar veröffentlichen