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.
- Thorsten Leemhuis
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.
Grafiktreiber
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.
Atomic Modesetting
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)
CPU-Gangschaltung
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.
Treiber
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.
Merge Commits
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.
- Pull ACPI and power management updates from Rafael Wysocki
- Pull ARM SoC/iommu configuration update from Arnd Bergmann
- Pull IOMMU updates from Joerg Roedel
- Pull more ACPI and power management updates from Rafael Wysocki
- Pull PCI changes from Bjorn Helgaas
- Pull power management and ACPI material from Rafael J Wysocki
Treiber
- Pull driver core update from Greg KH
- Pull drm updates from Dave Airlie
- Pull edac updates from Mauro Carvalho Chehab
- Pull fbdev updates from Tomi Valkeinen
- Pull firewire updates from Stefan Richter
- Pull HID updates from Jiri Kosina
- Pull hwmon updates from Guenter Roeck
- Pull infiniband updates from Roland Dreier
- Pull input subsystem updates from Dmitry Torokhov
- Pull media updates from Mauro Carvalho Chehab
- Pull second set of media updates from Mauro Carvalho Chehab
- Pull sound fixes from Takashi Iwai
- Pull sound updates from Takashi Iwai
- Pull staging driver updates from Greg KH
- Pull USB updates from Greg KH
- Pull x86 platform driver update from Darren Hart
Low-Level-Treiber
- Pull backlight updates from Lee Jones
- Pull char/misc driver updates from Greg KH
- Pull clk framework updates from Mike Turquette
- Pull devicetree changes from Grant Likely
- Pull dmaengine updates from Vinod Koul
- Pull HSI update from Sebastian Reichel
- Pull i2c updates from Wolfram Sang
- Pull IPMI driver updates from Corey Minyard
- Pull irq domain ARM updates from Thomas Gleixner
- Pull LED subsystem update from Bryan Wu
- Pull mailbox framework updates from Jassi Brar.
- Pull MFD updates from Lee Jones
- Pull MMC updates from Ulf Hansson
- Pull more i2c updates from Wolfram Sang
- Pull MTD updates from Brian Norris
- Pull NOHZ update from Thomas Gleixner
- Pull pin control changes from Linus Walleij
- Pull power supply updates from Sebastian Reichel:
- Pull pwm updates from Thierry Reding
- Pull regmap updates from Mark Brown
- Pull regulator updates from Mark Brown
- Pull small watchdog update from Wim Van Sebroeck
- Pull spi updates from Mark Brown
- Pull take two of the GPIO updates
- Pull thermal management update from Zhang Rui
- Pull thermal management updates from Zhang Rui
- Pull tty/serial driver updates from Greg KH
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)