ubuntuusers.de

Am Sonntag, 24.11, wird gegen 16 Uhr eine Inyoka-Version ausgerollt. Das Portal kann für ein paar Minuten nicht erreichbar sein.

Ndiswrapper & FritzStick

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

ch1ffr3

Anmeldungsdatum:
24. April 2009

Beiträge: Zähle...

Hallo zusammen,

hatte das Problem schon seit laengerem, das ich bei Systemstart keine Verbindung bekomme per WLan. Ist ja ein bekanntes Problem (http://wiki.ubuntuusers.de/FRITZ!WLAN_USB_Stick) in dieser Kombination unter x64. Der Workaround mit selber kompilieren geht leider unter 11.04 nicht mehr, ich habe in einem anderen Thread (http://forum.ubuntuusers.de/topic/das-leidige-thema-ubuntu-und-fritz-wlan/) schon geschrieben, welche 'Patchorgie' ich gemacht habe um Ndiswrapper kompilieren & installieren zu koennen. Leider funktioniert der Patch offenbar nicht mehr. Also die betroffene Datei wird gepatched, aber der alte Fehler tritt immer noch auf.

Hat schon wer das Problem unter 11.04 loesen koennen? Ohne Internet macht doch Linux keinen Spass :/

TWCra

Anmeldungsdatum:
27. April 2011

Beiträge: 24

Du hast recht Linux ist ein Web-Betriebssystem wie gOS!

ch1ffr3

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 49

TWCra schrieb:

Du hast recht Linux ist ein Web-Betriebssystem wie gOS!

So etwas habe ich nie behauptet.

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
versuche es mal anders ...

Ndiwrapper mit Initialisierungsfehler -22

Achtung!

Aktuell schafft die aktuelle Ndiswrapper-Version 1.57 (stable) bei diesem Problem Abhilfe, muss aber manuell installiert werden. Beschreibung in WLAN/NdisWrapper. Beispiel im Forum.

Hinweis:

Seit Ubuntu 11.04 Natty Narwhal können erforderliche Patches für die 64bit Version nicht mehr verwendet werden! Als Alternative bietet sich nachfolgend beschriebenes Skript an um den verwendeten Windows-Treiberfür die WLAN-Karte/Stick zu laden, sollte jemand die aktuelle Ndiswrapper-Version 1.57 nicht installieren können oder wollen. Das Skript kann mit beliebigen WLAN-Treibern unter Ndiswrapper, sowie mit jeder Ubuntu-Versionen und auch bei 32bit-Systemen mit auftretendem Initialisierungsfehler 22 verwendet werden. Das Skript ist für USB WLAN-Sticks optimiert, PCI(e) Karten werden inzwischen aber ebenfalls unterstützt. Die Kommentare im Skript sind zu beachten.

In seltenen Fällen kann es dadurch allerdings zu Verzögerungen bei Systemstart oder auch zu einem Freeze des kompletten Systems kommen, wenn der WLAN-Stick bereits angeschlossen ist. Notfalls muss das Skript dann immer manuell gestartet werden. Besser wäre dann natürlich die Installation und Verwendung von Ndiswrapper-Version 1.57.

Initialisierungsskript - Vorbereitungen

Ndiswrapper deinstallieren

Zuerst die gepatchte Ndiswrapper-Version und den Treiber vollständig entfernen sofern installiert. Wurde der Wrapper vorab nicht installiert bzw. gepatcht, kann dieser erste Schritt übersprungen werden.

sudo rmmod -f ndiswrapper
sudo rm -r /etc/ndiswrapper/*
sudo apt-get --purge remove ndiswrapper-common ndiswrapper-utils-1.9 ndisgtk
sudo rm /etc/ndiswrapper 
sudo rm /etc/modprobe.d/ndiswrapper
sudo rm -rf /lib/modules/`uname -r`/kernel/ubuntu/ndiswrapper 

Ndiswrapper re/installieren

Dann Ndiswrapper aus den offiziellen Repos oder von der Ubuntu Installations-CD ganz "normal" über den Paketmanager und den verwendeten Kernel reinstallieren:

sudo apt-get install --reinstall linux-image-$(uname -r) ndiswrapper-common ndiswrapper-utils-1.9 ndisgtk
sudo depmod -a
sudo update-initramfs -u  

Nun noch den 64bit Treiber für den Fritz-Stick aus dem Forum herunterladen, unter ~/Downloads ablegen und entpacken. Dort muss sich anschließend der Ordner "FritzStick_64bit_winxp_v061228" mit den drei benötigten Installationsdateien befinden. Das nachfolgend gezeigte Skript ist hier entsprechend vorkonfiguriert, was aber bei Bedarf geändert werden kann.

Das Skript kann auch mit anderen WLAN-Sticks und PCI-Karten und Ndiswrapper verwendet werden. Die benötigte Geräte-ID sowie der Name und Pfadangaben des Treibers sind natürlich entsprechend anzupassen.

Wer schon Ndiswrapper und einen Treiber installiert hat, muss zunächst nur den Treiber und die über ndiswrapper -ma angelegte Alias-Tabelle löschen, damit Ndiswrapper bei Systemstart nicht automatisch versucht den Treiber zu laden.

sudo rm /etc/modprobe.d/ndiswrapper.conf & sudo rm /etc/modprobe.d/ndiswrapper & sudo rm -r /etc/ndiswrapper/* 

Initialisierungsskript anlegen

Skript erstellen und ausführbar machen:

touch wlan_ini.sh
chmod +x wlan_ini.sh 

Das erzeugte Skript nun mit einem Editor öffnen, folgenden Inhalt einfügen und abspeichern:

#!/bin/bash
## wlan_ini.sh V0.1 by Elektronenblitz63 (ubuntuusers.de) 2011
## elektronenblitz63@online.de
## published under GPL v3
##
## Initialisierungsscript für WLAN-Sticks und PCI-Karten
## in Verbindung mit 32/64bit Kernel und Ndiswrapper
## bei Ndiswrapper Initialisierungsfehler 22 

## freie Variablen gemäß verwendetem Treiber anpassen
## Pfad zum Treiber entsprechend anpassen
## Pfad/Name der Installationsdarei *.inf
infpath=/Downloads/FritzStick_64bit_winxp_v061228/
inffile=fwlan64.inf

## Treiber Installationsverzeichnis 
## normalerweise der selbe Name wie die verwendete inf-Datei
instname=fwlan64

## Geräte-ID's
## zwei Geräte können verwendet werden
## PCI-Karten ID bei a_device eintragen
a_device=057c:5601
b_device=057c:6201

## USB Gerät (1) oder PCI-Karte (0)
usbdevice=1

## Ende freie Variablen

## /home
home="`pwd`"
datum="`date`"
module=ndiswrapper
manufacturer=AVM
stick=0
pause=5
loop=0

## Initialisierungsversuche
maxcount=12

## zu prüfendes Interface
wiface=wlan0

logpath="/var/log/wlan_ini_Log"

echo $datum - Starte Skript wlan_stick_ini.sh / Elektronenblitz63 - 2011 - ubuntuusers.de > $logpath
echo  "Suche Treiberdatei in" $home$infpath$inffile  >> $logpath

### Loop
while true
 do

if [ "$loop" = "$maxcount" ]; then
 datum="`date`"
  echo $datum Loop-Nr. $loop von $maxcount / Schnittstelle $wiface kann nicht initialisiert werden. Beende Skript. >> $logpath
 exit
fi

# Hardwareerkennung / Schnittstellenprüfung
 device="`lsusb | grep $manufacturer | awk {'print $6'}`"
  iface="`iwconfig | grep $wiface | awk {'print $1'}`"

if [ "$usbdevice" = "0" ]; then
  device=$a_device
fi

if [ "$device" = "$a_device" ]; then
  stick=1
  elif [ "$device" = "$b_device" ]; then   
   stick=1
    else
      exit
   fi

datum="`date`"
 echo $datum USB-Device $device erkannt. >> $logpath

echo $iface
 if [ "$iface" = "$wiface" ]; then
  echo $datum Schnittstelle $wiface initialisiert. Beende Skript. >> $logpath
 exit

elif [ "$stick" = "1" ]; then
 datum="`date`"
  loop=$[$loop+1]
   echo $datum Loop-Nr. $loop von $maxcount / Schnittstelle $wiface nicht initialisiert. Versuche Reload. >> $logpath

# Initialisierung
drvpresent="`find /etc/ndiswrapper/$instname`"
 if [ "$drvpresent" != "" ]; then

sudo /usr/sbin/ndiswrapper -r $instname
 /sbin/modprobe -rf $module
  sleep $pause
fi

sudo /usr/sbin/ndiswrapper -i $home$infpath$inffile
  /sbin/modprobe $module
   sleep $pause
    stick=0
   fi
 done
exit 0

Fritz WLAN-Stick anschließen und testen.

Bei Version 1.1 abwarten bis der Stick in den normalen WLAN-Modus umgeschaltet hat. Das erkennt man mit

lsusb 

Ausgabe muss ein ...

Bus 001 Device 005: ID 057c:6201 AVM GmbH WLAN USB v1.1

und nicht ...

Bus 001 Device 004: ID 057c:62ff AVM GmbH WLAN USB v1.1 [no firmware]

Bei PCI-Geräten muss die Karte ebenfalls erkannt werden

lspci -nnk | grep -i net -A2 

Nun das Skript starten und testen:

sudo ./wlan_ini.sh 

Das Skript installiert den Treiber und versucht den Stick bzw. die PCI-Karte zu initialisieren, insgesamt 12mal (Voreinstellung im Skript). Bei Erfolg wird das Skript vorzeitig beendet.

Informationen werden in /var/log/wlan_ini_Log abgelegt.

Sollte das funktionieren, hier auf meinem 64bit Intel Quad-Core geht das einwandfrei, muss das Skript noch verschoben und automatisch aktiviert werden wenn der Stick erkannt wird. Dazu nachfolgend mehr.

Automatisieren

Damit das Skript auch für verschiedene angemeldete Benutzer automatisch abgearbeitet wird, ist folgende Konfiguration erforderlich.

Mit einem Editor wird eine udev-Regel angelegt und in /etc/udev/rules.d abgelegt

gksudo gedit /etc/udev/rules.d/10-WLAN-Stick.rules  

Inhalt einfügen und abspeichern:

# UDEV-Rule for WLAN Sticks
# entlädt/lädt Treiber/ndiswrapper

## Skript starten
SUBSYSTEM=="usb", ATTR{idVendor}=="057c", ATTR{idProduct}=="5601", RUN+="/usr/sbin/wlan_ini.sh"
SUBSYSTEM=="usb", ATTR{idVendor}=="057c", ATTR{idProduct}=="6201", RUN+="/usr/sbin/wlan_ini.sh"

Udev-System aktualisieren:

sudo service udev reload 

Pfadangaben im Skript anpassen:

## Pfad zum Treiber entsprechend anpassen
## Pfad/Name der Installationsdarei *.inf
infpath=home/FritzStick_64bit_winxp_v061228/
inffile=fwlan64.inf

Skript nach /usr/sbin und das Treiberverzeichnis nach /home kopieren:

sudo cp -r `pwd`/Downloads/FritzStick_64bit_winxp_v061228 /home
sudo cp wlan_ini.sh /usr/sbin 

Stick anschließen und das Log überprüfen:

cat /var/log/wlan_ini_Log 

Die Ausgabe sieht bei Erfolg etwa so aus:

Sat Apr 30 10:01:41 CEST 2011 USB-Device 057c:5601 erkannt.
Sat Apr 30 10:01:41 CEST 2011 Loop-Nr. 1 von 12 / Schnittstelle wlan0 nicht initialisiert. Versuche Reload.
Sat Apr 30 10:02:02 CEST 2011 USB-Device 057c:5601 erkannt.
Sat Apr 30 10:02:02 CEST 2011 Schnittstelle wlan0 initialisiert. Beende Skript.

(Der Stick konnte hier beim zweiten Versuch initialisiert werden)

TWCra

Anmeldungsdatum:
27. April 2011

Beiträge: 24

ch1ffr3 schrieb:

TWCra schrieb:

Du hast recht Linux ist ein Web-Betriebssystem wie gOS!

So etwas habe ich nie behauptet.

Doch! Du sagtest ohne Internet macht Ubuntu keinen Spass!

Tyrr

Anmeldungsdatum:
29. April 2011

Beiträge: Zähle...

Hat bei mir super funktioniert. Danke dafür.

ch1ffr3

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 49

Danke elektronenblitz63, habs nach deiner Anleitung probiert, bekomme da allerdings immer nur die folgende Meldung beim Ausfuehren deines Skripts:

find: `/etc/ndiswrapper/fwlan64': No such file or directory
Error: unable to find a version of ndiswrapper!
FATAL: Could not read '/lib/modules/2.6.38-8-generic/kernel/ubuntu/ndiswrapper/ndiswrapper.ko': No such file or directory

Bin dann zurueck auf 'meinen' selbstkompilierten ndiswrapper, allerdings laeuft dein Skript jetzt durch und aktiviert auch meinen USB-Stick. Bin sehr dankbar, das das jetzt automatisch laeuft, aber es ist halt schade, das das eigentliche Problem ja nicht geloest ist dadurch sondern nur umgangen wird.

PS: Stimmt bei meiner Konfiguration etwas nicht? Musste den Pfad in deinem Skript etwas anpassen, da

1
echo `pwd`/Downloads/FritzStick_64bit_winxp_v061228

mir den offensichtlich falschen Pfad

1
/home/chiffre/Downloads/FritzStick_64bit_winxp_v061228/Downloads/FritzStick_64bit_winxp_v061228

zurueckliefert. Ist da bei mir irgend etwas falsch verlinkt, oder aehnliches?

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

... habs nach deiner Anleitung probiert, bekomme da allerdings immer nur die folgende Meldung beim Ausfuehren deines Skripts:

Da ist bei der Installation der ungepatchten Ndiswrapper-Version etwas schief gelaufen. Das Programm wird nicht gefunden, daher die Fehlermeldung.

Bin dann zurueck auf 'meinen' selbstkompilierten ndiswrapper, allerdings laeuft dein Skript jetzt durch und aktiviert auch meinen USB-Stick.

Auch ok. Grundsätzlich erspart man sich Ndiswrapper zu patchen. Ist doch viel einfacher so und funktioniert bislang recht zuverlässig.

Stimmt bei meiner Konfiguration etwas nicht? Musste den Pfad in deinem Skript etwas anpassen, da

Im Log steht wo das Skript den Treiber erwartet. Das muss natürlich stimmen.

Der Pfad zum Treiber muss, neben zwei kleinen Änderungen im Skript selbst, angepasst werden. Die Anleitung weiter oben hatte ich entsprechend ergänzt bzw. korrigiert. Das Skript wird ja bei Systemstart automatisch im Hintergrund ausgeführt wenn der Stick bereits angeschlossen ist oder auch erst später angeschlossen wird.

es ist halt schade, das das eigentliche Problem ja nicht geloest ist dadurch sondern nur umgangen wird.

Einen durch Linux unterstützten Stick zu kaufen löst das Problem 😈

PS: über Rückmeldungen, ob das Skript weiterhin funktioniert und brauchbar ist würde ich mich freuen. Bei Fehlern und sonstigen Problemen natürlich ebenso.

ch1ffr3

(Themenstarter)

Anmeldungsdatum:
24. April 2009

Beiträge: 49

elektronenblitz63 schrieb:

Einen durch Linux unterstützten Stick zu kaufen löst das Problem 😈

...muss ich das jetzt kommentieren? 😉

PS: über Rückmeldungen, ob das Skript weiterhin funktioniert und brauchbar ist würde ich mich freuen. Bei Fehlern und sonstigen Problemen natürlich ebenso.

Also 2 aus 3 Versuchen hat das Skript beim Booten den Stick korrekt eingebunden. Einmal musste ich jetzt das Skript zur Laufzeit (also nach Login) nochmal per Hand anstossen. D. h. imo das es insgesamt 22 (!) Versuche gebraucht hat, den Stick einzubinden...

Aber vielen Dank fuer das Skript! Soweit klappts ja dann schon mal - immerhin um einiges komfortabler als das haendische einbinden...

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Das kann vorkommen, liegt manchmal auch an der Stromversorgung des USB-Anschluß oder das CD-Rom Laufwerk konnte nicht sauber ausgehängt werden. Normalerweise hilft es den Stick dann kurz zu entfernen. Das Skript wird durch die udev-Regel ja automatisch neu gestartet wenn der Stick erkannt wird.

linuid

Anmeldungsdatum:
10. August 2011

Beiträge: Zähle...

Hallo,

beim Ausführen des Skriptes hab ich ein kleines Problemchen. Ich bekomme folgende Fehlermeldung.

1
2
./wlan_ini.sh: Zeile 103: Syntaxfehler beim unerwarteten Wort `done'
./wlan_ini.sh: Zeile 103: ` done'

Wenn ich das Skript mit sudo sh ./wlan_ini.sh ausführe kommt das

1
./wlan_ini.sh: 103: Syntax error: "done" unexpected (expecting "fi")

Wie ich das verstehe fehlt da ein "fi". Weiss nur nicht wo.

Hat jemand einen Tipp?

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
mein Fehler bei Copy & Paste. Hatte das Skript aktualisiert. Der Artikel ist korrigiert.

Zeile 67 einfügen

...
if [ "$usbdevice" = "0" ]; then
  device=$a_device
fi

if [ "$device" = "$a_device" ]; then
  stick=1
...

Danach Test und Log:

cat /var/log/wlan_ini_Log 
Mi 10. Aug 15:31:40 CEST 2011 - Starte Skript wlan_stick_ini.sh / Elektronenblitz63 - 2011 - ubuntuusers.de
Suche Treiberdatei in /home/rainer/Downloads/FritzStick_64bit_winxp_v061228/fwlan64.inf
Mi 10. Aug 15:31:41 CEST 2011 USB-Device 057c:5601 erkannt.
Mi 10. Aug 15:31:41 CEST 2011 Schnittstelle wlan0 initialisiert. Beende Skript.

joergmarkus

Anmeldungsdatum:
15. September 2010

Beiträge: 3

Vielen Dank für die Anleitung, elektronenblitz, das Skript ist echt toll!

Bei mir hat die Installation immer wieder gehakt. Meine Probleme waren:

a) Ich habe das Skript nur mit normalen Rechten ausgeführt, da ging's nicht. Mit sudo ./fritz_stick_ini.sh hat's dann geklappt.

b) Die Funktion zum Einrichten des WLAN-Netzwerks zu finden war nicht ganz leicht. Das Icon ist rechts oben in der Ecke (bei mir das erste).

c) Zwischendurch haben zwei Neustarts geholfen. Warum weiß ich auch nicht, Ubuntu ist ja nicht Windows, aber so war's halt.

linuid

Anmeldungsdatum:
10. August 2011

Beiträge: 6

Danke! Das nenne ich schnelle Antwort 11 min.

Das Skript hat funktioniert. Nur das Modul wurde nicht gefunden. Hab ndiswrapper von der CD installiert.

Dann habe ich das mit dem Befehl reinstalliert

sudo apt-get install --reinstall linux-image-$(uname -r) ndiswrapper-common ndiswrapper-utils-1.9 ndisgtk

In der Anleitung fehlt übrigens "-common". Ich weiss aber nicht, ob das so notwendig ist, hat aber bei mir erst damit funktioniert.

Nun läuft alles. Allerdings hatte ich mit Kabel 87 Mbit/s und mit dem Stick nur ca. 10 Mbit/s. Das liegt aber an dem alten Stick.

Danke nochmal

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

In der Anleitung fehlt übrigens "-common". Ich weiss aber nicht, ob das so notwendig ist, hat aber bei mir erst damit funktioniert.

Jup, erledigt. Wenn es mal wieder schnell gehen muss 😉

Nun läuft alles. Allerdings hatte ich mit Kabel 87 Mbit/s und mit dem Stick nur ca. 10 Mbit/s. Das liegt aber an dem alten Stick.

Stick ansonsten über eine USB-Verlängerung anschließen um die Lage und Ausrichtung und damit den Empfang vielleicht etwas verbessern zu können.

Antworten |