IPW3945

Aus Gentoo Linux Wiki

(Weitergeleitet von IWLWIFI)
Wechseln zu: Navigation, Suche
Dieser Teil ist Artikel der Hardware Serie.
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 4945:
    <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

'Persönliche Werkzeuge