Linux 4.18 freigegeben: Raspi-3-Support und Vorboten neuer Firewall-Technik

Seite 5: Treiber für USB 3.2 und neue Grafikkerne von AMD, Broadcom & Intel

Inhaltsverzeichnis

Der Intel-AMD-Kombiprozessor mit Vega-M-Grafik.

(Bild: Intel)

Linux 4.18 unterstützt den Grafikprozessor AMD Radeon RX Vega M (u. a. 1, 2, 3, 4). Das ist die auch als "Kabylake-G" bekannte GPU der Intel-AMD-Kombiprozessoren, die zur Core-i-8000er-Serie gehören. Solche stecken etwa im Notebook Dell XPS 15 2-in-1 (9575) oder dem Mini-PC Intel NUC8I7HVK, die c't beide jüngst getestet hat.

Die meisten Änderungen zum Support des Vega M erfolgten beim Treiber Amdgpu. Der stellt wie gewohnt viele Grundfunktionen zur 3D-Beschleunigung, auf die der OpenGL-Treiber Radeonsi und der Vulkan-Treiber Radv zurückgreifen, die aktuelle Mesa-Versionen mitbringen. Laut Berichten soll die Kabylake-G-Grafik daher mit frisch ausgestatteten Distributionen wie Fedora 28 funktionieren, sofern man diese mit dem neuen Linux und der Firmware für Vega M versorgt.

Der für aktuelle AMD-GPUs zuständige Amdgpu-Treiber unterstützt nun auch eine neue, noch nicht angekündigte Generation der Vega-GPU, die in den Kernel-Quellen unter dem Codenamen "Vega20" läuft (u. a. 1, 2, 3). Auch das im August erwartete Mesa 18.2 wird diese GPU unterstützen. Laut Spekulationen handelt es sich dabei um eine überarbeitete Fassung der Vega10-GPU, die auf AMDs derzeit leistungsfähigster Grafikkarte Radeon RX Vega 64 sitzt. Statt PCIe 3.0 wird der Chip wohl das im Herbst 2017 spezifizierte PCIe 4.0 beherrschen, wenn man den Änderungen am Amdgpu-Treiber des Kernels glauben darf, denn diese bringen Unterstützung für den schnelleren Übertragungsstandard. Gerüchten zufolge soll die GPU nicht mehr in einem 14-Nanometer-Prozess hergestellt werden, sondern mit einer 7-Nanometer-Fertigung.

Ferner gab es auch Anpassungen an Amdgpu, um die Stromsparfunktionen von Vega-GPUs stärker zu nutzen sowie Taktfrequenzen und Spannungsversorgung beeinflussen zu können (u. a. 1). Außerdem kann der Amdgpu-Treiber den Grafikkern der als Ryzen G vermarkteten Raven-Ridge-Prozessoren jetzt abschalten, um Strom zu sparen.

Der das Rechnen mit Radeon-GPUs ermöglichende Treiber Amdkfd beherrscht dank einer Erweiterung an Amdgpu jetzt User Pointer (userptr). Mit dieser seit Linux 3.16 prinzipiell unterstützten Funktion lässt sich ein Kopieren von Daten in den Speicherbereich des Kernels vermeiden, wenn der Grafikchip auf Informationen zugreifen soll, die Userspace-Programme im Arbeitsspeicher hinterlegt haben.

Linux 4.18 unterstützt AMDs GPU Computing Platform "ROCm" jetzt auch auf den aktuellen High-End-GPUs der Vega-Serie.

(Bild: rocm.github.io )

Darüber hinaus lässt sich AMDs GPU-Computing-Lösung ROCm jetzt auch mit GPUs der Vega-Generation für allgemeine Berechnungen nutzen (u. a. 1, 2, 3, 4, 5, 6. 7). Vergleichbare Umbauten zur Unterstützung einiger Vorgänger von Vega ist in die vorangegangenen Kernel-Versionen eingeflossen. Das macht es leichter, alle Komponenten zum GPGPU (General-purpose computation on Graphics Processing Units) mit modernen Radeon-GPUs einzurichten. AMD hat aber noch etwas Arbeit vor sich, bis Distributionen alles benötigte von Haus aus mitbringen und automatisch konfigurieren, denn einige für ROCm benötigte Erweiterungen müssen erst noch in offizielle Releases von Software wie LLVM einfließen.

