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

Bessere Unterstützung für neue Chipsätze und Grafikkerne von AMD und Intel; Treiber für Microsofts Kinect und den DVB-T-Nachfolger DVB-T2; zahlreiche Workarounds für verschiedenste Hardware-Probleme.

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

Abermals in der Nacht von Montag auf Dienstag hat Linus Torvalds eine Vorabversion von Linux 3.0 veröffentlicht. In der Freigabe-Mail zum RC7 schreibt er, es sei ziemlich ruhig gewesen, aber es habe doch noch einige Neuerungen gegeben, daher hielt er einen weiteren RC für angebracht. Bei der sechsten Vorabversion hatte er bereits angedeutet, das vielleicht schon der RC6 der letzte sein würde.

Wenn Torvalds nicht noch einen weiteren RC einschiebt, dürfte Linux 3.0 vermutlich Ende dieser oder Anfang nächster Woche erscheinen. Das Kernel-Log will daher seine Mini-Serie "Was 3.0 bringt" zum Abschluss bringen und widmet sich im vierten Teil den Neuerungen bei Treibern – darunter jene für Audio-, Grafik-, Multimedia- und Storage-Hardware. Der erste Teil der Artikel-Reihe beschäftigte sich mit den Änderungen an Netzwerk-Treibern und -Infrastruktur, der darauf folgende drehte sich um Dateisysteme; im dritten Teil ging es um plattformspezifischen Code, Virtualisierung und Infrastruktur des Kernels.

Der in Linux 3.0 enthaltene i915-DRM/KMS-Treiber für Intel-Grafikchips in Prozessoren und Chipsätzen für Notebooks und Desktop-PCs soll bereits den Grafikern der Ivy-Bridge-Prozessoren ansteuern können, die Intel vermutlich erst Anfang nächsten Jahres einführen wird (u. a. 1, 2, 3, 4, 5, 6, 7). Der Treiber soll in Zukunft die Stromspartechnik RC6 wieder standardmäßig nutzen. Da störende Wechselwirkungen mit der weniger effizienten Frame Buffer Compression (FBC) bekannt waren, haben die Entwickler FBC zunächst standardmäßig deaktiviert. Kurz vor der Freigabe von Linux 3.0 haben die Entwickler die RC6-Technik dann aber auch deaktiviert , da Probleme aufgetaucht waren. Der Commit-Kommentar deutet aber darauf hin, dass sie demnächst einen weiteren Anlauf nehmen wollen.

Der Radeon-DRM/KMS-Treiber erhält einige Verbesserungen zur Ausgabe via DisplayPort (u. a. 1, 2, 3, 4, 5, 6). Der Treiber spricht jetzt auch den Grafikkern der Llano-Prozessoren an, die AMD kürzlich für Notebooks und Desktop-PCs eingeführt hat (u. a. 1, 2). Um Probleme wie dunkle Bildschirme zu vermeiden, ist die Audio-Ausgabe via HDMI für erste standardmäßig deaktiviert; sie lässt sich über den Kernel-Parameter radeon.audio=1 einschalten. Zudem gab es eine Änderung am Hilfetext zum Radeon-DRM/KMS-Treiber, die klarstellt, dass er jetzt jegliche Radeon-Grafikhardware unterstützt.

Der Nouveau-DRM/KMS-Treiber beherrscht bei den GeForce-Grafikchip-Generationen nv40 und nv84 nun die Pmpeg genannte Technik, mit der sich das Dekodieren von MPEG-Material an den Grafikchip delegieren lässt; es gibt aber bislang kein Userspace-Interface, um Pmpeg zu nutzen. Einige andere Änderungen legen Grundlagen zur Unterstützung verschiedener Techniken, die beim Umschalten zwischen Prozessor-/Chipsatz-Grafik und GeForce-Grafikchips involviert sind (u. a. 1, 2, 3); bei neueren Notebooks nennt Nvidia das "Optimus".

Der DRM-Code unterstützt ab Linux 3.0 zudem eine Farbtiefe von 30-Bit. Zur Aufnahme bei 3.1 ist bereits ein Patch vorgesehen, durch den der Nouveau-Treiber die Firmware selbst erzeugen kann, die zur Nutzung der Beschleunigungsfunktionen von Nvidias Grafikkarten der Serien 400 und 500 (Fermi-GPUs) erforderlich ist; bisher muss man die Firmware mit komplizierten Tricks den proprietären Nvidia-Treibern entlocken. Bald soll es auch eine Reihe von Verbesserungen am Treiber für die virtuelle Grafikhardware mancher VMware-Virtualisierungslösungen geben, der genau wie Nouveau ein Staging-Treiber ist.

Auch der Grafiktreiber gma500 ist ein Staging-Treiber, der den Qualitätsansprüchen seiner Entwickler oder der Kernel-Hacker nicht genügt. Er erhielt einige Erweiterungen, um neben dem GMA500-Grafikkern im Chipsatz US15W (Poulsbo) auch jene in den MID-Plattformen Oaktrail und Moorestown anzusprechen (1, 2). Ferner haben die Kernel-Hacker das TTM-Interface verworfen und ein GEM-Interface zur Speicherverwaltung eingebaut. Unterstützung für den noch in diesem Jahr erwarteten Cedarview ist für Linux 3.1 in Vorbereitung (1, 2). Hauptentwickler Alan Cox ist der Ansicht, die Treiberteile zur Unterstützung von Poulsbo und Cedarview können den Staging-Bereich jetzt verlassen. Die Unterstützung für Chipsätze für Mobile Internet Devices (MID) brauche aber noch einige Aufräumarbeiten, daher soll der Treiber modularisiert werden. Zudem bietet der HDMI-Support bislang nur Grundfunktionen und beherrscht kein HDMI-Audio.

Zum Staging-Bereich stieß ferner der Userspace-Teil des im USB/IP-Projekt entwickelten Frameworks usbip, das USB-Geräte über eine Netzwerkverbindung an andere Systeme weiterreicht. Client- und Host-Treiber von usbip sind bereits seit 2.6.28 Bestandteil von Linux; sie erhielten mit 3.0 einige Änderungen, nachdem es mit ihnen lange nicht vorangegangen war. Eine ganze Reihe von Verbesserungen gab es auch an den Treibern für Microsofts Virtualisierungsschnittstelle Hyper-V, für die Staging-Betreuer Greg Kroah-Hartman die Microsoft-Entwickler in seinem Haupt-Git-Pull-Request lobt.

Neu im Staging-Bereich ist ein Treiber für die Intel Management Engine (Intel ME), die eine Reihe verbreiteter Notebook- und Desktop-PC-Chipsätze von Intel bieten (u. a. 1, ToDo-List). Die Konfigurationsoption "STAGING_EXCLUDE_BUILD" haben die Kernel-Hacker entfernt, damit die Treiber beim Testen jetzt typischerweise kompiliert werden; dadurch verschwindet auch der zugehörige Hilfetext, der klarstellte, dass Staging-Treiber "vielleicht losgehen und den Hund treten, wenn man gerade nicht acht gibt".