WLAN-Karte "Intel Wireless Wifi Link 5100" #

Als in meinem neuen Sony VAIO schon wieder eine neue WLAN-Karte steckte und keine Treiber im Standard-Kernel waren, habe ich mich zuerstmal aufgeregt. Nachdem ich mühsam die Specs der Karte herausgefunden habe, weiss ich nun, daß ich mit 300 MB/Sec Daten übertragen kann. Mal abgesehen davon, daß ich dazu keinen passenden Access Point und auch keinen passenden Internet-Anschluss habe, hört sich das ja recht schnell an.

Treibersuche #

lspci ergibt:

  06:00.0 Network controller: Intel Corporation Device 4232

bzw:

  06:00.0 0280: 8086:4232

Leider ist das Ding wohl erst im Juni 2008 auf den Markt gekommen, d.h. trotz der eigentlich recht guten Treiberunterstützung von Intel (für Linuxer durchaus empfehlenswert!) ist der Treiber (noch) nicht in den Debian Lenny-Kernel "durchgesickert".

Sollte die Karte in zukünftigen Kerneln ordentlich unterstützt sein, hat sich diese Seite erledigt, da mich die Sache aber recht viele Nerven gekostet hat, wollte ich das hier anderen nicht vorenthalten.

Es gibt einen Treiber, zu dem Infos auf http://www.intellinuxwireless.org stehen. Nach der Beschreibung dort ist der Treiber ab Kernel 2.6.24 integriert. Man benötigt jedoch eine Firmware. Diese sollte im nonfree-Paket firmware-iwlwifi sein.

Leider ist es so, daß mit der "Intel Wifi 5100" (die ich habe) im Gegensatz zu den älteren diese Treiber nicht direkt funktionieren. Man muss sie leider selber erzeugen.

Bau des Treibers #

Dies ging folgendermassen:

Pakete linux-headers-2.6-686 und make installieren, um eigene Kernel-Module übersetzen zu können. Dann von der Projektwebseite die compat-wireless Sourcen herunterladen.

Damit diese Sourcen für meine Karte liefen, musste in der Datei config.mk den Eintrag CONFIG_IWL4965 auf n gesetzt werden (Das ist der Haupt-Trick, der mich im Endeffekt einen Extra-Tag gekostet hat). Danach wie auf der Webseite beschrieben make und sudo make install ausführen.

Dazu benötigen wir noch die Firmware. Die 5100er Firmware steht auf der Download-Seite nicht sofort zugänglich, sondern erst im Archiv (auch ein böser Trick, bis man die gefunden hat). Diese muss nach /lib/firmware kopiert werden.

Läuft die Karte einmal, ist sie zuverlässig und robust. Ich habe ein Device "wlan0", kann damit Scannen usw.

zuverlässiges Starten des Devices #

Irgendwie startete das WLAN-Device nicht so flüssig, wie ich mir das dachte. Meistens ging es nach dem Einschalten erstmal nicht, lief dann aber nach ein paar Testbefehlen sofort problemlos. So ein Fehler ist recht schwer zu finden, wenn man jedesmal den Rechner neu hochfahren muss, um ihn zu testen. Ich habe ihn aber (so glaube ich) behoben. Offensichtlich wird, wenn das Netzwerk-Interface nicht "up" ist (also mit <code>ifconfig up</code>, der WLAN-Sender deaktiviert (Im Prinzip eine gute Idee, die Strom spart). Man kann also z.B. auch nicht nach APs scannen etc. (Das ist zum Beispiel bei meinem alten CentrinoWLAN definitiv anders gewesen - dort musste ich das Kernelmodul entfernen, um Strom zu sparen - , weshalb ich einige Zeit brauchte, um dahinter zu kommen.) Andererseits wird immer dann, wenn man WLAN-Daten konfiguriert (also mit iwconfig) ein neuer Accesspoint gesucht. Nun tritt das Problem wohl auf, weil ifup zuerst das WLAN konfiguriert (dann wird ein AP gesucht, aber keiner gefunden, weil der Sender deaktiviert ist) und dann erst das eigentliche Interface (und damit den Sender aktiviert). Wird danach DHCP gestartet, so ist kein AP assoziiert.

Langer Rede kurzer Sinn - meine Lösung ist folgendes in /etc/network/interfaces:

  iface wlan0 inet dhcp
  #     address 192.168.202.137
  #     netmask 255.255.255.0
  #     Die Wireless-Einstellungen mache ich per pre-up-Skript
  #     Ansonsten klappt das nicht richtig. Das Problem scheint zu sein, daß
  #     die Karte mit dem iwlagn-Treiber erst nach "ifconfig up" wirklich
  #     aktiviert ist (eigentlich sinnvoll). Danach muss dann nochmal der AP
  #     neu gesucht werden. Erst dann steht die Verbindung.
  #
  #     Trotzdem mache ich auch die "klassischen" Einstellungen, damit ifdown
  #     diese auch wieder richtig zurücksetzt.
        wireless-essid krefeld
        wireless-key 1122-3344-55
        # das hilft, um die Karte zuverlässiger hochzufahren
        pre-up iwconfig wlan0 essid krefeld key 1122334455
        pre-up ifconfig wlan0 up
        pre-up iwconfig wlan0 ap any

Wer's mag, kann gerne wie sonst auch noch zusätzliche up- und down-Skripte einfügen. Diese werden alle einzeln ausgeführt, z.B. so:

        up /etc/init.d/openvpn restart laptopvpn
        down /etc/init.d/openvpn stop laptopvpn


Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-2) was last changed on 03-Oct-2008 14:36 by ThomasBayen