Kernel-Log – Was 2.6.38 bringt (6): Treiber

Trends & News | Kernel-Log

Der HD-Audio-Treiber kann jetzt ohne Interrupts arbeiten und lässt den Prozessoren dann länger schlafen. Neu sind einige Treiber für Touchscreens und Multitouch Panel; der Synaptic-Touchpad-Treiber erkennt ab 2.6.38 mehrere Finger.

In der Nacht von Montag auf Dienstag hat Linus Torvalds die achte Vorabversion von 2.6.38 veröffentlicht. In der Freigabe-Mail schreibt er, es wäre akzeptabel für ihn gewesen, diesen Entwicklungsstand als Linux 2.6.38 freizugeben; da er aber an einigen Tagen der nächsten Woche nicht da sei, hielt er es nicht für sinnvoll, das Merge Window von 2.6.39 zu öffnen.

Die Fertigstellung von 2.6.38 rückt also näher – das Kernel-Log will daher seine Berichterstattung über die Neuerungen von 2.6.38 vervollständigen und widmet sich zum Abschluss der Mini-Serie "Was 2.6.38 bringt" den Treibern aus bislang nicht besprochenen Funktionsbereichen. Teil eins und drei der Artikel-Serie hatten sich mit den Änderungen an dem für Grafikhardware und Netzwerk-Kommunikation zuständigen Code beschäftigt; Teil zwei und vier drehten sich um Dateisysteme und Storage; Architektur-Code, Virtualisierung und Infrastruktur kamen im fünften Teil zur Sprache.

Der Audio-Code des Kernels kann ab 2.6.38 ohne periodischen Interrupt arbeiten, sofern auch der eingesetzte Alsa-Sound-Treiber das beherrscht – für erste ist das nur der Treiber "hda_intel", der trotz seines Namens auch HDA-Hardware von AMD und Nvidia anspricht. Zusammen mit aktuellen, auf "timer-based scheduling" setzenden Versionen von Pulseaudio reduziert das die Zahl der vom System ausgelösten Interrupts, wodurch die CPU im Idealfall länger in stromsparenden Schlafzuständen verweilt. Pulseaudio-Entwickler Lennart Poettering wird im Commit-Kommentar mit den Worten zitiert, der Patch sei sehr interessant und wünschenswert; er habe lange auf so etwas gewartet.

Der Treiber oxygen spricht ab 2.6.38 auch die Xonar DG von Asus an, der bereits erwähnte HDA-Intel-Treiber nun auch einige von VMware-Produkten emulierte HDA-Chips. Wie immer integrierten die Kernel- und Alsa-Hacker Dutzende von Quirks, durch die einige system- oder herstellerspezifische Sonderbehandlungen idealerweise automatisch angewendet werden – diese auch über Modul-Optionen aktivierbare Spezialbehandlungen sind auf nicht wenigen Systemen für die korrekte Funktion der Audio-Hardware nötig. Ein Beispiel für solch einen Quirk ist etwa ein eine Änderung am Treiber für einen HDA-Chips von Conexant: Sie sorgt dafür, dass die SPDIF-Ausgänge und der Mikrofon-Eingang auf den Asus-Notebook-Familien A52J und U50F korrekt arbeiten. Die Links am Ende des Artikels verweisen zu zahlreichen anderen Quirks für Hardware von Acer, Dell, HP, Lenovo, Samsung oder Sony. Einige weitere Neuerungen rund um Audio-Treiber listet Takashi Iwai in seinem Haupt-Git-Pull-Request.

Den Kompatibilitätscode für Video4Linux der ersten Generation haben die Kernel-Entwickler entfernt (1, 2); auf V4L1 angewiesene Userspace-Anwendungen können über die libv4l1 auf Video-Hardware zugreifen, deren Treiber die zweite, derzeit aktuelle Generation des V4L-APIs nutzen. Auch die noch auf V4L1 angewiesenen und vermutlich kaum noch eingesetzten Treiber cpia und stradis haben die Kernel-Hacker entfernt; niemand hatte sich ihrer angenommen, nachdem sie in vor einigen Monaten in den Staging-Zweig verschoben worden waren. Das gleiche Schicksal droht auch bei 2.6.39 den Treibern dabusb, se401 und usbvideo, die in diesem Entwicklungszyklus in den Staging-Bereich verlagert wurden.

Neu dabei ist der Treiber mb86a20s für den gleichnamigen Chip von Fujitsu – ein Demodulator für das in Japan eingesetzte und in Süd Amerika eingeführte ISDB-T/ISDB-Tsb. Beim noch jungen Code für Fernbedienungen nutzt das Media-Subsystem nun an vielen Stellen nicht mehr das Kürzel "IR" (Infra Red), sondern RC (Remote Controller) (u. a. 1, 2, 3). Den Treiber "lirc_i2c" haben die Entwickler entfernt, weil der Treiber ir-kbd-i2c die gleiche Funktion offeriert. Einen Überblick über weitere Änderungen rund um das für Radio- und Fernseh-Hardware sowie Fernbedienungen zuständige Media-Subsystem liefert dessen Betreuer Mauro Carvalho Chehab in dem wichtigsten seiner für 2.6.38 abgesetzten Git-Pull-Requests.

