Linux 4.19: Schöner starten und bereit für das WLAN von Morgen

Seite 8: Treiber: Neuer Qualcom-Grafiktreiber & Support für Drehregler von MS und Dell

Inhaltsverzeichnis

Der Linux-Kernel unterstützt jetzt die Grafikeinheit des Qualcomm-Prozessors Snapdragon 845 (SDM845). Dieser ist unter anderem für einige mit Windows ausgelieferten ARM-Notebooks gedacht, die mit modernen AMD- und Intel-Notebooks zu konkurrieren versuchen. Erste Erweiterungen zum Support dieses SoC (System-on-Chip) waren bereits in Linux 4.18 eingeflossen, was Linus Torvalds interessiert hat aufhorchen lassen: Der Linux-Erfinder hofft schon länger auf Notebooks mit ARM-Prozessoren, die eine halbwegs mit x86-Geräten vergleichbare Leistung liefern und zugleich ordentlich von Linux unterstützt werden.

Linux 4.19 unterstützt die Grafikhardware des Snapdragon 845.

(Bild: git.kernel.org – 25fdd5933e4c )

Das die Mobile Display Sub System (MDSS) genannte Grafik des Snapdragon 845 unterstützt wird, ist zum Einen einigen Erweiterungen zu verdanken, durch die der Kernel-Treiber MSM jetzt auch Qualcomm-Adreno-Grafikprozessoren der 600er-Reihe unterstützt. Dieser Treiber gehört zur Grafiktreiberfamilie Freedreno, zu der auch ein auf dem Kernel-Treiber aufsetzender OpenGL-Treiber in Mesa gehört, mit dem sich die 3D-Beschleunigung nutzen lässt. Dieser wird die Adreno-6xx-GPUs bald unterstützen, denn die dazu nötigen Erweiterungen sind jüngst in den Entwicklerzweig der Grafikbibliothek und 3D-Treibersammlung eingeflossen, aus dem im November oder Dezember die Version 18.3 hervorgehen dürfte.

Zum Anderen ist der Kernel-Support für die Snapdragon-845-GPU einer größeren Erweiterung zu verdanken, durch die der MSM-Treiber auch die anderen Komponenten der Grafikeinheit dieses SoCs unterstützt. Das ist nötig, weil sich Adreno-GPUs mit unterschiedlichen IP-Cores kombinieren lassen, die sich um Ausgabe des Gesamtbildes oder die Ansteuerung von Displays kümmern.

Neben dem Grafiktreiber gab es auch noch andere Verbesserungen, um die Unterstützung für den Snapdragon 845 zu verbessern – darunter etwa ein Soundtreiber für den SDM845.

Manche Systeme mit AMDs Radeon-Grafikprozessoren dürften mit dem neuen Kernel im Leerlauf weniger Strom verbrauchen. Das ist mehreren Schwüngen von Änderungen zu verdanken, durch die AMDs Treiber Amdgpu die zur Laufzeit nutzbaren Stromsparfunktionen bei verschiedenen Radon-GPU-Generationen und Konfigurationsvarianten jetzt besser unterstützt.

Der Amgpu-Treiber unterstützt die Stromsparfunktionen einiger Radeon-GPUs jetzt besser.

(Bild: git.kernel.org – 54dbe75bbf1e)

Einige Verbesserungen am Treiber Amdkfd sorgen dafür, dass sich AMDs GPGPU-Lösung ROCm nun auch mit Prozessoren der Raven-Generation verwenden lässt.

Nach einigen Vorarbeiten bei vorangegangenen Kernel-Versionen unterstützt Intels Grafiktreiber i915 nun die GPU einer neuen Generation von Mobil- und Desktop-Prozessoren, die den Codenamen Icelake trägt.

Neu dabei ist der "Virtual KMS Driver" Vkms. Er emuliert Geräte, wie sie Kernel-Grafiktreiber für echte GPUs bereitstellen, damit Kernel, X-Server, Wayland Compositor und Anwendungen darüber Bilder ausgeben können. Derzeit ist der Treiber vor allem für Testzwecke ausgelegt; laut einem der Entwickler sind aber Erweiterungen angedacht, um aus der Ferne die Grafikausgaben von Servern abzugreifen, die "Headless" laufen und daher keine Grafikausgabe ermöglichen.

Wie gewohnt gab es Hunderte Änderungen allein bei den Grafiktreibern

(Bild: git.kernel.org – 54dbe75bbf1e )

Eine Reihe weitere Neuerungen an Grafiktreibern nennt der Kommentar eines Git-Merges, der den Hauptschwung der Änderungen enthielt, die für 4.19 an Grafiktreibern vorgenommen wurden. Einige weitere Neuerungen nennt der Git-Merge zu den wichtigsten Änderungen am Framebuffer-Support.

