Die Neuerungen von Linux 4.18

No Comments


Linux-Kernel 4.18

Trends & News
| Kernel-Log

Linux 4.18 unterstützt die GPUs der Intel-AMD-Kombiprozessoren. Der neue Kernel bringt zudem Support für eine neue Vega-GPU und die Datenübertragung mit USB 3.2.

Der am 6. oder 13. August erwartete Kernel bringt endlich Treiber, mit denen sich die Vega-M-Grafik der Intel-AMD-Kombiprozessoren nutzen lässt. Linux 4.18 unterstützt auch schon den Nachfolger von AMDs derzeit leistungsstärksten Grafikchips. Neu dabei ist auch ein Treiber für neue GPUs, um die sich immer wieder Gerüchte ranken, sie können in Zukunft beim Raspi zum Einsatz kommen. Ferner ist auch ein neuer Grafiktreiber für die Virtualisierung mit Xen dabei. Neben USB-3.2-Support stieß zudem ein Treiber für den Game-Controller von Valve zum Kernel.

Grafiktreiber für Intel-CPUs mit AMD-GPU


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.

Support für AMDs Vega20 und GPGPU mit Vega

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 sie 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.

Computing mit Vega-GPUs

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 computing 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) bieten. 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.

Treiber für Nachfolger der Grafikeinheit von Raspis

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üchte 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.

Unterstützung für Nvidias Volta und neue Intel-GPU


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.

Grafik- und Soundtreiber für neue Xen-Betriebsart

Linux hat jetzt einen Treiber für ein “Xen PV Display Frontend”. Ein als regulären Xen-Gast (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.

Schnellere Datentransfers durch USB 3.2

Der Linux-Kernel unterstützt jetzt die im Herbst 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.

Schrittweise aktualisierter Text zu Linux 4.18

Support für eine neue Generation von AMDs Vega-Grafikkernen und die Grafikhardware des Intel/AMD-Radeon-Kombiprozessors sind zwei Highlights von Linux 4.18. Die am 6. oder 13. August erwartete Kernel-Version bringt zudem Grundlagen für Bpfilter mit: einen neuen Mechanismus für das Filtern von Netzwerkpaketen, der nach dem Willen einiger Entwickler die Netfilter-Infrastruktur ersetzen soll, auf die Firewall-Lösungen wie Iptables und Nftables bislang zurückgreifen (siehe c’t 13/2018, S. 88 und c’t 15/2018, S. 34). Neu dabei sind auch Treiber für Valves Steam-Controller und Support für ein Qualcomm-SoC mit ARM-Innenleben, das für Notebooks gedacht ist.

Diese und weitere Neuerungen von Linux 4.18 sind seit dem 17. Juni absehbar, als Linus Torvalds die erste Vorabversion dieser Kernel-Version freigegeben hat. Damit hat er die “Merge Window” genannte Phase des Entwicklungszyklus abgeschlossen, in der er alle wesentlichen Umbauten für eine neue Kernel-Version vornimmt. Größere, erwähnenswerte Änderungen erfolgen danach nur in Ausnahmefällen; es passiert auch nur äußerst selten, dass die Entwickler eine umfangreichere, im Merge Window integrierte Änderung vor der Fertigstellung deaktivieren oder gar entfernen.

Das Kernel-Log der c’t kann daher bereits jetzt die Neuerungen der nächsten Linux-Version in einem detaillierten Text beschreiben. Er wird zwischen Erstpublikation und der Fertigstellung des neuen Kernels mehrfach erweitert, um die wesentlichen Änderungen der verschiedenen Kernel-Bereiche schrittweise in leichter handhabbaren Mengen zu beschreiben. Aus diesem Grund wird das Kernel-Log den Bpfilter auch unabhängig von den anderen Änderungen im Netzwerkbereich erläutern.

Der Newsticker von heise online erwähnt größere Erweiterungen des Textes zum neuen Linux-Kernel, die Sie immer auf der ersten Artikelseite finden. Ältere Textpassagen stehen auf den folgenden Seiten. Details zur Versionshistorie des Artikels liefert das Changelog am Artikelende.

Kommentare


Kommentare lesen (177 Beiträge)

Source

Categories: IT - News

Tags:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.