Kernel-Log – Was 2.6.32 bringt (4): Treiber

Die demnächst anstehende Linux-Version 2.6.32 bringt zahlreiche neue und verbesserte Treiber mit [--] etwa solche für die Hauppauge-HVR-Modelle 2200 und 2250, einige Thinkpad-Notebooks von IBM/Lenovo oder den Fingerabdrucksensor im MSI Wind. Die Hyper-V-Treiber von Microsoft haben die Kernel-Entwickler in den Staging-Bereich aufgenommen.

In Pocket speichern vorlesen Druckansicht 13 Kommentare lesen
Lesezeit: 33 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

In der Nacht von Donnerstag auf Freitag hat Linus Torvalds 2.6.32-rc8 veröffentlicht. Dabei deutete er an, dass dies die letzte Vorabversion von Linux 2.6.32 sei, wenn die Dinge weiter so laufen wie bisher – also keine größeren neuen Probleme auftauchen und die Entwickler weiter an bekannten Fehlern arbeiten, ohne dass dazu größere Umbaumaßnahmen nötig sind. Er hofft zudem, dass sich noch mehr Entwickler mit der Beseitigung solcher Fehler beschäftigen – an einem gewissen Punkt müsse er aber "jetzt ist genug" sagen und die neue Version veröffentlichen.

Nach den Übersichten über die Änderungen im Netzwerksubsystem, jenen für Grafik-Hardware und die rund um Storage-Hardware und Dateisysteme widmet sich der vierte Teil der Serie "Was Linux 2.6.32 bringt" nun Treiber für andere Hardware-Komponenten.

Die Audio-Treiber des Kernels sind nun auf dem Niveau von Alsa 1.0.21. Der Treiber für HD-Audio-Hardware unterstützt nun – so Subsystem-Maintainer Takashi Iwai in seinem Haupt-Git-Pull-Request – eine Art "Firmware", mit der man dem Treiber Hardware-spezifische Sonderbehandlungen ("quirks") dynamisch mitteilen kann, falls das BIOS nicht genügend oder inkorrekte Informationen zur Konfiguration des Codec übermittelt. Laut Commit-Kommentar soll das aber nur eine Übergangslösung für Anwender darstellen, bis die Entwickler die entsprechenden Informationen im Treiber selbst aufnehmen – genau das machten die Kernel-Hacker auch in diesem Entwicklungszyklus für zig verschiedene PCs und Notebooks wie etwa den Dell Mini 9 oder das MacBook Pro 5,5.

Im Git-Pull-Request hatte Iwai zudem betont, dass es ganz allgemein viele Verbesserung zur Codec-Konfiguration bei Notebooks von Dell und HP gab; auch Realtek-Codecs sollen die Sound-Treiber nun zuverlässiger konfigurieren. Verbesserungen gab es zudem beim Treiber für die auf LGA1156-Boards verbauten Intel-Chipsätze (P55/IbexPeak). Wie immer gab es auch zahlreiche Neuerungen für ASoC (Alsa System on Chip) – Mark Brown von Wolfsonmicro nennt einige der wichtigsten in einer Mail, weitere finden sich in der Liste am Ende des Artikels.

Mauro Carvalho Chehab gibt in seinem beiden Haupt-Patches (1, 2) einen Überblick über die wichtigsten Neuerungen im von ihm betreuten V4L/DVB-Subsystem. Neu dabei ist etwa der Treiber cx25821 für auf dem gleichnamigen Chip basierende TV-Karten. Ebenfalls dazu gestoßen ist der Treiber saa7164 für den Chip, der auf den Hauppauge-HVR-Modellen 2200 und 2250 sitzt.

Das Gspca-Framework enthält nun einen Treiber für den Chip GL860, der in verschiedenen Modellen der Genesys Logic PC Camera steckt. Neu dabei ist auch der Treiber jeilinj für Webcams mit einen dem namensgleichen Video-Chip. Der Treiber uvcvideo für USB-Webcams, die nach der USB Device Class Definition for Video Devices arbeiten, verarbeitet nun auch mehrere Eingabeströme parallel (12).

Programmierer finden in der Kernel-Dokumentation nun API-Informationen zum V4L/DVB-Subsystem im Docbook-Format. Das V4L/DVB-Subsystem unterstützt nun auch die derzeit vornehmlich in Japan und Brasilien eingesetzten Übertragungsstandards ISDB-T (Broadcast TV) und ISDB-S (Satellit). Zudem haben die Entwickler den Code zur Unterstützung von Infrarot-Fernbedienungen renoviert und dabei einige bisher Treiber-spezifische Keymappings vereinheitlicht.

Wie schon bei den vorangegangenen Linux-Versionen sind auch in diesem Entwicklungszyklus viele Änderungen im Staging-Zweig, der unreife, den Qualitätsansprüchen der Kernel-Hacker Entwickler nicht genügende Treiber aufnimmt, sehr umfangreich. Sie sind der Hauptgrund, warum derzeit bei jeder neuen Kernel-Version deutlich mehr Zeilen Quellcode neu zum Kernel stoßen oder rausfliegen als vor ein oder zwei Jahren. Satte 3,5 MByte groß ist allein der Patch, der den Treiber RT3090 für den gleichnamigen WLAN-Chips von Ralink nachrüstet; auf über 2 MByte beläuft sich der Commit, der einen Treiber für den Realtek-WLAN-Chip 8192 einbindet.

