Die Neuerungen von Linux 4.14

Seite 7: Optimierte Grafiktreiber & neue DVB- und LAN-Treiber

Inhaltsverzeichnis

Linux-Kernel 4.14 enthält überarbeitete Grafiktreiber, die Hardware-Support und Performance verbessern. Neu dabei ist auch ein Treiber für ein Display eines Lego-Mindstorm-Roboters. Auch die Unterstützung für DVB-S2-Hardware haben die Kernel-Entwickler verbessert. Außerdem bringt Linux jetzt einen Treiber für einen neuen WLAN-Chip von Realtek mit.

Der für moderne Radeon-GPUs zuständige Amdgpu-Treiber kann jetzt große Speicherseiten (Huge Pages) nutzen, die Overhead beim Speicherzugriff vermeiden und so die Performance steigern – insbesondere beim Rechnen mit GPUs (General-purpose computing on Graphics Processing Units). Ferner gab es allerlei Verbesserungen und Feintuning rund um den Support von Vega-Grafikkarten, der GPU-Virtualisierung mit SR-IOV und dem Support der Stromspartechnik PowerPlay. Zudem haben AMDs Entwickler eine Reihe von Patches integriert, durch die AMDs als "Platform for GPU-Enabled HPC and Ultrascale Computing" umschriebenes GPGPU-Framework ROCm jetzt mit dem offiziellen Kernel funktioniert; bislang klappt das allerdings nur mit den APUs der Prozessorgenerationen Kaveri und Carrizo.

Mit Vega-Grafikkarten und den GPUs in AMDs jüngst vorgestelltem Ryzen Mobile kann der Treiber aber nach wie vor keine Bildschirme ansteuern, denn dazu ist weiterhin die anfangs als DAL (Display Abstraction Layer) und mittlerweile als DC (Display Core) bekannte Patch-Sammlung erforderlich. Dieses Manko löst sich aber womöglich bald in Luft auf, denn der für die Grafiktreiber zuständige Entwickler Dave Airlie scheint Linus Torvalds bitten zu wollen, DC in Linux 4.15 zu integrieren. Airlie und einige andere Kern-Entwickler des für Grafiktreiber zuständigen Kernel-Subsystems hatten diese von AMD selbst entwickelte Patch-Sammlung anfangs rundweg abgelehnt, weil sie ihren Qualitätsansprüchen nicht genügte. Hauptgrund, vereinfacht gesagt: Die Patches sorgten für eine Abstraktionsschicht zwischen Treibercode und dem Atomic-Framework der Kernels, die als Basis für modernen Kernel-Grafiktreiber gedacht ist. Erschwerend kam hinzu, dass DAL einige Funktionen reimplementierte, die Atomic bereits bot. Airlie & Co. sahen daher viele Code des Ganzen als Ballast an, der Pflege und Weiterentwicklung unnötig verkompliziert hätte.

Nach allerlei Diskussionen haben die AMD-Entwickler das eingesehen und begonnen, den Treiber anzupassen, damit er die Ansprüche von Airlie & Co erfüllt. Nach tiefgreifenden Umbauten und rund 20 Monaten Entwicklungszeit baten sie dann kürzlich um die Aufnahme von DC. Airlie fand dann noch einige Probleme, die AMDs Entwickler oder er selbst ausräumten. Offenbar ist Airlie jetzt zufrieden und will den Code zur Aufnahme einsenden; Torvalds könnte sich aber an Eigenschaften stören und so die Aufnahme vertragen, bis seine Kritik behoben wurde. Das Risiko gibt es immer – bei DC ist es aber größer, weil es aus über 800 Patches besteht, die viel neuen Code mitbringen.

Der für die modernen Intel-GPUs zuständige Treiber i915 beherrscht jetzt Render Decompression Support; dadurch kann der Treiber bestimmte Daten jetzt komprimiert im Grafikspeicher ablegen, was Speicherbandbreite spart und so die Performance verbessert. Außerdem beherrscht der Treiber nun DRM Syncobjs; mit ihrer Hilfe soll der in Mesa enthaltene Vulkan-3D-Treiber den bei Vulkan 1.0.42 hinzugekommenen Befehl VK_KHX_external_semaphore unterstützen, der eine Synchronisation von Speicherzugriffen ermöglicht.

Unter einer Reihe weiterer Änderungen waren mehrere, um den Support für die seit Linux 4.8 mögliche GPU-Virtualisierung mit Intels Graphics Virtualization Technology (GVT) robuster und schneller zu machen. Intels Entwickler haben zudem die Unterstützung für die GPU der Cannon-Lake-Prozessoren verbessert, die in den nächsten Monaten auf den Markt kommen sollen. Der Support für die bereits erhältlichen und zur Core-i-8000-Serie gehörenden Coffee-Lake-Prozessoren wird indes weiterhin nur aktiv, wenn man den Parameter i915.alpha_support=1 spezifiziert; ab 4.15 soll das nicht mehr nötig sein.

Der Nouveau-Treiber des Kernel unterstützt jetzt auch die GeForce GT 1030, denn es weiß jetzt auch dessen NV138 oder GP108 genannten Grafikchip anzusprechen. 3D-Beschleunigung gelingt bislang nicht, denn Nvidia hat bislang keine für diesen Chip geeignete Firmware veröffentlicht, die in die Firmware-Sammlung linux-firmware einfließen könnte.

