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

Der Kernel unterstützt nun USB-3.0-Hubs, die neuesten Radeon-Grafikkarten und Intels bislang problematische GMA500-Grafik. Neu sind ferner Treiber für Asus- und Samsung-Notebooks sowie Audio- und Multimedia-Hardware verschiedener Hersteller.

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

In der Nacht von Montag auf Dienstag hat Linux Torvalds die siebte Vorabversion von Linux 2.6.39 veröffentlicht. Er schreibt in der Freigabe-Mail, dass es recht ruhig zugehe; er nimmt an, der RC7 werde die letzte Vorabversion, sofern nicht noch größere Probleme auftauchen.

Mit der langsam nähere rückenden Fertigstellung von Linux 2.6.39 will das Kernel-Log die Mini-Serie "Was 2.6.39 bringt" mit der Beschreibung der Neuerungen bei Treibern abschließen – darunter jene für Audio-, Grafik- und Multimedia-Hardware. Der erste Teil der Artikel-Reihe hatte sich den Änderungen an Netzwerk-Treibern und -Infrastruktur gewidmet; der darauf folgende drehte sich um Dateisystem-Code sowie Storage-Treiber und -Infrastruktur; im dritten Teil ging es um plattformspezifischen Code und allgemeine Infrastruktur.

Der Radeon-Treiber des Kernels 2.6.39 unterstützt nun auch die Grafikchips der Cayman-Familie, die AMDs unter anderem auf den aktuellen Radeon-HD-Modellen 6790 bis 6970 verbaut (u. a. 1, 2). Mangels DRM-Unterstützung lassen sich deren 2D- und 3D-Beschleunigungsfunktionen aber nicht nutzen; spätere Kernel sollen diese Lücke beseitigen.

Der für Nvidia-GPUs zuständige Grafiktreiber Nouveau beherrscht nun Z-Kompression. Bei Grafikkernen der Familie NV50 (GeForce 8, 9, 100, 200 und 300) sowie NVC0 (GeForce 400 und 500) unterstützt der Kernel nun das bei Linux 2.6.38 eingeführte Pageflipping, das eine genauere Abstimmung der Bildaktualisierung mit dem Bildwechsel des Ausgabegerätes ermöglicht – das kann die Performance verbessern und soll Tearing vermeiden (1, 2). Zudem wurde ein Performance-Problem beseitigt, das eine Leistungseinbuße von 10 bis 30 Prozent nach sich gezogen haben soll.

Die Entwickler der Grafiktreiber für Intel-Chips haben viele kleinere Änderungen vorgenommen; einige von ihnen verbessern die Performance in bestimmten Situationen oder senken die Leistungsaufnahme neuerer Grafikkerne (1, 2, 3). Im DRM/KMS-Code gab es einige Änderungen, um über USB angebundene Grafikhardware anzusteuern; das legt die Grundlagen für einen KMS-Treiber für Displaylink-Hardware, an dem Dave Airlie arbeitet. In seinem Haupt-Git-Pull-Request für 2.6.39 erwähnt der Verwalter des DRM-Subsystems noch einige weitere Änderungen rund um den DRM/KMS-Code des Kernels; etwa Tiling-Unterstützung für R600-GPUs oder TTM-Unterstützung für Xen-Dom0-Systeme.

Zum Audio-Subsystem stieß ein Treiber für die Terratec DMX 6Fire USB; dort landete auch ein FireWire-Audio-Treiber, der das Griffin FireWave Surround Sound System und die LaCie FireWire Speaker anspricht. Der Treiber Hdspm unterstützt nun die von RME Audio gefertigten HDSPe-Modelle RayDAT und AIO; der Treiber Usbaudio lernte USB Autosuspend, was die Leistungsaufnahme reduzieren sollte, wenn die Audio-Hardware nicht genutzt wird.

Der Haupt-Git-Pull-Reqeust von Audio-Subsystem-Betreuer Takashi Iwai listet einige weitere Änderungen; er erwähnt dort etwa Korrekturen, die einige seit langem bekannte Probleme beim SPDIF-Code des X-Fi-Treibers beseitigen. Die Audio-Treiber des Kernels sind durch diese Änderungen auf dem Stand von Alsa 1.0.24.

Kernel-Log-Leser Dennis Jansen hat sich derweil näher mit den bei 2.6.38 vorgenommenen Änderungen beschäftigt, durch die der Treiber Snd-hda-intel die Audio-Ausgabe ohne Interrupt beherrscht. Die Messergebnisse und einige Hinweise zu den nötigen Einstellungen hat er in einem Blog-Eintrag zusammengefasst; demnach habe sich die Zahl der pro Sekunde erfolgten Aufwachvorgänge von 150 auf 19 reduziert, was nur wenig mehr ist als im Leerlauf. Der Prozessor konnte dadurch die tieferen Schlafzustände häufiger erreichen und erheblich länger in diesen verweilen, wodurch sich die Leistungsaufnahme des zum Test eingesetzten Notebooks bei Audio-Ausgabe um 0,4 Watt reduziert habe.

Zum Media-Subsystem mit seinen Fernbedienungs-, TV-, Video-, und Webcam-Treibern stieß das bei LWN.net beschriebene Media Controller Subsystem (u. a. 1, 2, 3), über das der Userspace die Funktionen von Video-Hardware in SOCs (System-on-a-Chip) besser nutzen kann.

