Kernel-Log – Was 3.0 bringt (1): Netzwerk

Seite 2: WLAN-Unterstützung

Inhaltsverzeichnis

Der WLAN-Stack des Kernels enthält jetzt grundlegende Unterstützung für die Konfiguration von Wake on Wireless LAN (WoWLAN) (1, 2). Neu ist auch der Treiber rtl8192se für die PCIe-WLAN-Chips RTL8191SE und RTL8192SE von Realtek (u. a. 1). Es ist der dritte maßgeblich von Realtek selbst entwickelte Treiber, der in letzter Zeit in das Netzwerk-Subsystem des Kernel einzog. Beim Integrieren der drei hat Kernel-Hacker Larry Finger geholfen. Er arbeitet bereits an der Aufnahme von ordentlicher WLAN-Treibern für die Chips RTL8192DE und RTL8191SU; für Letztere bringt der Kernel allerdings bereits einen Staging-Treiber mit.

Ebenfalls neu ist der Treiber mwifiex für den vornehmlich im Embedded-Umfeld verbauten SDIO-WLAN-ChipSD8787. Nachdem sich der Treiber carl9170 etabliert hat, wurde der für die gleichen Chips geeignete, aber ältere Treiber ar9170usb jetzt entfernt. Der Treiber ath9k spricht nun auch den Atheros AR9340 an.

Einer der Entwickler des Broadcom-WLAN-Treibers b43 hat einen Treiber für eine Protokoll-Variante der Advanced Microcontroller Bus Architecture (AMBA) eingebracht – der ist bei einigen Bausteinen nötig, damit die WLAN-Treiber die WLAN-Funktionen der Broadcom-Chips erreichen.

Die im Rt2x00-Projekt entstandenen Kernel-Treiber für WLAN-Chips von Ralink bieten ab Linux 3.0 experimentelle Unterstützung für die USB-WLAN-Chipsätze der Baureihe RT5370. Der Treiber für die RT53xx-Familie gilt fürs erste weiter als experimentell, soll diese PCI-WLAN-Chips jetzt aber komplett unterstützten und besser funktionieren. Ähnlich verhält es sich bei den Treibern für die PCI- und USB-Chips für der RT33xx-Reihe, die den Status "experimentell" ablegen konnten.

Auch die Ralink-Treiber kann man nun über Sysfs dazu auffordern, ein bestimmtes PCI-, PCIe- oder USB-Gerät anzusprechen. Das ist nötig, wenn der Treiber es nicht automatisch erkennt, weil die PCI-, PCIe- oder USB-IDs der WLAN-Hardware in der Liste der vom Treibern unterstützten Geräte fehlt. Diese Listen werden immer mal wieder aktualisiert; gelegentlich auch bei Stable- und Longterm-Kerneln, denn die Gefahr ist gering, durch solche Erweiterungen Probleme bei Anwendern auszulösen, welche die Treiber mit anderer Hardware schon länger einsetzen.

Bei jeder neuen Kernel-Version gibt es dutzende oder hunderte Erweiterungen der Listen der von Treibern unterstützten PCI-, PCIe- oder USB-IDs. Das Kernel-Log verlinkt auf solche Commits zumeist im Abschnitt "Die kleinen Perlen". Durch solche eher unscheinbare Änderungen verbessert sich die Hardware-Unterstützung von Linux immer weiter. Das lässt sich gut an drei für Linux 3.0 vorgenommene Commits am Ralink-USB-WLAN-Treiber rt2800usb illustrieren, durch die der Treiber in Zukunft über 30 weitere USB-WLAN-Geräte verschiedener Hersteller automatisch anspricht, ohne dass sich der Anwender um etwas kümmern muss (1, 2, und 3). Bei USB-Hardware sind solche Anpassungen besonders häufig nötig, da die Hersteller oft eigene IDs für ihre Geräte nutzen, während sich PCI- und PCIe-Geräte zumeist mit der ID des verbauten Chips melden.

Die Treiber für Ralink-Chips sind derweil so weit gereift, dass die Kernel-Entwickler die von Ralink entwickelten und später in den Staging-Zweig integrierten Treiber rt2860sta und rt2870sta rausgeworfen haben – ein weiteres Beispiel für Treiber, die im Staging-Zweig nicht gereift sind, sondern durch ganz andere, weitgehend unabhängig entstandene Treiber ersetzt wurden. Auch der für Atheros-AR600x-Chips zuständige Staging-Treiber ath6kl soll nun doch nicht im Staging-Bereich verbessert werden, sondern unabhängig davon.