Kernel-Log – Was 3.12 bringt (4): Treiber | heise online

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

Optimus-Notebooks und einige Grafikkerne von AMD und Intel verbrauchen mit Linux 3.12 weniger Strom. Die Recheneinheiten von Grafikkernen lassen sich jetzt einfacher nutzen und Intels schnellster Grafikchip wird nun ebenso unterstützt wie die GPU in HPs TouchPad.

vorlesen Druckansicht 4 Kommentare lesen
Lesezeit: 36 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Die Entwicklung von Linux 3.12 ist auf die Zielgerade gegangen: Am vergangenen Wochenende hat Linus Torvalds den sechsten RC dieser Kernel-Version veröffentlicht. Der Erfinder des Linux-Kernels und viele andere Kernel-Entwickler treffen sich diese Woche in Edinburgh, um sich auf dem diesjährigen Kernel Summit auszutauschen. Wahrscheinlich legt Torvalds dann Anfang kommender Woche eine weitere Vorabversion nach; da der RC7 in letzter Zeit zumeist der letzte war, dürfte der Kernel 3.12 dann Anfang November fertig sein.

Mit der folgenden Beschreibungen der Änderungen an Treibern soll daher soll nun auch die Kernel-Log-Mini-Serie "Was 3.12 bringt" zu ihrem Ende kommen. Die drei ersten Teile der Serie hatten sich mit den Neuerungen beschäftigt, die diese Kernel-Version in den Bereichen Dateisysteme und Storage, Netzwerk und Infrastruktur bringt.

Bei vielen modernen Notebooks mit zwei Grafikkernen wird Linux den separaten Grafikchip automatisch zu- und wegschalten können (u. a. 1, 2). Das ist unter anderem für die im Consumer-Markt häufig anzutreffenden Notebooks mit Nvidias Optimus interessant, die neben der Prozessor-Grafik eine GeForce-GPU enthalten. Letztere ist in der Standard-Konfiguration derzeit aktueller Distributionen meist aktiv, obwohl sie nichts zur Bildschirmdarstellung beiträgt, und nimmt rund 5 Watt Leistung auf, was die Akku-Laufzeit merklich verkürzt. Bei den aktuellen Distributionen installiert man daher am besten die Software Bumblebee, um den Nvidia-Grafikchip beim Booten schlafen zu legen und bei Bedarf wieder zuzuschalten.

Durch einige größere Umbauten stellt der Kernel nun Render- und Modesetting-Nodes bereit, über die sich die Recheneinheiten von Grafikhardware sowie deren Monitor-Ansteuerfunktionen unabhängig voneinander ansprechen lassen (u. a. 1, 2, 3, 4). Dadurch gelingt Off-Screen-Rendering und GPGPU (General-Purpose Computing On Graphics Processing Units) nun auch ohne Wayland/Weston, X-Server oder andere Display-Controller-Software. Zudem lassen sich die Funktionen zur Monitoreinstellung auf verschiedene Kontroll-Knoten im Gerätebaum verteilen, um mit einem Grafikchip ein Mehrplatzsystem einrichten zu können, bei dem die Aktivitäten eines Nutzers die anderen Anwender nicht stören können.

Das Ganze gilt aber noch als experimentell und steht nur bei Angabe des Kernel-Parameters "drm.rnodes=1" zur Verfügung. Zudem ist einer der Kernel-eigenen Treiber für die im PC-Bereich gängigen Grafikkerne von AMD, Intel und Nvidia erforderlich. Weitere Hintergründe zu Render- und Modesetting-Nodes beschreibt David Herrmann in einem Blog-Eintrag; in einem zweiten liefert der für große Teile der Umbauten zuständige Entwickler weitere Details und geht auf Verbesserungen ein, die auf den jetzt eingeflossenen Änderungen aufbauen sollen.

Intels Grafiktreiber nutzt bei Linux 3.12 das Embedded-DRAM, das Core-i-Prozessoren mit Iris Pro 5200 enthalten (u. a. 1, 2). Dadurch liefert dieser Grafikkern höhere 3D-Performance als andere Prozessoren der Haswell-Generation – etwa jene der günstigeren Core-i-Prozessoren, die Intels HD Graphic 4400 oder 4600 enthalten.

Über den Parameter "i915.fastboot=1" lässt sich jetzt der experimentelle Fastboot-Support aktivieren, mit dem manche UEFI-Systeme den Auflösungswechsel beim Systemstart vermeiden und so das dabei entstehende Bildflackern unterbinden. Intels Treiber kann bei Haswell-Prozessoren nun 4K-Displays via HDMI ansteuern (u. a. 1, 2) und verwendet jetzt den Stromsparzustand C8+ (1, 2), den neuere Ultrabook- und Tablet-Prozessoren von Intel bieten, um den Stromverbrauch noch weiter zu reduzieren. Neu ist auch Unterstützung für den Panel Self Refresh (PSR), der den Stromverbrauch im Leerlauf reduzieren kann, aus Kompatibilitätsgründen aber standardmäßig deaktiviert ist. Details zu diesen und zahlreichen weiteren Neuerungen an Intels Treiber liefert Intel-Entwickler Daniel Vetter in einem Blog-Eintrag.

