Neue Treiber

Trends & News | Kernel-Log

Seite 4: Neue Treiber

Treibereien Unter der Unmenge der in Linux 2.6.26 integrierten Änderungen sind viele mehr, die die Hardware-Unterstützung der zahlreichen in den Linux-Quellen enthaltenen Treiber verbessern, ihren Funktionsumfang erweitern oder Fehler korrigieren. Die nebenstehenden Absätze erwähnten nur die allerwichtigsten Neuerungen bei Treibern; viele weitere finden sich am Ende des Artikels in einer thematisch grob sortierten Liste mit einer Kurzbeschreibungen der jeweiligen Änderung. Diese verlinkt zum jeweiligen Commit im Webinterface des Verwaltungssystems für den Linux-Quellcode, wo sich in der Regel weitere Informationen zur Änderung und ihren Hintergründen finden.

Neben einiger der bereits erwähnten Verbesserungen bei der Hardware-Unterstützung integrierten die Entwickler wie üblich zahlreiche weitere Treiber oder überarbeiteten die bereite zuvor enthaltenen Treiber und die sie umgebenen Subsysteme. Neu Aufgenommen wurde etwa der Treiber eeepc-laptop, der sich um die Spezialitäten des EeePC von Asus kümmert – dazu zählen etwa die Steuerung der Hintergrundbeleuchtung und der Lüfter. Zum Kernel hinzu stieß ferner die Unterstützung für die Architektur der OLPC-Notebooks.

Zahlreiche der eingepflegten Patches verändern ferner die vom Alsa-Projekt betreuten Sound-Treiber. Durch Änderung am Treiber virtuoso etwa unterstützt dieser nun die Asus-Soundkarte Xonar DX. Ein neuer Alsa-Treiber versucht sich auf Wunsch an der Audio-Ausgabe über den zumeist im Gehäuse integrierten und für das klassische Piepen des PCs zuständigen "PC-Speaker"; die Entwickler raten jedoch, den Treiber normalerweise besser nicht zu aktivieren, damit die Audio-Ausgabe nicht versehentlich über den PC-Speaker statt die Soundkarte erfolgt.

Die Kernel-Sound-Treiber unterstützen zudem bereits den HDMI-Sound-Controller der erst kürzlich vorgestellten GPUs der neusten Radeon-Grafikkartengeneration. Zahlreiche weitere, am Ende des Artikels aufgelistete Änderungen korrigieren Fehler, erweitern die Fähigkeiten der Treiber oder sorgen über eine Whitelist dafür, dass die bei vielen PCs, Mainboards und Notebooks nötige Sonderbehandlung für Audio-Hardware möglichst automatisch angewendet wird.

Auch bei den für TV- und Video-Hardware zuständigen Video-4-Linux-Treibern tat sich wieder einiges – unter anderem wurde die Unterstützung für Hybrid-Tuner erheblich optimiert. Neu dabei ist der erst kurz vor der Fertigstellung von 2.6.26 aufgenommene Treiber uvcvideo für eine ganze Reihe verschiedener USB-Kameras, die der USB Device Class Definition for Video Devices (kurz meist USB video class oder UVC genannt) folgen; dazu zählen insbesondere viele der in neueren Notebooks verbauten Webcams. Erstmals bringt Linux mit 2.6.26 den Treiber cx18 für TV-Karten mit dem Conexant cx23418 (etwa die Hauppauge HVR-1600), den Treiber mxl5505s für den 5505-Chips von MaxiLinear sowie den von einem Hauppauge-Mitarbeiter eingebrachten V4L-Treiber au0828 für die Hauppauge-TV-Hardware HVR950Q, HVR850 und FusioHDTV7-USB mit. Der Treiber cx23885 unterstützt nun auch den Hardware Encoder Conexant cx23417.

Recht spät im Entwicklungszyklus hat Dave Airlie eine größere Sammlung DRM-Patches zur Aufnahme vorgeschlagen, die den Microcode für Radeon-Grafikkarten mit dem von AMD freigegebenen abgleichen und 3D-Unterstützung für R500-GPUs im Direct Rendering Manager des Kernels nachrüsten. Torvalds integrierte die Patches trotz der späten Einsendung und des Umfangs – für 3D-Beschleunigung bei der Radeon X1000-Serie braucht man somit neben Linux 2.6.26 nur noch neue Versionen der X.org-Treiber ati oder radeonhd sowie ein aktuelles Mesa.

Nachdem es um das IDE-Subsystem zeitweise recht still geworden war, hat der für diesen Bereich zuständige Entwickler Bartlomiej Zolnierkiewicz in den vergangenen Monaten den IDE-Code stark überarbeitet und aufgeräumt (1, 2, 3, 4, 5); diese Arbeit hat er auch bei 2.6.26 fortgesetzt und dabei zahlreiche Kernel-Parameter entfernt und Untersützung zum "Warm-Plug" nachgerüstet (siehe Anhang). Somit wird das IDE-Subsystem wohl noch einige Zeit weiter parallel zu den neueren im Libata-Subsystem angesiedelten PATA-Treibern erhalten bleiben. Viele der neueren Distributionen bevorzugen allerdings die Libata-Treiber oder setzen diese ausschließlich ein.

Weiter verbessert wurde auch der mit 2.6.22 aufgenommene FireWire-Stack Juju. Der neue USB-Treiber cdc-wdm spricht drahtlos Handys und Modems an, die CDC WMC beherrschen. Für Menschen mit eingeschränkten Sehfähigkeiten bringt der Kernel ab 2.6.26 einen einfacher Treiber für Braille Screenreader mit.

