ubuntuusers.de

Verbindungsproble Fritz-WLAN USB-Stick

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
ich habe nun alles erneut mit div. ubuntu- und Wicd-Versionen auf einem Laptop und meinem Desktopsystem erfolgreich getestet (beide 32bit). Hier die komplette Anleitung. Eine Funktionsgarantie kann ich natürlich nicht geben.

Patch für Wicd um die Prozesspriorität von wpa_supplicant automatisch anzupassen.

Für (k/x)ubuntu 8.04 und 8.10 mit Wicd über deb-Installationspaket. Der Patch ist nur für Wicd Version 1.5.8!

Erstelle die Datei wicd_158_prcprio.patch, kopiere den gezeigten Inhalt hinein und installiere den Patch. Von der Originaldatei wird vorab eine Kopie erstellt.

gedit wicd_158_prcprio.patch
sudo cp /usr/lib/python2.5/site-packages/wicd/wnettools.py /usr/lib/python2.5/site-packages/wicd/wnettools_original.py
sudo patch /usr/lib/python2.5/site-packages/wicd/wnettools.py wicd_158_prcprio.patch

Starte den Rechner neu. Die Verbindung sollte nun problemlos und ohne zusätzliche Terminaleingabe aufgebaut werden.

Inhalt der Korrekturdatei (Patch):

--- wnettools_original.py	2008-09-28 12:08:54.000000000 +0200
+++ wnettools.py	2009-04-25 22:40:18.000000000 +0200
@@ -1001,7 +1001,7 @@
         if self.wpa_driver == RALINK_DRIVER:
             self._AuthenticateRalinkLegacy(network)
         else:
