IPW3945
Aus Gentoo Linux Wiki
| Laptops • Motherboards • Servers • Eingabegeräte • RAID Controller • TV Karten • Wireless • Andere Hardware • Andere Architekturen • alphabetischer Hardware Index |
Es gibt zwei Treiber für diese Karte. Zum einen den
- alten ipw3945d Treiber und den
- neuen iwlwifi (seit 2.6.24 als Modul im Kernel), der auf dem - offiziel seit den 2.6.22 eingeführten - mac802.11 aufbaut.
Inhaltsverzeichnis |
[Bearbeiten] iwlwifi Kernel-Modul (aktuell) für IPW3945 und IPW4945
Dieser neue und freie Treiber von Intel wird für die WLAN-Chipsätze ipw3945 und ipw4945 entwickelt. Iwlwifi verwendet den, seit der Kernelversion 2.6.22 fest implementierten, Networking Stack mac80211. Dieser Stack benötigt keinen speziellen User Space Dämon mehr wie es bei dem Treiber ipw3945 mit ipw3945d der Fall war. Darüber hinaus soll iwlwifi einige WLAN-Probleme durch den neuen Aufbau lösen.
Sei der Kernel-Version 2.6.24 ist der iwlwifi Treiber als Modul im Kernel verfügbar.
[Bearbeiten] ipw3945d deinstallieren
Falls sich noch die ipw3945 Treiber auf dem System befinden, sollten diese vorher entfernt werden. Dazu genügt der Aufruf dieser Befehle:
emerge -avC ipw3945 ipw3945d ipw3945-ucode rm /lib/modules/<kernel>/net/wireless/ipw3945.ko
und das Entfernen der veralteten udev-Regel in der Datei /etc/udev/rules.d/70-persistent-net.rules. Dort einfach den Eintrag ipw3945 entfernen.
[Bearbeiten] iwlwifi installieren
Wenn man einen ipw4945 statt einen ipw3945 hat gelten die gleichen Anweisungen, aber eben nur mit einer 4 statt einer 3 an erster stelle ;)
| Linux Kernel Configuration: Linux Kernel 2.6.24-gentoo |
Device Driver --->
Network device support --->
Wireless LAN --->
[ ] Wireless LAN (pre-802.11)
[*] Wireless LAN (IEEE 802.11)
[*] Intel Wireless WiFi Link Drivers
# Für den 3945 logischweise folgendes wählen:
<M> Intel PRO/Wireless 3945ABG/BG Network Connection
# und entsprechend für den 4965:
<M> Intel Wireless WiFi 4965AGN
Networking --->
Wireless --->
--- Improved wireless configuration API
--- Wireless extensions
<*> Generic IEEE 802.11 Networking Stack (mac80211)
[ ] Enable debugging output
< > Generic IEEE 802.11 Networking Stack
|
Unbedingt darauf achten, dass nur noch der Networking Stack mac80211 aktiviert ist. Mehrere Networking Stacks werden in jedem Fall Probleme verursachen!
EDIT: Es wird noch das Packet iwl3945-ucode benötigt
emerge iwl3945-ucode
Wenn man kein automatsiches Laden von Modulen im Kernel aktiviert hat muss man das Modul noch in folgende Datei eintragen:
| Datei: /etc/modules.autoload.d/kernel-2.6 |
iwl3945 |
Da der Autoload erst beim Neustart greift, laden wir das Modul zunächst manuell
modprobe iwl3945
danach kann man mit
ifconfig -a
überprüfen ob das Gerät erkannt wurde. Nun sollte ein Netzwerk Interface mit dem Namen wlan0 vorhanden sein. Hat man mehrere WLAN Geräte kann die Zahl abweichen.
Weiterführende Informationen:
[Bearbeiten] Strom sparen
Mit dem iwlwifi Treiber kann man ebenfalls das W-LAN gerät in den Stromsparmodus schicken, allerdings nicht mehr mit iwpriv sondern noch etwas umständlicher:
echo 5 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level
Den aktuellen Status kann man folgendermaßen auslesen:
cat /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level
Die Modi haben die gleichen Werte wie beim ipw3945:
echo 1 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level # bis 5 manuelle Stufen echo 6 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level # Power Management aus echo 7 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level # Sparmodus für Batteriebetrieb
[Bearbeiten] iwlwifi als Packet (alt)
Dieser neue und freie Treiber von Intel wird für die WLAN-Chipsätze ipw3945 und ipw4945 entwickelt. Iwlwifi verwendet den, seit der Kernelversion 2.6.22 fest implementierten, Networking Stack mac80211. Dieser Stack benötigt keinen speziellen User Space Dämon mehr wie es bei dem Treiber ipw3945 mit ipw3945d der Fall war. Darüber hinaus soll iwlwifi einige WLAN-Probleme durch den neuen Aufbau lösen.
Zum jetzigen Zeitpunkt (02.10.2007) ist iwlwifi im Portage noch hard-masked. Dennoch scheint bis jetzt alles wunderbar zu laufen. Die Verschlüsselungsmodi WEP, WPA und WPA2 funktionieren ohne Probleme. Einziger Wermutstropfen ist das Fehlen der Status-LED während einer Übertragung was aber eher ein kosmetischer Fehler ist. ;-)
[Bearbeiten] ipw3945d deinstallieren
Falls sich noch die ipw3945 Treiber auf dem System befinden, sollten diese vorher entfernt werden. Dazu genügt der Aufruf dieser Befehle:
emerge -avC ipw3945 ipw3945d ipw3945-ucode rm /lib/modules/<kernel>/net/wireless/ipw3945.ko
und das Entfernen der veralteten udev-Regel in der Datei /etc/udev/rules.d/70-persistent-net.rules. Dort einfach den Eintrag ipw3945 entfernen.
[Bearbeiten] iwlwifi installieren
Als nächstes erweitern wir die make.conf um das USE-Flag ipw3945 in der Datei /etc/make.conf. Da der Treiber im Portage hard-masked ist, müssen die folgenden Zeilen eingetragen werden:
| Datei: /etc/portage/package.keywords |
net-wireless/iwlwifi ~x86 |
| Datei: /etc/portage/package.unmask |
net-wireless/iwlwifi |
Nun noch den Kernel anpassen:
| Linux Kernel Configuration: Linux Kernel 2.6.22-gentoo |
Device Driver --->
Network device support --->
Wireless LAN --->
[ ] Wireless LAN (pre-802.11)
[ ] Wireless LAN (IEEE 802.11)
Networking --->
Wireless --->
--- Improved wireless configuration API
--- Wireless extensions
<*> Generic IEEE 802.11 Networking Stack (mac80211)
[ ] Enable debugging output
< > Generic IEEE 802.11 Networking Stack
|
Unbedingt darauf achten, dass nur noch der Networking Stack mac80211 aktiviert ist. Mehrere Networking Stacks werden in jedem Fall Probleme verursachen!
Zum Schluss den neuen Treiber installieren:
emerge -av iwlwifi
Wenn man kein automatsiches Laden von Modulen im Kernel aktiviert hat muss man das Modul noch in folgende Datei eintragen:
| Datei: /etc/modules.autoload.d/kernel-2.6 |
iwl3945 |
Da der Autoload erst beim Neustart greift, laden wir das Modul zunächst manuell
modprobe iwl3945
danach kann man mit
ifconfig -a
überprüfen ob das Gerät erkannt wurde. Nun sollte ein Netzwerk Interface mit dem Namen wlan0 vorhanden sein. Hat man mehrere WLAN Geräte kann die Zahl abweichen.
Weiterführende Informationen:
[Bearbeiten] Strom sparen
Mit dem iwlwifi Treiber kann man ebenfalls das W-LAN gerät in den Stromsparmodus schicken, allerdings nicht mehr mit iwpriv sondern noch etwas umständlicher:
echo 5 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level
Den aktuellen Status kann man folgendermaßen auslesen:
cat /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level
Die Modi haben die gleichen Werte wie beim ipw3945:
echo 1 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level # bis 5 manuelle Stufen echo 6 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level # Power Management aus echo 7 > /sys/bus/pci/drivers/iwl3945/####:##:##.#/power_level # Sparmodus für Batteriebetrieb
[Bearbeiten] ipw3945d (veraltet, aber stabil)
Für das Wireless Netzwerkinterface gibt es keinen Treiber im Kernel, aber die benötigten Module kann man mit Portage nachinstallieren.
Zuerst brauchen wir aber die Kernel-Unterstützung für Wireless-LAN:
| Linux Kernel Configuration: Linux Kernel 2.6.21-gentoo |
Networking --> <*> Generic IEEE 802.11 Networking Stack <*> IEEE 802.11i CCMP support <*> IEEE 802.11i TKIP encryption <*> Software MAC add-on to the IEEE 802.11 networking stack |
Es gibt Anleitungen die auf einen externen Networking Stack bestehen (Packet: ieee80211), da der im Kernel nicht mit dem Treiber-Modul kompatibel wäre. Seit dem 2.6.21er Kernel sind aber die Kernel-Module vorzuziehen.
Der W-LAN Stack mac80211 aus dem 2.6.22er Kernel (2.6.22-r1-mm) funktioniert noch nicht mit dem Treiber ipw3945-1.2.0.
Damit ipw3945-1.2.0 sich emergen lässt, muss man in der Kernel-Config (.config) CONFIG_NET_RADIO=y hinzugefügen. Diese Option gibt es im 2.6.22er Kernel nicht mehr, aber ipw3945 lässt nur kompilern wenn es in der .config steht.
Als nächstes noch den Treiber emergen:
emerge -av ipw3945
Wenn man kein automatsiches Laden von Modulen im Kernel aktiviert hat muss man das Modul noch in folgende Datei eintragen:
| Datei: /etc/modules.autoload.d/kernel-2.6 |
ipw3945 |
Neben dem Treiber-Modul wird noch ein Daemon benötigt den man mit
/etc/init.d/ipw3945d start
startet. Sinnvoll ist es ihn beim booten automatisch zu starten:
rc-update add ipw3945d default
Über die weitere Konfiguration für Wireless-LAN findet man in der Anleitung Wireless Konfiguration
[Bearbeiten] Problembehebung
Ab und zu kommt es vor, dass man sich in kein Funknetzwerk einloggen kann. Verurschacht wird dies durch den properitären ipw3945d. In solchen Fällen hilft temporär:
/etc/init.d/ipw3945d restart
Für eine dauerhalfte Lösung im Kernel alle relevanten Teile direkt in den Kernel einbauen (also nicht als Modul):
| Linux Kernel Configuration: Linux Kernel 2.6.22-gentoo |
Networking --> <*> Generic IEEE 802.11 Networking Stack <*> IEEE 802.11i CCMP support <*> IEEE 802.11i TKIP encryption |
[Bearbeiten] Strom sparen
Die WLAN Karte unterstützt verschiedene Power Management Modi die folgendermaßen einstellbar sind:
iwpriv ethX set_power 1 # bis 5 manuelle Stufen iwpriv ethX set_power 6 # Power Management aus iwpriv ethX set_power 7 # Sparmodus für Batteriebetrieb
Welche Stufe gerade aktiv ist kann man mit
iwpriv ethX get_power
nachschauen
