Die Neuerungen von Linux 4.13

Seite 3: Treiber

Inhaltsverzeichnis

Der Amdgpu-Treiber unterstützt jetzt die Grafikkerne der "Raven Ridge"-Prozessoren. Bei ihnen handelt es sich um eine neue und noch dieses Jahr erwartete Generation von APUs (Accelerated Processing Units), die eine mit AMDs Vega verwandte GPU mit der auch beim Ryzen verwendeten Zen-Mikroarchitektur kombiniert. Die Unterstützung für Raven-Ridge-GPUs ist aber noch rudimentär und gilt als "Preliminary Support" (u. a. 1, 2).

Ein Grund für den Unvollständigkeitsstatus: Mit dem Grafikprozessor der Raven-Ridge-APUs gelingt vorerst keine Bildausgabe, weil dazu eine ursprünglich DAL (Display Abstraction Layer) und mittlerweile als DC (Display Core) entwickelte Patch-Sammlung nötig ist. Die Situation ist somit die gleiche wie beim in Linux 4.12 eingeflossenen Support für Grafikkarten mit Vega-Chips, der bei 4.13 einige Detailverbesserungen und Fehlerkorrekturen erhielt.

Nach wie vor ist ungewiss, wann die DC-Patches in Linux einfließen. In 4.14 schaffen sie es aber mit ziemlicher Sicherheit nicht. Kürzlich haben AMDs Entwickler immerhin eine Todo-Liste veröffentlicht. Diese nennt die Arbeiten, die aus Sicht der AMD-Entwickler noch nötig sind, damit der Code die Qualitätsansprüche der Kernel-Entwickler erfüllen und in Linux einziehen kann. Anwender, die bereits mit DC-Code ausgestattete Kernel-Quellen suchen, finden ihn in den von AMD-Mitarbeitern gepflegten Git-Zweigen amd-staging-4.12 und amd-staging-drm-next. Eine Variante der Änderungen steckt auch in der AMD-eigenen Variante des Kernel-Treibers Amdgpu, die zur Treiberfamilie AMDGPU-Pro gehört, bei der AMD quelloffene und proprietäre Treiber kombiniert.

Der für moderne Intel-GPUs zuständige Treiber i915 unterstützt jetzt auch den Grafikkern der Coffee-Lake-CPUs, die Intel offenbar bei einigen Prozessor-Modellen der kürzlich gestarteten Core-i-8000-Serie einsetzen will (u. a. 1, 2, 3, 4, 5). Unter dieser Familienbezeichnung vertreibt Intel bislang nur Prozessoren mit dem älteren Kaby-Lake-Innenleben. Zu dieser Familie sollen zudem noch Mobil-Prozessoren der "Cannon Lake"-Generation stoßen, für die der Treiber jetzt ebenfalls Code mitbringt (u. a. 1, 2, 3); auch für den zugehörigen Mainboard-Chip (PCH/Platform Controller Hub) Cannon Point ist der Treiber gerüstet (u. a. 1, 2).

Der Support für die beiden Coffee- und Cannon-Lake-Grafikkerne gilt aber noch als "unvollständig", daher sind zur ordentlichen Treiberunterstützung noch weitere Änderungen nötig. Für Coffee-Lake-CPUs fehlt aber nicht viel, denn ihre GPU zählt zur neunten Generation ("Gen9"); sie ist daher eng mit den Grafikkernen der schon eine Weile erhältlichen Prozessorgenerationen Skylake und Kaby Lake verwandt, für die der Kernel schon länger Treiber mitbringt. Der Grafikprozessor von Cannon-Lake-CPUs hingegen ist der erste der zehnten Generation ("Gen10"), daher sind zur Treiberunterstützung größere Umbauten nötig.

Ein Red-Hat-Entwickler integriert derzeit die Treiber, damit Linux von Haus aus besser unter Oracles VirtualBox läuft.

(Bild: git.kernel.org )

Der Kernel bringt jetzt auch einen Grafiktreiber für die GPU mit, die aktuelle Versionen der Virtualisierungs-Software VirtualBox in virtuellen Maschinen (VMs) emulieren. Allerdings erfüllt der Treiber die Qualitätsansprüche der Kernel-Entwickler nicht, daher landete er im Staging-Zweig. Das ist ein Sonderbereich in den Linux-Quellen, wo bekanntermaßen unausgegorener Code mit dem Ziel integriert wird, ihn im Rahmen der normalen Kernel-Entwicklung auf Vordermann zu bringen.

In diesen Bereich sollen auch die anderen Treiber einfließen, die für andere emulierte Hardware erforderlich sind, die Betriebssysteme in VirtualBox-VMs sehen. Das würde den Linux-Betrieb unter VirtualBox erheblich erleichtern, denn spätestens wenn die Treiber den Staging-Status ablegen, werden Linux-Distributionen sie typischerweise mitbringen und automatisch einrichten. Bislang müssen Anwender die VirtualBox-Gasttreiber oft manuell einrichten, was Zeit kostet und einige Stolperfallen birgt.

Was gemeinhin "Linux-Grafiktreiber" genannt wird, ist in Wirklichkeit eine Familie eng zusammenarbeitender Treiber, deren Kernel-Treiber der Dreh- und Angelpunkt ist. Bei einigen Radeon-GPUs kann man statt dem Kernel-Treiber Radeon auch Amdgpu nutzen.

(Bild: Marek Olšák )