-            cmd = ''.join(['wpa_supplicant -B -i ', self.iface, ' -c "',
+            cmd = ''.join(['nice -n +19 wpa_supplicant -B -i ', self.iface, ' -c "',
                        wpath.networks, network['bssid'].replace(':','').lower(),
                        '" -D ', self.wpa_driver])
             if self.verbose: print cmd

-

Für (k/x)ubuntu 8.04 und 8.10 mit Wicd über deb-Installationspaket. Der hier gezeigte Patch ist nur für Wicd Version 1.5.9!

Erstelle die Datei wicd_159_prcprio.patch, kopiere den gezeigten Inhalt hinein und installiere den Patch. Von der Originaldatei wird vorab eine Kopie erstellt.

gedit wicd_159_prcprio.patch
sudo cp /usr/lib/python2.5/site-packages/wicd/wnettools.py /usr/lib/python2.5/site-packages/wicd/wnettools_original.py
sudo patch /usr/lib/python2.5/site-packages/wicd/wnettools.py wicd_159_prcprio.patch

Starte den Rechner neu. Die Verbindung sollte nun problemlos und ohne zusätzliche Terminaleingabe aufgebaut werden.

Unter Version 1.5.9 wurde die Datei verändert. Der entsprechende Patch:

--- wnettools_original.py	2009-04-25 23:45:20.000000000 +0200
+++ wnettools.py	2009-04-25 23:51:35.000000000 +0200
@@ -1035,7 +1035,7 @@
         if self.wpa_driver == RALINK_DRIVER:
             self._AuthenticateRalinkLegacy(network)
         else:
-            cmd = ['wpa_supplicant', '-B', '-i', self.iface, '-c',
+            cmd = ['nice -n +19 wpa_supplicant', '-B', '-i', self.iface, '-c',
                    os.path.join(wpath.networks, 
                                 network['bssid'].replace(':', '').lower()),
                    '-D', self.wpa_driver]

-

Für (k/x)ubuntu 9.04 mit Wicd Version 1.5.9-2 (http://ge.archive.ubuntu.com/ubuntu/pool/universe/w/wicd/wicd_1.5.9-2_all.deb)

Erstelle die Datei wicd_1592_prcprio.patch, kopiere den gezeigten Inhalt hinein und installiere den Patch. Von der Originaldatei wird vorab eine Kopie erstellt.

gedit wicd_1592_prcprio.patch
sudo cp /usr/share/wicd/wicd/wnettools.py /usr/share/wicd/wicd/wnettools_original.py
sudo patch /usr/share/wicd/wicd/wnettools.py wicd_1592_prcprio.patch

Starte den Rechner neu. Die Verbindung sollte nun problemlos und ohne zusätzliche Terminaleingabe aufgebaut werden.

Unter Version 1.5.9-2 wurde die Datei verändert. Der entsprechende Patch:

--- wnettools_original.py	2009-02-26 07:53:44.000000000 +0100
+++ wnettools.py	2009-04-27 07:30:47.000000000 +0200
@@ -1076,7 +1076,7 @@
         if self.wpa_driver == RALINK_DRIVER:
             self._AuthenticateRalinkLegacy(network)
         else:
-            cmd = ['wpa_supplicant', '-B', '-i', self.iface, '-c',
+            cmd = ['nice', '-n', '+19',  'wpa_supplicant', '-B', '-i', self.iface, '-c',
                    os.path.join(wpath.networks, 
                                 network['bssid'].replace(':', '').lower()),
                    '-D', self.wpa_driver]

-

Da ja nicht vorhersehbar ist wie nachfolgende Versionen aussehen, kann die Anpassung auch direkt mit einem Editor durchgeführt werden.

Die Änderung ist ja nicht weiter kompliziert. In dem entsprechenden Script wird folgende Zeile gesucht ...

cmd = ['wpa_supplicant', '-B', '-i', self.iface, '-c',
...

... und am Anfang der nice Befehl eingefügt:

cmd = ['nice -n +19 wpa_supplicant', '-B', '-i', self.iface, '-c',
...

Unter ubuntu 9.04 mit Wicd 1.5.9-2 ...

cmd = ['nice', '-n', '+19',  'wpa_supplicant', '-B', '-i', self.iface, '-c',
...

-
Nachtrag:
Bei leistungsfähigeren Rechnern funktioniert der Patch unter ubuntu 9.04 nicht immer. Es bleibt momentan nur die Notlösung über die direkte Änderung der Priorität mit Terminalbefehl während der Verbindungsaufnahme oder die Installation eines Scripts Siehe dazu folgenden Artikel.

kattugla

Avatar von kattugla

Anmeldungsdatum:
31. März 2009

Beiträge: 149

Erstmal danke für die Arbeit, die Du Dir gemacht hast. 😉

Bin nach Anweisung für Version 1.5.9.2 vorgegangen. Nach Installation des Patches konnte Wicd über den wext-Treiber gar nicht mehr verbinden, auch über alle anderen Treiber nicht. Bis auf den ralink-Treiber, der auch im Patch angegeben ist, nur sucht der auch ewig nach einer IP und bekommt keine.

Also habe ich wicd nochmal komplett wie oben angegeben deinstalliert, über die Paketquelle neu installiert und den 'nice...'-Befehl händisch in die wnettools.py-Datei eingetragen. Jetzt startete der Client gar nicht mehr beim Neustart (Eintrag bei Autostart überprüft und vorhanden), auch aus dem menü heraus ließ sich wicd nicht mehr aufrufen. Also nochmal komplett deistalliert und neu installiert. Nochmals den 'nice...'-Eintrag wiederholt, und jetzt wieder gar keine Verbindung zum Netzwerk, wicd bricht schon bei "...validation" ab.

Wo hab ich jetzt was falsch gemacht?

[edit] gerade zum Threadanfang gescrollt und gelesen, dass es in diesem Thread ja um den Ralink-Treiber geht. 🙄

Hmpfr. Blond wie ich bin, überliest sich das doch glatt... Aber warum funzt des trotzdem ned, auch bei manueller Eingabe des 'nice...'-Eintrags??

Burki

Avatar von Burki

Anmeldungsdatum:
26. Januar 2007

Beiträge: 219

Der Laptop meiner Freundin hat ebenfalls das Problem. Das mit dem Patch habe ich erstmal gelassen in der Hoffnung, dass der workaround durch entsprechende Codeanpassung wegfällt.

Von alleine programmiert sich so eine Anpassung nicht und ich selber habe Programmieren leider nie gelernt. Muss man das irgendwo hinmelden? Launchpad oder dergleichen? Lässt sich sowas überhaupt heile-patchen? Oder hat man einfach Pech, wenn man den Fritz-Stick hat? Das klingt jetzt so dahergesagt, aber eine Antwort auf letztere Frage, würde mir helfen, ob ich meiner Freundin einfach einen neuen WLAN-Stick kaufe, damit nicht alle paar Wochen ein workaround ansteht, weil sich Versionen verändern. An meinem PC ist es nicht so schlimm, wenn ich mal ein paar Tage rumfrickele. Aber wenn der PC meiner Freundin eine Weile ausfällt, wird gleich die Linux-Sinn-Frage gestellt.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
ich habe wohl mit meinem alten Lappi mehr Glück, damit funktioniert der Patch. Hat anscheinend auch mit der Systemleistung zu tun.

Hier ging es nur um den Fritz-Stick. nonplusultra hatte sich nur an einen anderen Beitrag in dem es um einen Ralink-Chipsatz ging angehängt.

Das Problem tritt wahrscheinlich nur mit bestimmten Treibern und ndiswrapper auf. Mit ubuntu 8.10 funktioniert das normalerweise auch ohne die Änderung der Prozessprio. Möglicherweise wird das auch mit dem nächsten Kernelupdate behoben.

kattugla

Avatar von kattugla

Anmeldungsdatum:
31. März 2009

Beiträge: 149

elektronenblitz63 schrieb: ...

Das Problem tritt wahrscheinlich nur mit bestimmten Treibern und ndiswrapper auf. Mit ubuntu 8.10 funktioniert das normalerweise auch ohne die Änderung der Prozessprio. Möglicherweise wird das auch mit dem nächsten Kernelupdate behoben.

Unter 8.10 ging das ja auf dem Lifebook auch alles bei mir problemlos.

Eine Lösung (nach dreimaligem Wiederholversuch mit gleichem Ergebnis klappt das jetzt wohl) habe ich eher zufällig entdeckt.

Hier irgendwo hatte ich gelesen, dass Jaunty Probleme mit dem WPA1/2-Mischbetrieb hat. Also nutzte ich die vorhandenen Möglichkeiten und nahm kurzerhand meinen zweiten Router (Speedport 701V, vorher 501V) in Betrieb. Konfiguration über den PC und Umstellung auf reinen WPA2-Betrieb. Nachdem ich danach nochmal alle MAC-Adressen freischalten musste, stolperte ich im Konfigurationseditor (Screenshot angehängt) (Anwendungen/Systemwerkzeuge) über den Eintrag "network" und "connections". Dort fand ich noch eine MAC-Adresse, die im Router noch nicht freigegeben war (keine MAC-Adresse vom Stick, keine Ahnung, welche das nun genau ist... 😳 ).

Eingetragen - prompte Verbindung des Lifebook. Ganz ohne "renice"-Befehl im Terminal.

Ich habe den Laptop zweimal aus- und wieder eingeschaltet, Wicd braucht zwar ein Weilchen, aber es klappt wiederholt.

Vielleicht kann mir ja jemand verraten, was ich da verbrochen habe, zumindest läufts jetzt. Und vielleicht gibts ja finale Abhilfe beim nächsten Update... 😉

Bilder

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Ich habe ein Scipt fertiggestellt, das mit Wicd (ohne Patch) und auch mit dem Network-Manager funktioniert.

Siehe dazu folgenden Artikel.

kattugla

Avatar von kattugla

Anmeldungsdatum:
31. März 2009

Beiträge: 149

Danke.

Bevor ich das auf meinem Lifebook probiere (auch nicht mehr taufrisch mit 1GHz), noch Nachfragen, die auftauchten, und das Problem vorher lösen könnten.

Ich habe mir nochmal die Datei wnettools.py genauer angesehen und (*stirnklatsch*) gemerkt, dass ja auch der händische Eintrag in der Abteilung erfolgte, die sich mit dem Ralink-Chipsatz befasst. Daher: kann ich die Eintragungen auch 1:1 für den weiter oben stehenden wext-Treiber (der ja vom AVM-Stick benutzt wird) übernehmen? Und wenn ja, an welcher Stelle? Und was genau machen die einzelnen Teile des Eintrags? Hattest Du den Wert +19 willkürlich genommen, oder gibts da nen Grund dafür? Was passiert, wenn ich stattdessen 21 oder 27 eintrage?

Meine "ich-dachte-schon-ich-habs-Lösung" vom Montag funktionierte zuverlässig genau bis Dienstagabend. Bis jetzt habe ich haareraufend versucht, mein Montagsvorgehen zu rekapitulieren... Und bin derzeit nur wieder dank des eher sporadisch klappenden "renice" im Net...

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,

kann ich die Eintragungen auch 1:1 für den weiter oben stehenden wext-Treiber (der ja vom AVM-Stick benutzt wird) übernehmen?

ich bin jetzt nicht sicher was genau gemeint ist. Der Treiber wext wird von wpa_supplicant für (fast) alle Treiber verwendet. Der Prozess kann manuell gestartet werden. Siehe das Beispielscript für manuelle Konfiguration:

#!/bin/bash
nice -n +19 wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf -B
sleep 2
dhclient wlan0

Hintergrundwissen: WLAN/wpa supplicant

Hattest Du den Wert +19 willkürlich genommen, oder gibts da nen Grund dafür?

+19 ist der höchste Wert.

was passiert, wenn ich stattdessen 21 oder 27 eintrage?

Nichts, der Wert bleibt bei +19. Shell/nice

Rolsch

Anmeldungsdatum:
28. April 2009

Beiträge: Zähle...

Ich benutze Kubunto 9.04 und habe die Datei /usr/share/wicd/wicd/wnettools.py wie oben beschrieben gepatched, d.h. die Zeile

cmd = ['wpa_supplicant', '-B', '-i', self.iface, '-c', ...

ersetzt durch cmd = ['nice -n +19 wpa_supplicant', '-B', '-i', self.iface, '-c', ...

Das hat aber nicht funktioniert, nachdem ich in wicd-client in den Preferences "Enable debug mode" eingeschaltet hatte erschien dann in /var/log/wicd/wicd.log die Meldung beim Starten von "nice -n +19 wpa_supplicant..." die Fehlermeldung "command not found". Wenn ich die Zeile in wnettools.py aber ersetze durch

cmd = ['nice', '-n', '+19', 'wpa_supplicant', '-B', '-i', self.iface, '-c', ...

dann wird das Kommando korrekt ausgeführt. Das heisst der erste Parameter ist das auszuführende Kommando und dann folgen alle Parameter einzeln.

Leider hat wicd-client dann immer noch keine Verbindung zwischen meinem Fritz!WLAN USB Stick und meiner Fritz!Box Fon WLAN hinbekommen. Im Moment funktioniert es bei mir nur, wenn ich in einer shell die beiden Befehle sudo killall wpa_supplicant sudo nice -n +19 wpa_supplicant -d -i wlan0 -c /var/lib/wicd/configurations/00040e1a88dc -D wext

und in einer zweiten Shell dann sudo dhclient wlan0

ausführe. Dann zeigt auch wicd-client die Verbindung an. Hat vielleicht jemand eine Idee, wie ich das mit wicd-client hinbekomme? Ist natürlich nervig die Internet-Verbindung bei jedem Einloggen "von Hand" herzustellen.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
ich habe entsprechende Scripte fertiggestellt. Siehe hier. Dadurch braucht Wicd nicht mehr angepasst zu werden.

Nachtrag: ich habe den Patch für Wicd Version 1.5.9-2 nochmal angepasst . Damit funktioniert es bei mir problemlos.

jogi_66

Anmeldungsdatum:
25. März 2008

Beiträge: 4

Wohnort: Berlin

Ich werd´ bekloppt. Nachdem ich monatelang unter 8.04. mit meinem Fritz USB Stick herumgefrickelt habe, um endlich wlan an den Start zu bekommen, gibts unter 9.04 und mit der Anleitung von elektronenblitz63 nun endlich eine Lösung. ES FUNZT !

1000 Dank und viele Grüße

Jogi

Antworten |