Bei all den neuen und überarbeiteten Treibern mussten einige aber auch weichen. So entfernten die Entwickler den für Marvell-LAN-Hardware zuständigen Treiber sk98lin – dieser ursprünglich vom Chipsatzhersteller entwickelte Treiber wurde im Rahmen der Kernel-Quellen schon lange nicht mehr gewartet, nachdem die Kernel-Entwickler die Treiber skge und sky2 von Grund auf neu als Ersatz für sk98lin entwickelt hatten.

Auch im jetzt abgeschlossenen Entwicklungszyklus pflegten die Kernel-Entwickler die eine oder andere Änderung ein, um sie später wieder rückgängig zu machen. Ein Patch von Ingo Molnar etwas sorgte dafür, dass der x86-32-Kernel in der Standard-Konfiguration nur mehr einen 4K großen Stack pro Prozess/Thread nutzt. Daraus entstand eine recht lange Diskussion um die verschiedenen Vor- und Nachteile sowie Seiteneffekte von 4K-Stacks, wie sie in den vergangenen Jahren schon einige Male geführt wurde. Schließlich wurde die Änderung dann wieder zurückgezogen – es bleibt abzuwarten, ob früher oder später jemand erneut einen solchen Vorstoß wagt, oder ob die 4K-Stacks als Standard für x86-32-Systeme bald vergessen sein werden, wenn sich x86-64-CPUs und -Distributionen endgültig durchsetzen.

Der Patch, der die 4K-Stacks zur Standardvorgabe erhob, war aber keineswegs der einzige, den die Kernel-Hacker wieder verwarfen – insgesamt wurden fast vierzig der für 2.6.26 zwischenzeitlich angenommenen Patches vor dessen Freigabe wieder entfernt. Darunter war etwa ein fast 150 KByte großer UDP-Patch im Netzwerk-Subsystem sowie verschiedene Verbesserungen an CFS. Zumindest einige dieser Änderungen dürften in überarbeiteter Form in Linux 2.6.27 oder späteren Kernel-Versionen einziehen.

Neben dem Hin- und Her bei den Patches gab es während dieses Entwicklungszyklus zahlreiche Diskussionen und Entwicklungen, die auf die zukünftigen Entwicklungsprozesse Einfluss haben dürften. Mehrere, teils umfangreiche Debatten unter Beteiligung vieler Entwickler-Größen drehten sich etwa um die vermeintlich zu hohe Aufnahmegeschwindigkeit und die unzureichende Qualität der in den Hauptentwicklungszweig eingepflegten Patches. So beschwerten sich einige Entwickler, dass die Snapshot aus dem Linux-Quellcodeverwaltungssystem während des Merge-Window häufig nicht kompilierten oder nicht einmal im Ansatz liefen; in diesem Zusammenhang hoben einige Kernel-Hacker zudem hervor, dass zahlreiche Patches ihrer Ansicht nach vor der Aufnahme nicht ausreichend begutachtet worden waren.

Al Viro und Andrew Morton zeigten sich im Rahmen einer Diskussion weitgehend einig darüber, dass die zur Integration in die Hauptentwicklungslinie vorgesehenen Patches für andere Kernel-Entwickler besser sichtbar sein sollen – dadurch können die Änderungen gegebenenfalls rechtzeitig und ohne viel Aufhebens angepasst werden, bevor Torvalds die Patches in das Quellcodeverwaltungssystem eingepflegt. Torvalds selbst macht deutlich klar, dass er die Rate der aufgenommenen Änderungen keineswegs verlangsamen möchte. Er wies auch die Forderung zurück, das Merge Window auszudehnen; im Gegenteil, er möchte es eher verkürzen.

Es ist derzeit nicht abzusehen, welche Konsequenz diese facettenreichen Diskussion (die das Kernel-Log hier nur oberflächlich wiedergeben kann) tatsächlich langfristig auf den Entwicklungsprozess von Linux haben. Es herrscht aber offensichtlich weitgehend Einigkeit darüber, dass ein wenig Optimierung am Entwicklungsprozess überfällig ist. Das hatten zumindest einige Kernel-Hacker aber bereits zuvor erkannt und im Februar den Entwicklerzweig linux-next gestartet. Der führt in die Entwicklungen der verschiedenen Subsystem und Kernel-Hacker zusammen, die in die jeweils übernächste Linux-Version einziehen sollen (also 2.6.27 bis heute und 2.6.28 in den kommenden Wochen).

Dadurch können die Entwickler ihre Patches frühzeitig aufeinander abstimmen; die Neuerungen aus verschiedenen Bereichen sind ferner gebündelt in einem Archiv zu finden, was Testern die Beschaffung erleichtert. Schließlich vereinfacht linux-next den Kernel-Hackern den Blick in den Entwicklungsstand anderer Kernel-Hacker; erstere können so gegebenenfalls Kritik äußern, bevor Torvalds die Änderungen tatsächlich in den Hauptentwicklungszweig aufnimmt.

Nachdem der kürzlich auf LWN.net interviewte Andrew Morton mehrere Monate nach einem Maintainer Ausschau hielt, der sich speziell um die Belange von Embedded-Systemen kümmert, haben Paul Gortmaker (Windriver) und David Woodhouse (bis vor kurzem bei Red Hat beschäftigt) diese Aufgabe vor einigen Wochen übernommen und sich in einem Interview auch gleich zu ihren Plänen Stellung genommen.

Anzeige