Erneut gab es viele und große Änderungen im vorwiegend für Treiber genutzten Staging-Bereich für Code, der den Qualitätsansprüchen seiner Entwickler oder der Kernel-Hacker nicht genügt. Dazu zählt etwa ein für 2.6.38 integrierter Treiber für die RMI4- und TM1217-Touchscreen-Controller von Synaptics.

Im Staging-Bereich landete auch der "Discretix SEP driver" für den Security Processor, den Intel in einige der für Mobile Internet Devices beziehungsweise den Embedded-Bereich gedachte Chips einbaut. Zum Staging-Zweig stießen ferner über 30 Treiber für verschiede im Bereich Industrial I/O (IIO) eingesetzte Chips. Zudem gab es einige Änderungen bei den Staging-WLAN-Treibern, die der dritte Teil der Mini-Serie "Was 2.6.38 bringt" bereits erläutert hat.

  • Der Treiber Synaptic erkennt auf neueren Synaptoic-Touchpads nun mehrere Finger und beherrscht "Semi Multitouch" (semi-mt).
  • Über neue Schnittellen kann der Userspace nun einige Eigenschaften von Eingabegeräte abfragen, um etwa die von Touchscreens und Mäusen gelieferten Daten zu unterscheiden und unterschiedlich zu behandeln.
  • Der Code für Human Input Devices (HID) enthält ab 2.6.38 einen generischen, aber noch unfertigen Treiber für Multitouch Panels verschiedener Hersteller (u. a. 1, 2, 3, 4).
  • Der HID-Treiber egalax kann nun mit zwei Modellen des Wetabs umgehen (1, 2).
  • Es gab verschiedene, über die Links am Ende des Artikels zu findende Verbesserungen an den Platform-Treibern acer-wmi (neuere Acer-Systeme), eeepc-wmi (Asus), ideapad (Lenovo) und sony-laptop.
  • Das USB-Subsystem bringt nun einen Treiber für Intels auch als Topcliff bekannten PCH (Platform Controler Hub) EG20T mit, der für eine Embedded-Plattform gedacht ist. Auch in vielen anderen Subsystemen gab es neue Treiber oder Erweiterungen für einige von Intels Embedded-Chips (u. a, 1, 2)
  • Der schon länger Autosuspend unterstützende USB-Code nutzt nun auch die noch junge Infrastruktur zur Nutzung und Einstellung der zur Laufzeit verwendbaren Schlafmodi. Dadurch bekommen die Geräte im Sysfs die Datei power/autosuspend_delay_ms und die bisher zur Konfiguration genutzte Datei power/autosuspend gilt als deprecated und dürfte langfristig verschwinden; Details liefert der Kommentar zum Commit und die dort enthaltenen Änderungen an der Dokumentation.
  • Durch eine Änderung am TTY-Subsystem lässt sich jetzt über ein Ioctl das Device der System-Konsole abfragen – Debian und Suse haben solchen Code seit über zehn Jahren eingebaut.

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 Konfigurationsoptionen samt der zugehörigen Hilfetexte 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 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.

Audio

EDAC, Hwmon, I2C, Watchdog

Input & HID

Media (RC/DVB/V4L)

Platform

Staging

USB

Various

Die Kernel-Entwickler pflegen das Gros der Änderungen für eine neue Kernel-Version in der Merge Window genannten Phase am Anfang des Entwicklungszyklus in das Quellcodeverwaltungssystem ein. Dadurch stehen die wesentlichen Neuerungen einer neuen Kernel-Version bereits Wochen vor deren Freigabe fest. Gelegentlich nehmen die Kernel-Entwickler in der zweiten Phase des Entwicklungszyklus aber noch einige kleinere, zumeist nicht ganz so wichtige Änderungen der Kategorie "Die kleineren Perlen" in den Linux-Kernel auf – teilweise, nachdem das Kernel-Log über die entsprechenden Subsysteme des Kernels bereits berichtet hat.

Einige solcher Nachzügler gab es diesmal bei den Grafik- und Netzwerktreibern.

Ferner nahmen die Kernel-Hacker eine eine Optimierung am Radeon-DRM/KMS-Treiber für Radeon-Chips bis zur R500-Serie vor (Radeon-Modelle bis einschließlich der X1950), die zwar Messungen mit dem (für Performance-Messungen denkbar ungeeigneten) Programm glxgears negativ beeinflusst, aber die CPU entlastet und die Framerate richtiger Benchmarks steigert. Aufgrund von Stabilitätsproblemen legten die Kernel-Hacker eine Funktion im Sandy-Bridge-Grafiktreiber still, welche die Performance verbessert; sie lässt sich über einen Modul-Parameter wieder einschalten.

Bei Tests der Vorabversionen von 2.6.38 zeigten sich einige Probleme mit den im ersten Teil dieser Artikel-Serie erwähnten Stromspartechniken für Ironlake-Grafikchips, sodass diese abermals deaktiviert wurden. Zudem gab es Ungereimtheiten beim für die Helligkeitsregelung zuständigen Code des Intel-KMS-Treiber; wer Probleme hat, findet Hintergründe über zwei Einträge im Bugzilla von Kernel.org (1, 2).

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).

Kommentare

Anzeige