Kernel-Log – Was 2.6.35 bringt (5): Treiber

Ausgebaute Unterstützung für USB 3.0, ein neues Subsystem zur Nutzung von Infrarot-Fernbedienungen sowie ein EDAC-Treiber für Nehalem-Prozessoren sind nur einige von vielen neuen oder verbesserten Treibern.

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

In der Freigabe-Mail zur sechsten Vorabversion von Linux 2.6.35 deutete Torvalds an, dass das die letzte Vorabversion dieses Kernel-Version sein könnte – eine Veröffentlichung von Linux 2.6.35 in den nächsten zehn Tagen ist damit recht wahrscheinlich.

Das Kernel-Log will daher die Mini-Serie "Was 2.6.35 bringt" mit der Beschreibung der Neuerungen rund um Treiber für Hardware-Komponenten abschließen, die bislang nicht zu Sprache kamen. Bereits der erste Teil der Mini-Serie hatte sich mit den Änderungen rund um Grafik-Hardware beschäftigt, während der zweite neben Storage-Hardware auch Dateisystemen behandelte. Der dritte Teil beschäftigte sich mit Netzwerk-Infrastruktur und -Treibern, der vierte mit Architektur, Infrastruktur, Tracing und Virtualisierung.

Der xHCI-USB-Treiber unterstützt ab 2.6.35 die Datenübertragung mit den bei USB 3.0 eingeführten "Bulk Endpoint Streams". Sie sind eine Voraussetzung für einige noch in Entwicklung befindliche Patches, die den USB-Storage-Treiber des Kernels um Unterstützung für das USB Attached SCSI Protocol (UASP) erweitern, das USB-3.0-Datenträgern zu besseren Übertragungsraten verhilft. Neu ist ein Gadget-Treiber, der ein HID-Device emuliert. Ebenfalls frisch zum Kernel stieß das FunctionFS-Framework, mit dessen Hilfe sich USB-Gadget-Device aufsetzen lassen, um Daten aus dem Userspace über das Gadget-Device zum USB-Host zu transportieren (u. a. 1, 2). Genutzt wird das etwa bei neuen Treiber f_uvc, der Video-Daten via USB zum Host weiterleitet.

Der ältere, häufig IEEE1394 genannte FireWire-Stack des Kernels soll mit 2.6.37 entfernt werden. Damit übernimmt der bei bei 2.6.22 integrierte FireWire-Stack Juju bald die Alleinverantwortung zur Ansteuerung von FireWire-Hardware, nachdem der FireWire-Subsystem-Maintainer bereits bei Version 2.6.33 einige Änderungen eingepflegt hatte, um Distributionen zum Umstieg auf den neueren FireWire-Stack zu bewegen.

Die vom Alsa-Projekt betreuten Sound-Treiber des Kernels sind mit 2.6.35 auf dem Niveau der Alsa-Version 1.0.23. Neu dabei ist der Treiber snd-asihpi für ASI-Soundkarten von AudioScience. Größere Umstrukturierungen und zahlreiche Verbesserungen gab es zudem am Code zur Unterstützung von USB-Audio – vieles davon bringt die bei 2.6.34 eingebrachte Unterstützung für die Version 2.0 der USB-Audio-Spezifikation auf Vordermann (u. a. 1, 2, 3, 4, 5, 6). Einen Überblick über weitere Neuerungen bei Audio-Treibern sowie die wichtigsten Änderungen im Subsystems ASoC (Alsa System on Chip) gibt Takashi Iwai in seinem Haupt-Git-Pull-Request.

Ein neues, maßgeblich vom V4L-/DVB-Maintainer Mauro Carvalho Chehab vorangetriebenes "Remote Controller Subsystem" soll die Grundlagen für eine bessere Unterstützung von Infrarotfernbedienungen legen (u. a. 1, 2, 3, 4, 5). Bislang lieferten die meisten Distributionen dafür Lirc-Treiber mit, die jedoch den Qualitätsansprüchen der Kernel-Entwickler nicht genügten und in Zukunft vielleicht in abgewandelter Form mit dem neuen Subsystem zusammenarbeiten sollen. Einige Hintergründe zur Situation liefert ein LWN.net-Artikel aus dem vergangenen Dezember.

Über den V4L-/DVB-Maintainer stieß der Treiber tm6000 für die TV-Master-Chips tm5600/tm6000 von Trident zum Staging-Zweig (u. a. 1 , Todo) – hier werden unreife und verbesserungswürdige Treiber gesammelt, die den Qualitätsansprüchen der Kernel-Entwickler nicht genügen oder die größere Probleme zeigen. All das scheint auch auf den etwa für die Terratecs Cinergy Hybrid XE oder die Hauppauge WinTV HVR 900H/WinTV geeigneten Tm6000-Treiber zuzutreffen, denn Mauro Carvalho Chehab äußert sich in seinem Git-Pull-Request nicht sonderlich positiv über den Treiber.

Zum Staging-Bereich stieß ferner ein Framebuffer-Treiber für die als XG20, XG21, XG40 und XG42 oder Z7, Z9 und Z11 bekannten Grafikchips von XGI; neu ist auch der ein WAN-Treiber für die WanPMC-CxT1E1-Karte, ein Treiber fürs Intels Restricted Access Region (RAR) Handler sowie ein dritter V4L-Treiber für DT3155-Chips. Entfernt wurden die auf den Rest des Kernels nicht sonderlich gut abgestimmten und von niemandem betreuten Treiber arlan, strip und wavelan, die Chips aus den Anfangstagen von Wireless LAN unterstützten, die heute vermutlich kaum mehr im Einsatz sind.

Ab Version 2.6.35 liegt dem Linux-Kernel der Treiber i7core_edac bei, der Unterstützung für EDAC (Error Detection And Correction) von Intels Nehalem-Prozessoren nachrüstet – also Prozessoren wie den Core i7 oder die Xeon-CPUs der Baureihen 35xx und 55xx. Jean Delvare hebt im Gut-Pull-Request zu den Verbesserungen am Hwmon-Subsystem die Unterstützung für neue Macbook-Pro-Modelle sowie Monitoring-Chips verschiedener Hersteller hervor.

Auch zum Input-Subsystem stießen zahlreiche neue Treiber – darunter einer für die Roccat Kone Gaming Mouse sowie mehrere für Multitouch-Hardware. Bei den "kleinen Perlen" am Ende des Artikels finden sich zudem einige Änderungen an Treibern für Notebooks – gleich mehrere kleinere Änderungen gab es etwa am Treiber für Thinkpads von IBM und Lenovo. Für Mobile Internet Devices (MIDs) mit x86-Prozessoren bringt der Kernel nun einen Treiber für IPC (Inter Processor Communications) mit der SCU (Snoop Control Unit) mit.

Viele kleinere, aber keineswegs unbedeutende 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 gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch liefern zahlreiche weitere Informationen zur jeweiligen Änderungen.

Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Hilfetexte und Konfigurationsoptionen enthalten, die bei der Kernel-Konfiguration über "make menuconfig", "make xconfig" und ähnliche Werkzeuge angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" steht etwa für Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.

Alsa

FireWire

HWMON, I2C

Input

Notebooks

Staging

USB

V4L/DVB

Various other drivers

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)