Beiden nutzen genau wie viele anderen WLAN-Treiber im Staging-Bereich spezielle WLAN-Stacks und nicht den des Kernels, der WLAN-Treibern verschiedene Basis-Funktionen bereitstellt. Userspace-Programme arbeiten deshalb häufig nicht so gut mit WLAN-Treibern aus dem Staging-Bereich zusammen. Dan Williams, Entwickler des bei vielen Distributionen eingesetzten NetworkManagers, hat die Staging-WLAN-Treiber daher schon mehrfach kritisiert (1, 2) und die Kritik erst kürzlich mit einem ausführlichen, einige Probleme konkret benennenden Blog-Post wiederholt. Auch einige Entwickler der WLAN-Treiber im Kernel haben in der Vergangenheit schon Kritik an den Staging-Treibern geübt. Erst kürzlich gab es zudem mehrere, gelegentlich wenig freundliche Diskussionen zwischen Entwicklern der Ralink-Treiber im WLAN-Subsystem und jenen, die sich mit den Ralink-Treibern im Staging-Bereich beschäftigen.

Staging-Treiber haben aber nicht nur Qualitätsmängel, sondern verschwinden anders als reguläre Kernel-Treiber gelegentlich ohne längere Vorwarnzeit, wenn sich keiner mehr um sie kümmert – dieses Schicksal ereilte in diesem Entwicklungszyklus unter anderem die Treiber agnx, epl, sxg und sxg und heci. Entfernt haben die Entwickler den Staging-Treiber cpc-usb, denn seine Funktionen übernimmt nun der parallel im normalen USB-Subsystem integrierte Treiber ems_usb. Rausgeflogen ist auch der WLAN-Treiber at76_usb, denn die von ihm betreute Hardware unterstützt Linux seit Version 2.6.30 mit dem Treiber at76c50x-usb.

Wie erwartet haben die Kernel-Entwickler die kürzlich unter der GPL freigegebenen Hyper-V-Treiber von Microsoft in den Staging-Bereich aufgenommen. Linux-Gastsysteme können mit ihnen die Hardware-Emulation beim Betrieb unter einigen Microsoft-Virtualisierungslösungen teilweise umgehen und so deutlich bessere I/O-Performance erzielen. Seitdem die Microsoft-Entwickler wieder aktiv sind, ist es unwahrscheinlich, dass die Treiber bei 2.6.33 schon wieder rausfliegen – letzteres hatte der Verwalter des Staging-Bereiches vor einigen Wochen angedroht, weil er über einen längeren Zeitraum nichts von den Microsoft-Entwicklern gehört hatte. Den am Anfang des aktuellen Entwicklungszyklus integrierten Treiber cowloop haben die Entwickler aufgrund von Problemen noch vor der Freigabe von 2.6.32 wieder entfernt.

Die bei 2.6.31 aufgenommenen USB-3.0-Treiber sollen durch verschiedene in 2.6.32 eingeflossene Änderungen nun richtig rund laufen – einige dieser Patches sind aber auch in die Stable-Kernel der 2.6.31-Serie eingeflossenen, um deren USB-3.0-Unterstützung zu verbessern. Über ein neues API können Anwendungen den Kernel nun anweisen, bestimmte USB-Ports und die dort angeschlossenen Geräte zu ignorieren, weil sich die Anwendung selbst komplett um diese kümmert – das kann etwa für Virtualisierungslösungen interessant sein, die USB-Geräte an Gäste durchreichen.

Der Treiber thinkpad-acpi wurde erheblich überarbeitet – zu den Verbesserungen zählen die Unterstützung für Thinkpads mit einer neueren Firmware-Generation ("second-gen firmware") und bessere Koordination mit dem Userspace bei Lautstärke- und Helligkeitsregelung über Hotkeys. Neu dabei ist ein Treiber für das Netbook Topstar N01.

Das Input-Subsystem für Eingabegeräte bringt nun einen Treiber für das Sentelic Finger Sensing Pad mit – ein Fingerabdrucksensor, der in einigen Geräten der Wind-Serie von MSI steckt. Erstmals Bestandteil des offiziellen Kernels ist auch ein Treiber für den von Winbond gefertigten Infrarot-Controller (CIR/Consumer IR) WPCD376I, der etwa auf dem DG45FC-Mainboard von Intel zum Einsatz kommt.

UIO (Userspace I/O) bietet nun einen generischen Treiber für PCI-2.3-Geräte – dessen Entwickler will ihn zusammen mit Qemu im Virtualisierungsumfeld einsetzen. Das I2C-Subsystem unterstützt bereits jetzt AMDs noch nicht mal offiziell angekündigte Southbridge SB900. Neu dabei ist ein I2C-Treiber für das generische, auf ACPI aufsetzende SMBus Control Method Interface (CMI). Ebenfalls neu ist EDAC-Unterstützung für Intels auf Xeon-CPUs mit LGA775-Gehäuse ausgelegte Mainboard-Chipsätze 3200 und 3210.

Viele weiteren nicht ganz so wichtige Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds betreuten Git-Zweigs mit den Kernel-Quellen auf Kernel.org. Im Webfrontend liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderungen.

Audio

ASoC

Hardware-Monitoring, I2C, EDAC

Input

Net- und Notebooks

Staging

USB

Video

Various other drivers

Weitere Hintergründe und Informationen rund um die Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Ausgaben des Kernel-Log. (thl) (thl)