AMD arbeitet indes an einem weiteren und weniger komplexen Weg, der GPGPU mit Radeon-GPUs ermöglicht. Diesen entwickelt und nutzt AMD bislang nur beim AMDVLK-Projekt und dem proprietären Treiberpaket AMDGPU-PRO. Anders als ROCm funktioniert dieser auf Amdgpu aufbauende Ansatz auch, wenn GPU oder Grafiktreiber keine Heterogeneous System Architecture (HSA) beherrschen. Diese Lösung ist daher für den Heimgebrauch vielfach ausreichen, aber eher uninteressant für Einsatzgebiete wie Deep Learning, KI-Anwendungen oder Rechnen auf Servern.

Der Linux-Kernel bringt jetzt den Grafiktreiber V3D mit, der die als VideoCore V (VC5) und VideoCore VI (VC6) bekannten Grafikeinheiten von Broadcom unterstützt. Sie sind die Nachfolger des Broadcom VideoCore IV (VC4), der in den SOCs sitzt, den alle bisher erhältlichen Raspberry-Pi-Modelle verwenden. Mainstream-Distributionen wie Debian oder Fedora unterstützen deren GPU mit VC4 genannten Treibern in Linux-Kernel und Mesa. Diese stammen größtenteils von Eric Anholt, den Broadcom extra zum Schreiben eines quelloffenen Grafiktreiberstacks für Raspis angeheuert hat. Anholt hat auch den jetzt integrierten V3D-Treiber geschrieben. Schon in der Frühphase der Treiberentwicklung hat das zu Gerüchten geführt, zukünftige Raspis würden eine der durch V3D unterstützte VideoCore-Einheit erhalten.

Der neue Grafiktreiber hieß ursprünglich VC5, wurde von Anholt aber in V3D umbenannt, als Unterstützung für VC6 hinzukam. Auf dem Kernel-Grafiktreiber baut ein ebenfalls V3D genannter Mesa-Treiber auf, der 3D-Beschleunigung via OpenGL ermöglicht. Ein Vulkan-Treiber ist noch in Entwicklung. Dieser durchgängig freie Treiberstack unterstützt unter anderem den SOC BCM7251, den Broadcom für den Einsatz in Settop-Boxen zum hochauflösenden Fernsehen ausgelegt hat; er eignet sich auch für den BCM7278, der laut einem Kernel-Entwickler den für UltraHD-Fernseher ausgelegten BCM7445 beerbt.

Volta: GV100-GPU mit 16 GByte HBM2-Speicher

(Bild: Martin Fischer )

Der Kernel-Grafiktreiber Nouveau unterstützt jetzt rudimentär die als Volta oder GV100 bekannte GPU, die unter anderem auf der Nvidia-Profigrafikkarte Quadro GV100 sitzt (u. a. 1, 2, 3, 4)

Der für Intels moderne GPUs zuständige Treiber i915 weiß jetzt das Pixelformat NV12 zu handhaben, das unter anderem bei Videoplayern beliebt ist und von Kamerachips gerne zur Datenauslieferung verwendet wird. Darüber hinaus erhielt der HDCP- und DisplayPort-Support des Treibers eine Reihe von Detailverbesserungen und Fehlerkorrekturen. Die Entwickler haben zudem die Unterstützung für die GPU von Intels Icelake-Prozessoren verbessert, die Linux seit 4.17 rudimentär unterstützt; der Code gilt nach wie vor aber als unfertig und nicht produktionsreif.

Darüber hinaus gab es noch eine Menge weiterer Änderungen am Direct Rendering Manager (DRM) und seinen Grafiktreibern, die Kommentare zu zwei Git-Merges nennen (1, 2). Darunter ist beispielsweise Support für Bildschirmausgaben mit einem Seitenverhältnis von 64:27 und 256:135, die HDMI 2.0 definiert.