Einige andere für Linux 4.13 vorgenommene Umbauten an Amdgpu versprechen die Performance beim Rechnen mit Radeon-Grafikprozessoren (GPGPU/General Purpose Graphics Processing Unit) zu verbessern, weil der Treiber zum Compute Ring Management jetzt die effizientere KIQ (Kernel Interface Queue) nutzt (u. a. 1, 2). Anwender müssen zudem zu einem neuen Trick greifen, wenn sie den für aktuellen Radeon-GPUs zuständigen Kernel-Treiber Amdgpu mit GPUs der älteren GCN-Generationen Southern Islands (SI) und Sea Island (CIK) nutzen wollen. Um diese kümmert sich von jeher der Kernel-Treiber Radeon. Für Southern-Islands-Grafikkarten wie HD 7750, HD 7970, R7 240, R7 250, R9 270, R9 280 oder Sea-Island-Karten wie HD 7790, R7 260 und R9 290 ist dieser Treiber auch oft die bessere Wahl – unter anderem, weil Amdgpu bei SI-Karten kein HDMI- oder DP-Audio beherrscht, denn dazu braucht er DC. Der Treiber liefert aber manchmal mehr 3D-Performance als Radeon; außerdem ist er Voraussetzung, um den in Mesa enthaltenen Vulkan-Treiber Radv einsetzen zu können. Anwender, die aus diesen Gründen zu Amdgpu greifen wollen, müssen beim Kompilieren des Kernels jetzt die Optionen DRM_AMDGPU_SI beziehungsweise DRM_AMDGPU_CIK aktivieren und beim Systemstart die Modulparameter radeon.si_support=0 amdgpu.si_support=1 beziehungsweise radeon.cik_support=0 amdgpu.cik_support=1 mitgeben (1, 2, 3, 4, 5).

Dank Stereoskopie-Support im quelloffenen Treiber für Nvidia-GPUs kann dieser nun auch die 3D-Funktion von Stereoskopie-Displays befeuern.

Einige weitere Neuerungen an den Grafiktreibern nennt der wichtigste Merge-Commit des Direct Rendering Managers (DRM). Darunter ist etwa Support für HDMI-Power-Management im Treiber VC4, der die GPU der verschiedenen Raspberry-Pi-Modelle unterstützt. Ebenfalls neu ist ein Modesetting-Treiber für den Pl111 CLCD Display Controller, der beim Versatile Express und einigen anderen ARM-Platformen zum Einsatz kommt. Ferner stieß ein Grafiktreiber für SoCs von STMicroelectronics zum Kernel.

Ähnlich wie bei den vorangegangenen Versionen unterstützt Linux 4.13 über 500 Geräte oder Geräteklassen mehr als die vorangegangene Version; bei rund 200 davon handelt es sich um PCI/PCIe-Geräte, wie die Linux Kernel Driver DataBase (LKDDb) zeigt.

Zwischen den Änderungen an den Audio-Treibern (1, 2) war etwa ein Patch, durch den HDMI-Audio auf deutlich mehr Grafikkarten mit Nvidias GeForce-Chips funktioniert. Außerdem unterstützt Linux jetzt die Realtek Audio-Codecs ALC215/ALC285/ALC289 und ALC1220, die auf neuen PC- und Notebook-Mainboards sitzen. Ferner wissen die Sound-Treiber jetzt weitere Marotten zu handhaben, die einige Audio-Codecs von Dell- und HP-Systeme zeigen. Die Entwickler haben zudem die Unterstützung für einige per I²S (Inter-IC Sound) angesprochene Audio-Codecs verbessert, die sich vor allem in Ultrabooks mit Core-i-7000-Prozessoren finden (u. a. 1, 2).

Es gab eine ganze Reihe von Umbauten an den Platform-Treibern (1, 2). Durch sie unterstützt Linux jetzt bei mehr Notebooks aus Lenovos Ideapad-Serie die Funktionstasten, über die sich etwa Helligkeit, Lautstärke und WLAN-Status variieren lassen. Die Kernel-Entwickler haben auch den Support für die Funktionstasten von Notebooks und All-in-One-PCs einiger andere Hersteller verbessert. Diese implementieren diese häufig Hersteller-spezifisch mithilfe von Windows Management Instrumentation (WMI). Die jetzt vorgenommenen Umbauten legen dabei auch Grundlagen, um die Unterstützung für die bei manchen Systemen via WMI erreichbaren Management-Funktionen zu verbessern. Die Frage, wie genau das gelingen soll, hat vor zwei Monaten zu längeren Diskussionen zwischen den Entwicklern geführt, die LWN.net zusammenfasst.

Beim Dell Venue Pro 11, dem HP Pavilion X2 und einigen anderen Notebooks sollen jetzt die Tasten zum Ein- und Ausschalten von WLAN funktionieren, denn der HID-Eingabegerätetreiber versteht jetzt Microsoft Win8 Wireless Radio Controls Extensions CA (1, 2, 3). Die Eingabegerätetreiber unterstützen jetzt deutlich mehr der für Xbox, Xbox360 oder Xbox One gedachten Gamecontroller (1, 2).

Die Hardware-Monitoring-Treiber wissen jetzt den Chip NCT6795D anzusprechen, der auf einigen Mainboards für AMDs Ryzen sitzt. Weitere Details zu Treiber-Neuheiten nennen Merge-Commit-Kommentare der Subsysteme Char, Dmaengine, Driver Core, I2C, Input (1, 2), IPMI, HID (Human Interface Devices), Media, MMC (1, 2), Staging (1, 2), TTY, USB und Watchdog.