Der für die Grafikkerne der verschiedenen Raspberry-Pi-Modelle zuständige Treiber VC4 unterstützt jetzt HDMI CEC (Consumer Electronics Control). Dabei handelt es sich um einen Standard, um mehrere per HDMI verbundene Geräte über eine Fernbedienung zu steuern.

Neben den erwähnten Neuerungen bei Grafiktreibern gab es noch Hunderte weitere. Einige der wichtigsten nennt ein Kommentar des Git-Commits, der die wesentlichen Änderungen am Direct Rendering Manager (DRM) und seinen Treibern gebracht hat. Darunter ist ein Grafiktreiber für den STM32 DSI Controller.

Ebenfalls neu: Ein Treiber für den LCD-Controller Sitronix ST7586, den das Panel des Lego-Roboters Mindstorm EV3 nutzt. Der Code baut auf dem bei Linux 4.11 integrierten Tinydrm auf, mit dem sich recht einfach Treiber für simple und oft via I2C oder SPI angeschlossene Bildschirm-Panel schreiben lassen.

Darüber hinaus gab es einige Detailänderungen am Framebuffer-Subsystem, das früher die von Embedded-Grafiktreibern bevorzugte Basis war.

Die Kernel-Entwickler haben auch zahlreiche andere Treiber überarbeitet und neue integriert, um die Hardware-Unterstützung zu verbessern. Die Alsa- und ASoC-Treiber unterstützten jetzt etwa die Audio-Funktion von Cannon-Lake-Prozessoren, die Intel offenbar in den nächsten Monaten einführen will (1, 2, 3, 4, 5). Die Änderungen am Media-Subsystem haben gleich einen ganzen Schwung neuer Treiber gebracht, die etwa Support für den ST STV0910 DVB-S/S2 Demodulator, den ST STV6111 DVB-S/S2 Tuner oder den Tuner-Demodulator MaxLinear MxL5xx DVB-S/S2 bringen. Zudem gab es größere Umbauten an ddbridge, durch die der Treiber jetzt auf den MXL5xx-Chips aufbauenden DVB-S-Hardware Digital Devices Max S4/8 und Octopus Max unterstützt.; außerdem weiß der Treiber jetzt auch CineS2 V7(A) und DuoFlex S2 V4 anzusprechen.

Der Netzwerktreiber e1000e hat bereits jetzt gelernt, zwei neue Generationen des als "LAN on Motherboard" (LOM) eingestuften Netzwerk-Chips Intel i219 anzusprechen. Diese sollen ein Teil der 2018 oder 2019 erwarteten Ice-Lake-Plattform sein, zu der vermutlich auch Core-i-Prozessoren der 9000er-Serie gehören. Solch vorausschauend in Linux einfließender Treiber-Support macht es Anwendern leicht, denn dadurch werden bereits die im Frühjahr erscheinenden Distributionen die neuen Intel-Chips unterstützen, die womöglich einige Monate später auf den Markt kommen.

Im Bereich für Code mit größeren Qualitätsmängeln findet sich jetzt ein Treiber für den 802.11ac-WLAN-Chip RTL8822BE von Realtek. Durch solch neue oder verbesserte Treiber unterstützt Linux 4.14 knapp vierhundert Geräte oder Geräteklassen mehr als sein Vorgänger; bei rund 30 davon handelt es sich um PCI/PCIe- oder USB-Geräte, wie die Datenbanken der Linux Kernel Driver DataBase (LKDDb) zeigen. Darüber hinaus gab es wieder viele Detailverbesserungen, die oft nur wenige Geräte betreffen. Einige Beispiele für Notebooks und Convertibles von Asus: Die Entwickler haben für Unterstützung der Multimedia-Keys des Asus Transformer Pro T304UA und des Touchpads vom Asus Transformer Book T100 gesorgt. Beim Asus ROG G752xx und einigen anderen Notebooks funktioniert das Touchpad besser; das ist Änderungen am Elantech-Treiber zu verdanken, durch die er jetzt Touchpads mit zwei Maustasten von Clickpads unterscheiden kann, bei der allein die Fingerposition über Links- oder Rechtsklick entscheidet.

Details zu diesen und weiteren Neuerungen rund um Treiber finden sich in den Kommentaren der Commits, die das Gros der Änderungen der folgenden Subsysteme gebracht haben: Character Devices, Driver Core, Input (1, 2), Human Interface Devices (HID), Hardware-Monitoring, Platform Drivers x86, RDMA, Sound, Staging, TTY, USB und Watchdog.

Darüber hinaus haben die Entwickler die ganzen Firmware-Dateien entfernt, ohne die eine Reihe von Treibern nicht funktioniert. Diese Dateien lagen bislang in den Linux-Quellen unterhalb von firmware/. Dort wurden sie aber schon länger nicht mehr aktualisiert, um Anwender zum Umstieg auf die unabhängig vom Kernel gepflegte Firmware-Sammlung linux-firmware zu bewegen. Alle Mainstream-Distributionen sind bereits seit einer Weile auf diese umgestiegen.