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.