Linux-Kernel und Wifi: CFG80211_WEXT immer noch chic

Kompiliert man seinen eigenen Linux-Kernel, so muß man genau darauf achten, mit welchen Optionen er konfiguriert wird, damit später im Userspace auch alles funktioniert, was man braucht. Im Wireless-Bereich gibt es hier zwei konkurrierende APIs, bei denen man genau wissen sollte, welche man braucht. Die zuerst entwickelte API heißt Wireless Extensions. Das dazugehörige Userspace-Paket für die Kommandozeile heißt wireless-tools. Darin enthalten sind unter anderem iwconfig zur Konfiguration von Wifi-Interfaces und iwlist zur Anzeige von zusätzlichen Informationen, wie den momentan verfügbaren Access Points. Seit einigen Jahren gibt es einen designierten Nachfolger zu den Wireless Extensions namens cfg80211, auch nl80211 genannt. Im Userspace bietet iw den Zugang zu dieser Funktionalität; enthalten ist jetzt statt der Sammlung von Binaries, die man bei den wireless-tools findet,  nur noch iw als einziges Programm. Entwickler von Distributionen und Userspace-Software werden ausdrücklich zum Umstieg auf die neue API und die neuen Userspace-Werkzeuge aufgefordert:

Wireless extensions is now in maintenance mode, no new features will be added to it, we’ll only fix bugs for it. cfg80211 is now feature-par complete with wireless-extensions, it actually has a lot more features that are simply not available and will never be available through wireless extensions. When implementing a cfg80211 driver wireless extensions support is still provided automatically for you through cfg80211 through CONFIG_CFG80211_WEXT. Distributions no longer needing wireless extensions can remove this and are encouraged to do so.

Auch an anderer Stelle gibt es deutliche Hinweise:

The old tool iwconfing [sic!], which uses Wireless Extensions interface, is deprecated and it’s strongly recommended to switch to iw and nl80211.

In dieser Richtung hat sich aber bisher nicht viel getan. Die meiste Software (hier auch beliebte Frontends wie wicd und NetworkManager) benötigt nach wie vor die Unterstützung für die alte API, und praktisch alle Distributionen steuern die Wifi-Konfiguration weiterhin mit iwconfig. Einige Distributionen liefern iw zumindest mit. Warum der Umstieg so zäh vonstatten geht, ist mir nicht bekannt. Wichtig für die Praxis ist auf jeden Fall, daß der selbstkompilierte Kernel die alte API unterstützt. Die entsprechende Option ist CFG80211_WEXT. Die Erläuterung zu dieser Option lautet übrigens wenig hilfreich:

Enable this option if you need old userspace for wireless extensions with cfg80211-based drivers.

Ist diese Option nicht Teil des laufenden Kernels, so meldet iwconfig:

wlan0 no wireless extensions.

Wer zumindest auf der Kommandozeile die neuen Werkzeuge nutzen möchte, findet einen Vergleich mit den alten Befehlen auf der Website von Linux Wireless.

port zero background enter intere prozesse interene prozesse hover it-sicherheit it-sicherheit-hover online-umsatz online-umsatz-hover kundenbeziehungen kundenbeziehungen-hover port-zero_logo