Kernel-Log – Was 2.6.29 bringt (1): Netzwerk – "Mistige" WLAN-Treiber, Wimax- und AP-Unterstützung

Linux 2.6.29 bringt erstmals WiMAX-Stack mit; AccessPoint-Unterstützung freigeschaltet; WLAN-Treiber für Ralink-Chips im Staging-Bereich; zahlreiche weitere Erweiterungen für LAN- und WLAN-Treiber sowie die Netzwerk-Infrastruktur von Linux.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 14 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Nach der Freigabe von Linux 2.6.28 nimmt Linus Torvalds seit nunmehr knapp zwei Wochen die umfangreicheren Änderungen für die Kernel-Version 2.6.29 in den Hauptentwicklungszweig von Linux auf. Dabei hat er bereits satte 7550 Patches eingepflegt, die 8388 Dateien verändern und über 1.061.513  neue, veränderte oder verschobene Zeilen Code mitbringen. Einige weitere Änderungen dürften in den nächsten Tagen noch folgen, da das Merge Window diesmal einige Tage länger als üblich offen bleiben soll; anschließend beginnt die meist acht bis zehn Wochen lange zweite Phase im Entwicklungszyklus, wo nur noch Fehlerkorrekturen oder kleinere, ungefährlichere Änderungen den Weg in den Hauptentwicklungszweig finden.

Ein nicht unerheblicher Teil der bislang integrierten Änderungen bringt eine Reihe größerer Neuerungen rund um die Netzwerkunterstützung des Kernels, mit deren Beschreibung wir die die Kernel-Log-Mini-Serie "Was 2.6.29 bringt" auf heise open eröffnen. In den nächsten etwa acht bis zehn Wochen werden wir über weitere Änderungen berichten, bis Linus Torvalds 2.6.29 freigibt – und dann ein großes Kernel-Log die wichtigsten Änderungen in Linux 2.6.29 zusammenfasst.

Über Greg Kroah-Hartman, den Betreuer des USB-Subsystems, fand der maßgeblich von Intel-Entwicklern vorangetriebene und im Rahmen des Linux-WiMAX-Projekts entwickelte WiMAX-Stack den Weg in den Hauptentwicklungszweig von Linux. Damit erhält Linux mit 2.6.29 eine Basisinfrastruktur für die drahtlose Breitband-Vernetzungstechnik WiMAX, auf den der ebenfalls im WiMAX-Projekt entwickelte und parallel in den Kernel aufgenommene USB-Treiber i2400m aufsetzt. Er spricht Intels WiMAX-Chip WiMAX Connection 2400 an, der sich auf den vornehmlich in neueren Centrino-Notebooks verbauten WLAN-/WiMAX-Modulen Intel Wireless WiMAX/WiFi Link 5150 und 5350 (Codename: Echo Peak) findet.

Wie das Changelog in der schlussendlich erfolgreichen Mail mit der Bitte um Aufnahme zeigt, haben die Linux-WiMAX-Entwickler mehrere Anläufe gebraucht, bevor die Verwalter von Netzwerk- und USB-Subsystem mit dem Code zufrieden waren und grünes Licht für die Aufnahme gaben. In der Mail sowie den am Ende dieses Artikels zu findenden Links auf die Commits im Quellcodeverwaltungssystem von Linux finden sich ebenso wie auf der Linux-WiMAX-Webseite zahlreiche weitere Details und Hintergründe zur neuen WiMAX-Infrastruktur des Linux-Kernels.

Die Webseite hält auch die i2400m-Firmware und die zugehörige Userspace-Software zum Download bereit. Der für die Authentifizierung mit der Gegenstelle nötige Intel WiMAX Binary Supplicant sowie der Intel WiMAX Binary OMADM Client stehen derzeit allerdings nur als vorkompilierte Archive online (Lizenz; FAQ-Eintrag) – ausschließlich auf Open-Source-Software setzende Distributionen wie Debian, Fedora und OpenSuse werden diese Teile des Userspace-Stacks daher vorerst nicht in die Kern-Distribution aufnehmen. Wie der Intel-Entwickler in der erwähnte Mail aber klarstellt, soll der Intel WiMAX Binary Supplicant aber unter eine Open-Source-Lizenz gestellt werden, sobald einige Probleme ausgeräumt sind ("For networks that require authentication (most), the Intel device requires a supplicant in user space – because of a set of issues we are working to resolve, it cannot be made open source yet, but it will.")

Nachdem der von Greg Kroah-Hartman betreute Staging-Kernel-Zweig mit 2.6.28 in den Hauptentwicklungszweig von Linux aufgenommen wurde fanden über den selbsternannten "Maintainer of crap" ("Verwalter des Mists") zahlreiche weitere Treiber, die den Qualitätsansprüchen der Kernel-Entwickler eigentlich nicht genügen, den Weg in den Staging-Bereich des Kernels. Darunter befinden sich unter anderem die WLAN-Treiber rt2860 und rt2870 für die gleichnamigen WLAN-Chips von Ralink, die sich in so manchem aktuellen Netbook und einigen billigen Notebooks finden. Neu im Staging-Bereich ist auch der im Oktober freigegebene Treiber otus für die 802.11n-USB-WLAN-Chips UB81, UB82 und UB83 von Atheros sowie die Treiber agnx und rtl8187se für die WLAN-Chips AGNX00 von Airgo und RTL8187SE von Realtek. Zudem gab es zahlreiche Aufräumarbeiten und Umstrukturierungen am Code des bereit 2.6.28 beiliegenden Frameworks wlan-ng; den ebenfalls schon 2.6.28 beiliegende Staging-Treiber at76_usb tauschten die Entwickler gegen eine auf den Linux-WLAN-Stack mac80211 setzende Variante aus – eigentlich war das vom Treiber-Autor aber anders geplant, sodass weitere Änderungen oder gar eine Rücknahme des Patches nicht unwahrscheinlich sind. Auch der Netzwerk-Treiber benet für den 10Gb-Netzwerk-Adapter BladeEngine (EC 3210) von ServerEngines ist neu im Staging-Bereich.