Linux hat jetzt einen Treiber für ein "Xen PV Display Frontend". Ein als regulären Xen-Gast (in Xen-Jargon eine "DomU") laufender Kernel kann damit ein DRM/KMS-Device bereitstellen, wie es normale Grafiktreiber tun, damit Kernel und Programme darüber Text- oder Bilddaten ausgeben können. Diese Inhalte übergibt der Frontend-Treiber an ein Backend im Betriebssystem, das die Xen-Virtualisierung kontrolliert (die "Dom0"). Dies Backend kann die Bildausgaben des Gastes direkt über die echte Grafik-Hardware ausgeben oder in einem Fenster unter dem Wayland-Compositor Weston darstellen. Der Datenaustausch zwischen Front- und Backend erfolgt dabei mit Paravirtualisierung, um Overhead zu vermeiden.

Der Ansatz ist eine von mehreren neuen Paravirtualisierungstechniken zur Interaktion zwischen Gast und Host, an denen die Xen-Entwickler seit einer Weile verstärkt arbeiten. Diese ist für die Virtualisierungsart PVH gedacht, die Linux seit 3.14 prinzipiell unterstützt und jüngst mit Xen 4.11 weiter in den Fokus gerückt ist. Diese Betriebsart arbeitet ohne Qemu und funktioniert nur mit Betriebssystemen, die PVH beherrschen; bei diesem Modus nutzt Xen sehr stark Paravirtualisierung, macht sich für einige Aufgaben aber Hardware-Virtualisierungstechniken zunutze, um die Performance zu verbessern.

Die Betriebsart PVH arbeitet ohne Qemu und macht sich Hardware-Virtualisierung zu nutze.

(Bild: wiki.xen.org )

Neben dem Grafik-Frontend-Treiber für Xen stieß bei 4.18 auch noch ein Frontend-Treiber zum Kernel, den Gäste zur Sound-Ausgabe nutzen können (u. a. 1, 2,3). Einige andere Frontend-Treiber für Xen sind schon in vorangegangene Linux-Versionen eingeflossen.

Der Linux-Kernel unterstützt jetzt die im Herbst 2017 mit USB 3.2 definierte Dual-Lane-Übertragung, die die Transferrate für USB-C-Verbindungen auf 20 GBit/s verdoppelt. Diese SuperSpeed+-Betriebsart verwendet das zweite der Adernpaare von USB-C-Kabel, das eine Übertragung mit 10 GBit/s pro Richtung ermöglicht. USB 3.1 Gen 2 hat lediglich eines der Adernpaare verwendet; das zweite blieb so für den Alternate-Mod frei, um darüber etwa Thunderbolt-3-Hardware oder einen Bildschirm per DisplayPort anzusteuern.

Der Hardware-Monitoring-Treiber K10temp kann jetzt die CPU-Temperatur auch bei AMD-CPUs der Generationen Stoney Ridge and Bristol Ridge ausgeben. Die Treiber für Eingabegeräte unterstützen jetzt den Valve Steam Controller. Einige auch im heise-Forum aktive Entwickler haben Support für Amiga-Komponenten eingebracht. Der nach einem Rauswurf jetzt erneut integrierte Zorro-Treiber etwa unterstützt SCSI-Controller mit NCR53C9x-Chip, die unter anderem bei den SCSI-Adaptern von phase5 zum Einsatz kamen. Der neue Netzwerkteiber Xsurf100 sorgt für Support der Netzwerkkarte X-Surf 100 des deutschen Hardware-Herstellers Individual Computers.

Das sind nur einige Beispiele für den abermals erweiterten Hardware-Support, denn auch bei 4.18 haben die Kernel-Entwickler Dutzende neue Treiber aufgenommen und viele existierende verbessert. Dadurch unterstützt Linux 4.18 über 250 Geräte oder Geräteklassen mehr als sein Vorgänger; bei 42 davon handelt es sich um PCI/PCIe-Geräte, wie die Datenbanken der Linux Kernel Driver DataBase (LKDDb) zeigen. All diese Verbesserungen hier zu erläutern, würde den Rahmen sprengen, daher erwähnt dieser Text nur einige exemplarisch. Viele weitere nennen die Kommentare der wichtigsten Git-Merges in den Subsystemen Backlight, Driver Core, Fbdev, GPIO, HID, Hwmon, I2C, Input, IPMI, LED, Media/V4L, MFD, MMC, Platform, Platform Chrome, RDMA, RTC, Sound, Staging, TTY, USB und Watchdog.