Der Treiber für Radeon-GPUs wird die Stromspartechniken DPM (Dynamic Power Management) und ASPM (Active State Power Management) nun auch bei der Radeon HD 7790 und einigen 8000er-Modellen beherrschen (u. a. 1, 2, 3, 4); selbiges gilt für die Grafikkerne einiger kürzlich vorgestellter oder in nächster Zeit erwarteter AMD-Prozessoren. Wie bei Linux 3.11, das Unterstützung für diese Stromspartechniken gebracht hat, muss man den experimentellen DPM-Support über den Kernel-Parameter "radeon.dpm=1" manuell einschalten.

Der DRM/KMS-Treiber arbeitet jetzt auch mit den Grafikkernen von "Berlin"-Prozessoren zusammen, die AMD offenbar im nächsten Jahr vorstellen will (1, 2). Durch einige Umbauten nutzt der Treiber nun die DMA-Engine für bestimmte Kopieroperationen, was mehr Tempo verspricht. Bei einigen der neueren Radeon-GPUs soll HDMI-Audio endlich zuverlässig funktionieren. Neu ist auch Unterstützung für HDMI-Audio bei Grafikkernen mit AMDs Display ScanOut Engine (DCE) der Generation 6 und 8; zu denen gehören unter anderem das Radeon-HD-Modell 7750 und neuer.

Die experimentelle und noch etwas haklige Unterstützung für die Video-Decoder in GeForce-Chips spricht nun auch Nvidias Video Engine VP3 an. Sie kommt unter anderem bei den GeForce-Modellen 8400 GS, 9200M GS, 9300 (GE, GS, M GS) und den Mainboard-Chipsätzen GeForce 8100, 8200, 8300 zum Einsatz.

Kernel 3.12 enthält einen Grafiktreiber für die Adreno-GPUs der Reihen a2xx und a3xx (u. a. 1, 2). Sie stammen von Qualcomm und stecken in verschiedenen ARM-Prozessoren der Snapdragon-Serie – unter anderem jenen, die im HP TouchPad und in Googles Nexus 4 stecken. Auf den neuen Kernel-Treiber baut ein experimenteller 3D-Treiber auf, den das Ende August erschienene Mesa 3D 9.2 mitbringt.

Der bereits erwähnte David Herrmann hat zudem eine Programmierschnittstelle eingebracht, durch die sich Userspace-Code beim Einbinden von Grafikspeicher nicht mehr darum scheren muss, ob der jeweilige Grafiktreiber im Kernel nun GEM oder TTM zur Speicherallokation verwendet (u. a. 1, 2, 3, 4). Herrmann hat zudem "platform-devices for boot-framebuffers" eingeführt, durch die sich die generischen Treiber für die Grafikausgabe auf x86-Systemen nicht mehr so leicht ins Gehege kommen sollen – also die Framebuffer-Treiber für die Bildschirmausgabe via VGA, VBE/VESA und EFI (u. a. 1, 2).

Einen Überblick über weitere Neuerungen rund um die Grafiktreiber des DRM (Direct Rendering Manager) listet Dave Airlie in seinem Haupt-Git-Pull-Request für 3.12.

Und noch aus der Reihe "nette Kleinigkeiten": Über den neuen Kernel-Parameter "vt.color=" kann man jetzt die Vorder- und Hintergrundfarbe von Textkonsolen festlegen.

Unter den Änderungen an den Audio-Treibern sind größere Umbauten, durch die der Kernel HD-Audio-Codecs von Analog Devices nun besser automatisch konfigurieren kann.

Das Input-Subsystem bringt jetzt einen Treiber für die "Slidebar" mit, die einige IdeaPad-Notebook von Lenovo enthalten; zudem haben die Entwickler die Unterstützung für Multitouch-Hardware verbessert, die für Windows 8 ausgelegt ist (u. a. 1, 2).

Zum Media-Subsystem mit seinen Treibern für Video-Hardware und deren Fernbedienungen stieß unter anderem eine Änderung, durch die der Kernel die Feedback-LED unterstützt, mit der einige Infrarot-Fernbedienungen einen Tastendruck bestätigen.

Mit den Änderungen am Staging-Zweig stießen Korrekturen an Lustre-Code zum Kernel, durch die sich das bei 3.11 integrierte, dort aber noch kaputte Cluster-Dateisystem nun auch aktivieren lässt. Aus dem Bereich für unfertigen und mangelhaften Code entfernt wurde ein Treiber für das OLED-Display einiger Asus-Notebooks, weil sich niemand um den Treiber gekümmert hat. Rausgeflogen ist auch Zcache, das den Page-Cache komprimieren konnte; ein Entwickler arbeitet an besserem Code.

Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutenden Änderungen:

Audio

Graphics

Hardware Monitoring

Input/HID

Media

Staging

USB

Various

Lowlevel

Ein "C" im Bereich "[  ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "I" ausgezeichneten Patches rüsten neue PCI- oder USB-IDs nach; jene mit "D" verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: Eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Patches mit einer "9" sind 90 KByte oder größer.

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 dem Twitter-Konto "@kernellog" erwähnt. (thl) (thl)