Kernel-Log – Was 3.19 bringt (4): Treiber

Ab Linux 3.19 können neuere Intel-Prozessoren ihre Taktfrequenz selbst regeln. Einige Erweiterungen schaffen Grundlagen zur besseren Unterstützung von 4k-Monitoren und Mehrschirmkonfigurationen. Der Nouveau-Treiber bietet nun Basis-Support für Nvidias neueste Chips.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Lesezeit: 8 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Die Kernel-Entwickler haben Grundlagen geschaffen, um die Ansteuerung von 4K-Monitoren sowie von Monitorausgängen in den Docking-Stationen moderner Notebooks zu verbessern – zwei Bereiche, in denen Linux-Distributionen derzeit immer mal wieder Probleme zeigen. Durch die Änderungen unterstützt Linux jetzt die Version 1.3 von DisplayID, über das Monitore Informationen ausgeben, um sie korrekt anzusteuern (1, 2). Ferner führt der Kernel nun Buch darüber, wenn der Bildschirm das Gesamtbild per "Tiling" zusammensetzt, weil etwa linke und rechte Hälfte wie eigenständige Monitore angesteuert werden (1, 2).

Diese Informationen verwendet der Kernel nicht nur selbst, sondern stellt sie auch Userspace-Programmen zum Abruf bereit. Das soll X-Server und Wayland Compositor in die Lage versetzen, 4K-Monitore und Docking-Stationen korrekt anzusteuern. Einige der Probleme, die bei den dazu nötigen Erweiterungen zu stemmen sind, erläutert X-Urgestein Keith Packard in einem Blog-Eintrag; noch viel mehr Hintergründe liefert Kernel-Entwickler Dave Airlie in der Video-Aufzeichung eines kürzlich gehaltenen Vortrags.

Was Linux 3.19 bringt

Linux 3.19 erscheint vermutlich zu Beginn der zweiten Februar-Woche, wie Linus Torvalds bei der Freigabe der siebten Vorabversion andeutete. Größere Umbauarbeiten sind keine mehr zu erwarten, denn alle wesentlichen Neuerungen haben die Kernel-Hacker bereits im Dezember integriert. Das Kernel-Log konnte daher bereits vor der Fertigstellung einen Überblick über die wichtigsten Änderungen dieser Version liefern. Das erfolgt mit der vierteiligen Artikelserie "Was 3.19 bringt", die sich nach und nach den verschiedenen Bereichen des Kernels gewidmet hat:

Der Kernel-Treiber Nouveau bietet nun Basis-Unterstützung für dem Nvidia-Chip GM204, der auf den im September eingeführten GeForce-GTX-Modellen 970 und 980 sitzt. Mit den neuen Erweiterungen (u. a. 1, 2) unterstützt der Treiber aber nur die Bildausgabe und ermöglicht keine 2D-, 3D- oder Video-Beschleunigung.

Nvidias neuer, auch als "Maxwell 2.0" bekannter Grafikchip enthält eine noch junge Sicherheitsfunktion, durch die sich bestimmte Funktionen der Grafikhardware nur mit einer signierten Firmware nutzen lassen. Schon kurz nach der Präsentation der neuen Karten hat Nvidia angekündigt, eine solche Firmware unabhängig vom proprietären Nvidia-Treiber bereitzustellen, damit sie zusammen mit den Treibern der Nouveau-Treiberfamilie ausgeliefert werden können; bislang ist das allerdings nicht passiert.

In den Grafiktreiber für Intel-GPUs ist erster Code zur Unterstützung des Grafikprozessors im "Skylake" eingeflossen (u. a. 1). Dabei handelt es sich um ein Prozessor-Design, das Intel unter anderem bei der nächsten Generation der Core-Prozessoren verwenden will, die im Sommer erwartet werden. Weitere Änderungen am Treiber listet dessen Hauptentwickler in einem Blog-Eintrag.

Der Radeon-Treiber erhielt Grundlagen, um die Lüftersteuerung bei neueren Grafikprozessoren von AMD besser zu nutzen. Bei einige Chips überlässt der Treiber die Lüftersteuerung nämlich der Firmware, mit der die Lüfter oft ein wenig schneller und damit lauter drehen als mit den proprietären Linux- und Windows-Treibern. Der Code ist aber inaktiv, denn er hat noch Probleme. Die beseitigen Patches, die zur Aufnahme in den Nachfolger von 3.19 vorgesehen sind; dort soll die verbesserte Lüfterregelung dann auch aktiviert werden.