Es gab noch zahlreiche weitere Änderungen und neue Treiber, die den Hardware-Support verbessern. Sie alle hier aufzuzählen würde den Rahmen sprengen, daher hier nur einige exemplarisch.

Das Apple Magic Keyboard mit Nummernblock wird nun unterstützt.

(Bild: Apple)

Apple-Magic-Keyboards lassen sich jetzt nicht mehr nur via USB, sondern nun auch per Bluetooth anbinden. Außerdem unterstützt Linux jetzt auch Magic-Keyboards mit Nummernblock.

Der Kernel weiß jetzt auch die PCIe-Soundkarte Creative Sound Blaster Recon3D anzusprechen.

Dank eines neuen Treibers kann der Kernel jetzt bei den verschiedenen Ausführungen des Rasbperry Pi warnen, wenn die Versorgungsspannung zu weit absinkt ("undervoltage").

Der Treiber Wiimote unterstützt jetzt Nintendo-Wii-Controller der Guitar-Hero-Klasse.

Neu dabei ist auch Support für das Cougar 500k Gaming Keyboard.

Der Kernel hat ein eigenes, GNSS genanntes Subsystem für GPS-Empfänger bekommen, auf den die kurz darauf integrierten Treiber für Empfänger von SiRFstar und U-blox aufbauen.

Das Industrial I/O (IIO) Subsystem bringt jetzt einen Treiber für den Bosch-Sensor BME680 mit, der Temperatur, Luftdruck, Feuchtigkeit und eine Reihe von Gasen überwacht, um die Luftqualität zu prüfen.

Totem-Drehregler beim Dell Canvas 27.

(Bild: Dell)

Die Eingabegerätetreiber unterstützten jetzt auch die Surface Dial beziehungsweise Totem genannten Drehregler von All-in-One-PCs, die Microsoft beim Surface Studio und Dell beim Canvas 27 einsetzt. Die Entwickler arbeiten aber noch daran, diese Eingabegeräte in Desktop-Oberflächen und Anwendungen sinnvoll zu unterstützten,

Der USB-Typ-C-Support des Kernels kann bei von ihm unterstützten Chips jetzt die Alternate Modes von Typ-C-Anschlüssen konfigurieren. Durch diesen lassen sich neben den USB- beispielsweise auch DisplayPort-Signale über das USB-Typ-C-Kabel transportieren. So lassen sich über ein Kabel etwa USB-Port-Replikatoren anbinden, an denen USB-Eingabegeräte und ein Monitor hängen. Für viele moderne PCs und Notebooks ist der Kernel-seitige Support aber nicht sonderlich von Bedeutung: Alternate Modes funktionieren dort schon seit einer ganzen Weile, weil normalerweise die Firmware alles Wesentliche selbst regelt. Die neuen Kernel-Funktionen sind vorwiegend für Embedded-Hardware gedacht, wo der Kernel diese Aufgaben selbst erledigen muss.

Von Google stammt das neue Framework Gasket (Google ASIC Software, Kernel Extensions, and Tools), das Hardware-Support über einen zweistufigen Treiber ermöglicht: Einige Kernfunktionen zum Hardware-Zugriff erledigt ein simpler Gasket-Treiber, auf den ein Userspace-Treiber aufbaut, der alles andere regelt. Das Ganze bietet so ähnliches wie UIO (Userspace I/O), soll sich aber nicht so gut für einen Einsatzzweck eignen, den Google im Sinn hat. Offenbar geht es um die Anbindung von Beschleuniger-Prozessoren, denn zusammen mit dem Framework stieß ein darauf aufbauender Treiber für einen "Apex" genannten Chip zum Kernel, dessen Einsatzgebiet aber nicht näher erläutert wird. Dieser Treiber und das Gasket-Framework erfüllen indes die Qualitätsansprüche der Kernel-Entwickler nicht, daher landeten beide auch nur im Staging-Bereich, für den Sonderregeln gelten – dort gilt etwa die "Keine Regressionen"-Regel nicht, daher verschwinden Staging-Treiber manchmal oder ändern sich auf inkompatible Weise.

Viele weitere wichtige Neuerungen bei Treibern nennen die Kommentare der wichtigsten Merges bei den Subsystemen Backlight, Char, Driver Core, Input, Human Interface Devices (HID), LEDs, Media, Platform, RDMA, Sound, Staging (1, 2), TTY, USB und Watchdog. Durch diese und zahlreiche andere hier unerwähnte Verbesserungen unterstützt die neue Linux-Version über 400 Geräte oder Geräteklassen mehr als die Vorversion; bei rund 110 davon handelt es sich um PCI/PCIe- oder USB-Geräte, wie die Datenbanken der Linux Kernel Driver DataBase (LKDDb) zeigen. Ähnlich wie bei vorangegangenen Versionen bringt die neue Linux-Version den Hardware-Support so wieder einen signifikanten Schritt vorwärts.