Neu ist auch ein Treiber für einen via USB 2.0 angebundenen DVB-S/S2-Receiver von Technisat sowie Unterstützung für den DiBcom 9000 – einen DVB-T-Tuner, der auf den Einsatz in mobilen Geräten ausgelegt ist. In den Kernel floss ferner der Gspca-Subtreiber nw80x ein, der Webcam-Chips von Divio anspricht. Die haben viele verschiedene Hersteller eingesetzt; darunter auch Logitech bei der QuickCam Pro mit dunklem Fokusring. Für die Webcam "3com homeconnect" liegt dem Kernel nun ein komplett neu geschriebener V4L2-Gspca-Treiber bei, der mehr leisten soll als der ältere V4L1-Treiber Vicam. Einen guten Überblick über weitere Änderungen am Media-Subsystem liefert dessen Verwalter Mauro Carvalho Chehab in seinem Haupt-Git-Pull-request für 2.6.39.

Zum Kernel stieß der Grafiktreiber psb_gfx für den unter Linux bislang als sehr problematisch geltenden Grafikkern GMA500. Der steckt in Intels eher für den Einsatz im Embedded-Markt ausgelegten Chipsatz US15W ("Poulsbo"), den einige Hersteller in Netbooks einsetzen. Seit der Vorstellung des anfangs sehr rudimentären Treibers wurde er bereits an vielen Stellen verbessert (1, 2). Es gibt aber noch einiges mehr zu tun, daher landete er wie von vornherein vorgesehen im Staging-Bereich – dort liegen Treiber und anderer eigenständiger Code, der den Qualitätsansprüchen seiner Entwickler oder denen der Kernel-Hacker nicht genügt.

In diesem Bereich landete auch ein von Microsoft entwickelter Maustreiber für Hyper-V. An den anderen, schon länger im Kernel enthaltenen Treibern für Microsofts Virtualisierungsschnittstelle gab es in letzter Zeit zahlreiche Änderungen. Es scheint, als würden Microsofts Entwickler neuerdings deutlich mehr Energie in das Beseitigen der Qualitätsmängel investieren, damit der Treiber den Staging-Bereich verlassen kann; lange hatte es so ausgesehen, als hätte es Microsoft mit den quelloffenen Treibern nicht so richtig ernst genommen, da es mit ihnen gar nicht oder nur überaus schleppend voran ging.

Als Staging eingestuft sind auch die bei LWN.net beschriebene Transcendent-Memory-Infrastuktur und das darauf aufbauende Zcache – Letzteres ist im Umfeld von Zram entstanden und versucht, durch Komprimierung des Page Cache den Arbeitsspeicher effizienter zu nutzen. Das im selben Umfeld entstandene und für einige Funktionen von Zcache benötigte Cleancache hat Linus Torvalds außen vor gelassen, nachdem er anfangs erwogen hatte, es noch nach Ende des Merge Window aufzunehmen; es ist noch unklar, ob es in 2.6.40 folgt (1, 2)

Im Rahmen der BKL-Säuberungsaktion flogen Autofs3 und Smbfs sowie der DRM-Treiber i830 wie erwartet raus.

Den Staging-Bereich verlassen konnte ein Treiber für SABI. Dabei handelt es sich um ein Samsung-eigenes Interface, über das viele der in den letzten Jahren gefertigten Net- und Notebooks dem Betriebssystem unter anderem mitteilen, wenn der Anwender Funktionstasten betätigt – etwa jene zur Helligkeits- oder Lautstärke-Regelung.

Zum Kernel stieß zudem ein Treiber für die Verarbeitung von WMI-Event, die einige All-In-One-Systeme von Dell beim Betätigen der Tasten zur Lautstärkeregelung absetzen. Auch für neuere Asus-Notebooks, die WMI für die Funktionstasten-Interaktion mit dem Betriebssystem nutzen, liegt dem 39er-Kernel ein Treiber bei; er ist aus dem WMI-Treiber für EeePCs hervorgegangen.

  • Der USB-Code unterstützt nun USB-3.0-Hubs (1, 1). Während der 39er-Entwicklung hat Kernel-Hacker Mauro Carvalho Chehab auf der LKML ein "usbmon capture and parser script" vorgestellt, mit dem sich ein USB-Sniffer aufsetzen lässt – anscheinend hat er einen solchen für die Entwicklung eines TV-Treibers benötigt. Im Rahmen der Diskussion wurde der Verwalter des Media-Subsystem darauf hingewiesen, dass es ähnliche Software bereits gibt.
  • Neu ist der Treiber Rts_pstor für PCIe-Kartenleser-Chips von Realtek.
  • Bei den Treibern für Eingabegeräte gab es allerlei Änderungen; der Roccat-Treiber etwa unterstützt nun die Arvo-Tastatur und die Kova[+]-Maus (1, 2)
  • Der EDAC-Treiber unterstützt nun AMDs im Sommer erwartete Bulldozer-Prozessoren (1,2).
  • Unter den zahlreichen Änderungen an den Treibern für Hardware-Monitoring-Bausteine findet sich ein Treiber für den Super I/O-Chip SCH5627 von SMSC.

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" oder "make xconfig" 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" kennzeichnet Ä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

Grafik

I2C/HW-Monitoring/EDAC

Input

Media

Platform

Staging

USB

Various

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)