Dem Kernel bringt nun einen Treiber für die Grafikfunktionen des Rockchip mit; der Treiber bietet allerdings keine 2D- und 3D-Beschleunigung, denn die erledigen andere Funktionseinheiten des SoC (System on Chip). Der Treiber für die Grafikeinheiten einiger i.MX-SoC von Freescale hat den Staging-Bereich verlassen, denn die wesentlichsten Qualitätsmängel wurden beseitigt.

Nach einigen Vorarbeiten bei Linux 3.15 ist nun das Gros der Grundlagen für "Atomic mode-setting" in den Kernel eingeflossen (u. a. 1, 2, 3, 4, 5). Es ist der Obergriff für eine Infrastruktur, durch die unter anderem die Bildschirmkonfiguration im Betrieb verlässlicher, schneller und mit weniger Bildstörungen erfolgen soll. Dazu werden Änderungen bei Monitor-Auflösung oder Mehrschirmkonfigurieren nicht mehr in mehreren Schritten nacheinander ausgeführt, sondern vorab getestet und auf einen Schlag umgesetzt; dadurch läuft die Grafikhardware auf jeden Fall mit der aktuellen Monitorkonfiguration weiter, wenn die gewünschte Einstellung aufgrund von Hardwarelimitierungen nicht einstellbar sein sollte.

Zur neuen Infrastruktur gehören ferner Änderungen, über die Anwendungen sicher stellen können, dass mehrere Ebenen eines Anwendungsfensters zeitgleich aktualisiert werden – etwa damit der Inhalt eines Anwendungsfensters nicht erscheint, bevor auch der Fensterrahmen gezeichnet und zur Darstellung bereit ist.

Das Userspace-Interface von Atomic mode-setting ist allerdings noch nicht komplett fertig; zudem wurde bislang lediglich der Treiber für Adreno-Grafikprozessoren von Qualcomm auf die neue Infrastruktur angepasst (1, 2, 3). Bei den nächsten Kernel-Versionen sollen weitere Treiber portiert und die Infrastruktur verbessert werden. Auch die Entwickler des Intel-Grafiktreibers arbeiten an der Portierung, wie ein Entwickler in zwei Blog-Beiträgen erläutert, die allerlei Hintergründe zur Technik liefern (1, 2)

Der Treiber Intel_pstate, der die Geschwindigkeitsstufe bei modernen Intel-Prozessoren regelt, beherrscht nun Hardware Managed Performance States (HWP). Bei dieser Intel-Technik steuert nicht mehr der Treiber den Wechsel zwischen den verschiedenen Taktfrequenzen, sondern die CPU selbst. Bei den Entscheidungen über den Wechsel in langsamere oder schnellere Betriebsmodi fließen Informationen mit ein, die der Prozessor vom Treiber bekommt. Der interagiert bei der Informationsbeschaffung mit dem Cpufreq-Subsystem, daher werden auch Vorgaben zu den Geschwindigkeitsstufen berücksichtigt, die Anwender via Sysfs oder mit Werkzeugen zum Einstellen der CPU-Geschwindigkeit vorgeben. HWP wird von CPUs seit der Sandy-Bridge-Generation eingesetzt – unter anderem also bei Core-i-Prozessoren seit der 2000er-Serie.

Unter zahlreichen der für 3.19 in Linux integrierten Treibern sind zwei für Touchpads und Touchscreens von Elantech, die in einer Reihe von Chromebooks stecken (1, 2). Ebenfalls neu dabei ist ein Treiber für die DVB-S/DVB-S2-Karte DVBSky S950 V3.

Es gab noch hunderte andere Änderungen am Code der beschriebenen Kernel-Bereiche. Informationen zu diesen finden Sie über die folgenden Links, die auf Git-Merge-Commits verweisen, mit denen die wesentlichsten Neuerungen dieser Bereiche für die nächste Kernel-Version integriert wurden.

ACPI, PCI und Co.

Treiber

Low-Level-Treiber

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden über das Twitter-Konto "@kernellog" annonciert. (thl) (thl)