Ob die Anwender von Mainstream-Distributionen und deren Kerneln greifbare Vorteile durch die Aufnahme all dieser Staging-Treiber haben ist von der jeweiligen Distribution abhängig, denn die Verwalter der Distributions-Kernel aktivieren die Staging-Treiber teilweise nicht oder nur teilweise, weil sie den normalen Qualitätsansprüchen der Kernel-Entwickler nicht genügen; letzteres ist auch der Grund, warum der Kernel beim Laden von Staging-Treiber als "TAINT_CRAP" markiert wird, damit bei Fehlerberichten durch Anwender klar ersichtlich ist, dass ein "mistiger" Treiber den Kernel "beschmutzt" hat und möglicherweise für Probleme (mit)verantwortlich ist. Anwendern, die ihre Hardware einfach nur benutzen wollen, dürfte das aber mangels Treiber-Alternativen zumeist herzlich egal sein, sofern der Treiber keine größeren Probleme macht. NetworkManager-Entwickler Dan Williams ließ kürzlich auf einer Fedora-Liste allerdings durchblicken, dass er von den Staging-Treibern nicht viel hält (1, 2); Bugs, bei denen Staging-Treiber involviert seien, wolle er ignorieren ("Basically, I'm going to ignore any issues that come in from these drivers because they aren't accepted upstream wireless drivers, despite what gregkh (who's not a wireless developer) tries to make them.")

Netzwerk-Subsystem-Verwalter David S. Miller hat allerdings nicht nur Greg Kroah-Hartman das Einsenden von Netzwerk-Neuerungen überlassen, sondern auch selbst über tausend Patches aus dem Netzwerk-Bereich gesammelt und an Torvalds übermittelt. (1, 2, 3).

Die schon länger im WLAN-Stack des Kernel enthaltene, aber bislang deaktivierte Unterstützung zum Betrieb als AccessPoint (AP) wurde freigeschaltet (Dokumentation, Unterstützung in nl80211); die eigentlichen AP-Verwaltungsfunktionen erledigt der Kernel allerdings nicht selbst, sondern überlässt dies aktuellen Versionen von hostapd. Die WLAN-Treiber müssen den AP-Mode aber auch unterstützen, was beispielsweise bei den dem Kernel beiliegenden Treibern für die vor allem in Centrino-Notebooks verbauten Intel-WLAN-Module nicht der Fall ist. Die WLAN-Treiber ath5k und p54 erweitern die Entwickler hingegen um Unterstützung für den AP-Mode (1, 2).

Den schon länger AP-tauglichen WLAN-Treiber Ath9k haben die Kernel-Hacker um Unterstützung für die Atheros-WLAN-Chip AR9285 erweitert (1, 2). Rate Control API und HT Handling des WLAN-Stacks mac80211 haben die Entwickler erheblich überarbeitet (1, 2, 3); zudem erweiterten die Kernel-Hacker cfg80211 und mac80211 um Unterstützung für 802.11d. Teile des veralten, noch für die Treiber ipw2x00 und hostap benötigten Linux-WLAN-Stacks wurden umhergeschoben und versteckt, was das Übersetzen einiger unabhängig vom offiziellen Linux-Kernel gepflegten WLAN-Treiber stört.

Für LAN-Treiber ist die Generic Receive Offload (GRO) Infrastructure neu dabei. Ebenfalls neu sind die LAN-Treiber smsc911x für die LAN-Chips LAN911x und LAN921x von SMSC sowie der Treiber smsc9420 für den vom selben Hersteller gefertigten 100-MBit-Chip LAN9420. Der Treiber bnx2 versteht sich jetzt mit dem Broadcom-Chip BCM5716S, das PHY-Modul broadcom mit den Chips BCM57780 und BCM50610. Im Treiber tg3 für LAN-Chips von Marvell neu sind Verbesserungen für den 5785 und Unterstützung für die Chips 5761S und 57780.

Nachdem die Verwalter des Netzwerk-Subsystems und deren Treiber vom bei 2.6.27 eingeführten Split von Treibern und Firmware anfangs nicht viel hielten, haben die Kernel-Entwickler mittlerweile die Teilung doch bei zahlreiche Netzwerk-Treibern umgesetzt – für 2.6.29 etwa bei den Treibern acenic, e100, starfire und tg3. Entfernt haben die Entwickler den für 100-Mit-LAN-Chips von Intel zuständigen LAN-Treiber eepro100, den der Treiber e100 eigentlich schon lange ersetzt; ebenfalls weichen musste der Bluetooth-Treiber hci_usb, dessen Arbeit btusb seit längerem übernimmt.

Noch mehr Änderungen

Die bislang genannten Neuerungen sind die wichtigsten bislang für 2.6.29 aufgenommenen Änderungen im Netzwerk-Bereich; wie immer gibt es aber noch eine ganze Reihe weiterer nicht gar so wichtige, aber keineswegs unwichtige Neuerungen, die die Kernel-Entwickler im Quellcodeverwaltungsystem des Linux-Kernels vorgenommen haben:

General:

LAN specific:

WLAN specific:

WiMAX:

MISC:

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich auch in den vorangegangen Ausgaben des Kernel-Logs auf heise open:

Ältere Kernel-Logs finden sich über das Archiv oder die Suchfunktion von heise open. (thl/c't) (thl)