Centrino WLAN #
Nachdem sich Intel recht lange ziemlich zickig angestellt hat, was die Unterstützung seines WLAN-Chips IPW2100 unter Linux anbetrifft, scheint es seit Anfang 2004 eine echte Lösung zu geben. Leider ist diese nicht in den Standard-Kernel eingebunden und im Moment ist es auch noch fraglich, ob es "Plug & Play"-Lösungen geben wird, da eine benötigte Firmware von Intel nur aus dem Internet mit dem Akzeptieren einer besonderen Lizenz zu bekommen ist. Nichtsdestotrotz ist der geneigte Bastler in der Lage, seinen Centrino-Laptop zu benutzen, ohne eine zusätzliche WLAN-Karte zu brauchen.
Links #
- http://ipw2100.sourceforge.net/ - Homepage des Treibers
Installation "the Debian way" #
Unter http://www.uni-koeln.de/rrzk/netze/wlan/linux/debian/ruehmkorf.html habe ich eine gute Anleitung gefunden. Danach installiert man (ab Debian Sarge) lediglich das Debian-Paket ipw2100 (bzw ipw2200) sowie das zu seinem Kernel passende Paket mit den Kernel-Headern. Dann gibt es das Tool module-assistant, das alles für einen erledigt. :-)
Installation "von Hand" #
Zuerst mal sollte man sich die o.g. Homepage ansehen und sich einen Überblick über die benötigten Pakete verschaffen. Da dort allgemein von ziemlich neuen Kernel-Versionen ausgegangen wird, habe ich direkt einen 2.6.x-Kernel als Basis genommen.
Im Prinzip habe ich einen Kernel übersetzt und installiert wie unter DebianKernelKompilieren beschrieben (d.h. sowohl der Kernel selber als auch die Sourcen waren auf dem System installiert). In diesem Falle kann man in das entpackte Source-Verzeichnis des Treibers gehen und diesen mit
make make install
installieren. Fertig! Wer das Modul lieber (wie es sich gehört) in seinem Kernel-Paket hat, kann natürlich auch den Kernel mit Hilfe der mitgelieferten Doku entsprechend patchen und neu übersetzen.
Firmware installieren #
Wie in INSTALL beschrieben, muss man sich die Firmware-Dateien von Intel besorgen. Diese sollten dann (nach dem Auspacken des ZIP-Paketes von Intel) nach /usr/lib/hotplug/firmware/ kopiert werden. Der Treiber kann diese dann automatisch laden:
unzip 96377_96377.zip mv ipw2100-*.fw /usr/lib/hotplug/firmware/
Ist der Treiber kompiliert und der neue Kernel hochgefahren, kann man mit modconf das Modul auswählen und installieren. Danach sollte mit iwconfig die Karte angezeigt werden. Ggf. muss noch in /etc/network/interfaces eine Konfiguration für die Karte hinterlegt werden. An dieser Stelle könnten auch Befehle eingebaut werden, um WLAN-Einstellungen vorzunehmen.
Erfahrungen #
Ich betreibe meinen Laptop jetzt eine Weile ohne Probleme im Infrastrukturmodus, also an einem Access Point ohne WEP-Verschlüsselung. Bisher habe ich keinerlei Probleme bemerkt, würde den Treiber für diese Umgebung also als stabil bezeichnen. Auch mit WEP gibt es bereits einige Erfahrungen und noch keine Probleme. - ThomasBayen
Tips und Tricks #
Hoch- und Runterfahren #
Im Gegensatz zu einer PCMCIA-Karte ist das WLAN bei einem Centrino-Rechner fest eingebaut und deshalb immer eingeschaltet. Da das Strom verbraucht, kann es sinnvoll sein, die Karte herunterfahren zu können. Zu diesem Zweck habe ich sie wieder deinstalliert und folgendes Start- / Stop - Skript nach /etc/init.d/wlan geschrieben (abgeleitet vom Debian-skeleton-file):
#! /bin/sh # # wlan # -TB- # # Dieses Init-Skript faehrt mein WLAN hoch und runter. So kann der Laptop # Strom sparen, wenn ich gar kein WLAN haben will.
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin #DAEMON=/usr/sbin/daemon NAME=wlan DESC="WLAN"
#PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed. #test -x $DAEMON || exit 0
# Read config file if it is present. #if [ -r /etc/default/$NAME ]
#then # . /etc/default/$NAME #fi
case "$1" in start) echo -n "Starting $DESC: $NAME" modprobe ipw2100 ifup eth1 #start-stop-daemon --start --quiet --pidfile $PIDFILE \ # --exec $DAEMON echo "." ;; stop) echo -n "Stopping $DESC: $NAME" ifdown eth1 rmmod ipw2100 #start-stop-daemon --stop --quiet --pidfile $PIDFILE \ # --exec $DAEMON echo "." ;; switch) if (lsmod | grep ipw2100 >/dev/null) then echo "WLAN wird ausgeschaltet" /etc/init.d/wlan stop else echo "WLAN wird eingeschaltet" /etc/init.d/wlan start fi ;; #reload) # # If the daemon can reload its config files on the fly # for example by sending it SIGHUP, do it here. # # If the daemon responds to changes in its config file # directly anyway, make this a do-nothing entry. # # echo -n "Reloading $DESC configuration..." # start-stop-daemon --stop --signal 1 --quiet --pidfile \ # $PIDFILE --exec $DAEMON # echo "done." #;; restart|force-reload) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # echo -n "Restarting $DESC: $NAME" ifdown eth1 rmmod ipw2100 #start-stop-daemon --stop --quiet --oknodo --pidfile \ # $PIDFILE --exec $DAEMON sleep 1 modprobe ipw2100 ifup eth1 #start-stop-daemon --start --quiet --pidfile \ # $PIDFILE --exec $DAEMON echo "." ;; *) # echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|switch}" >&2 exit 1 ;; esac
exit 0
Deinstallieren #
Ein kleines Problem ist noch, dafür zu sorgen, daß das Modul beim Hochfahren nicht schon von selbst geladen wird. In einem Debian Woody geht das z.B., indem man mit modconf das Modul entfernt. Mein neu aufgesetztes Debian Sarge ist da allerdings etwas anders (und Suse, Redhat, etc. dürften da ähnlich sein), indem es durch eine automatische Hardwareerkennung das Modul automatisch lädt - und zwar gleich zweimal... Ich musste daher das Modul ipw2100 in folgenden zwei Dateien eintragen:
/etc/hotplug/blacklist.d/ipw2100 # Datei neu erzeugen und "ipw2100" hineinschreiben /etc/discover.conf # Am Ende "skip ipw2100" ergänzen
komfortabel hoch- und runterfahren #
Damit man zum Hoch- und Runterfahren nicht jedesmal eine Root-Konsole benötigt, dachte ich mir, dass es nett wäre, ein einfaches Icon dafür zu haben. Dieses Problem hat zwei Teile:
- Die Erlaubnis für den Benutzer, das überhaupt zu machen
- Die Erzeugung eines Icons, um den Befehl auszuführen
myusername ALL=(root) NOPASSWD: /etc/init.d/wlan
Damit darf das Skript mit der Kommandozeile sudo -u root /etc/init.d/wlan start vom User myusername gestartet werden. Noch schöner wäre natürlich ein Icon. Dieses kann man auf dem Desktop durch Druck auf die rechte Maustaste und das Menü "Neu erstellen / Datei / Verknüfung zu Programm" erzeugen. Ein eigenes Icon "WLAN" erzeugt dann die Datei ~/Desktop/WLAN.desktop. Es hat bei mir folgenden Inhalt:
[Desktop Entry] Comment=WLAN ein-/ausschalten Comment[de]=WLAN ein-/ausschalten Encoding=UTF-8 Exec=sudo -u root /etc/init.d/wlan switch GenericName=WLAN-Umschaltung GenericName[de]=WLAN-Umschaltung Icon=cache MimeType= Name=WLAN Name[de]=WLAN Path= StartupNotify=false Terminal=false TerminalOptions= Type=Application X-DCOP-ServiceType= X-KDE-SubstituteUID=false X-KDE-Username=
switch-Option
Ich benutze hier im Icon die "switch"-Option, die ich in obiges Startskript "hineingemogelt" habe. Damit kann ich mit einem Icon das WLAN ein- und wieder ausschalten. Dafür sollte man aber irgendwas haben, das einem den derzeitigen Status anzeigt. Das kann z.B. gkrellm oder sowas sein, bei meinem Laptop gibt es eine WLAN-LED, die mir anzeigt, ob das Kernelmodul geladen ist oder nicht. Wer keine solche Anzeige hat, kann auch zwei getrennte Icons zum Ein- und Ausschalten machen, indem er "switch" durch "start" bzw. "stop" ersetzt.