Kernel-Log – Was 3.16 bringt (3): Treiber
Die AMD- und Intel-Grafiktreiber können nun etwas schneller arbeiten. Nvidia arbeitet jetzt beim Nouveau-Grafiktreiber mit. Die Helligkeitregelung von Notebooks-Displays soll nun häufiger funktionieren.
- Thorsten Leemhuis
Der im Linux-Kernel enthaltene Treiber für Grafikkerne von Intel unterstützt nun Userspace Pointer. Durch diese auch User Pointer oder Userptr genannte Funktion müssen Speicherbereiche regulärer Programme nicht erst in den Kernel-eigenen Speicherbereich kopiert werden, damit der Grafikkern darauf zugreifen kann; das vermeidet Overhead und kann so 3D-, Video- und OpenCL-Leistung verbessern. Die Änderung wurde nach der Aufnahme heftig von einem erfahrenen Entwickler kritisiert, der allerlei Probleme befürchtete (1, 2). Diese Bedenken konnten später ausgeräumt werden, daher soll vielleicht auch der Radeon-Treiber bald Userspace Pointer beherrschen.
Entwicklungsstand
Linux 3.16 dürfte am Ende des ersten Augustwochenendes erscheinen. Darauf deutet zumindest einiges in der Freigabemail zur siebten Vorabversion dieser Kernel-Version hin, die Linus Torvalds am letzten Juli-Sonntag veröffentlicht hat. Die Freigabe kann sich aber leicht um eine Woche oder mehr verzögern, falls noch größere Fehler auftauchen.
Neu ist auch die Unterstützung für das Display Serial Interface (DSI), mit dem manche Mobile-Geräte ihre Displays ansteuern. Zu denen zählt das mit Windows 8.1 ausgelieferte Asus Transformer Book T100 – ein 10-Zoll-Tablet, das durch das mitgelieferte Tastaturdock zum Netbook wird. Der Intel-Treiber unterstützt nun die Hardware-beschleunigte Ausgabe von Mauszeiger-Bildern, die bis zu 256 × 256 Pixel groß sind; das bisherige Limit lag bei 64 × 64, was bei sehr hochauflösenden Displays zu recht kleinen Mauszeigern führt. Details zu diesen und anderen Neuerungen am Intel-Treiber liefert dessen Hauptbetreuer in einem Blog-Beitrag.
Radeon
Der Treiber für AMDs Grafikkerne soll bei Linux 3.16 etwas flotter arbeiten und HDMI Deep Color unterstützen (u. a.1, 2, 3). Zudem beherrscht der Radeon-Treiber bei neueren APUs nun BAPM (1, 2); dadurch kann der Grafikkern in AMDs Prozessoren etwas höher takten und mehr Leistung liefern, wenn die APU die maximale thermische Verlustleistung (TDP/Thermal Design Power) noch nicht erreicht hat, weil die CPU-Kerne gerade nicht so viel zu tun haben.
Nvidia
Beim für Nvidia-GPUs zuständigen Nouveau-Treiber haben die Kernel-Entwickler die DisplayPort-Unterstützung verbessert. Der Treiber beherrscht bei einigen Grafikchips der Familien nv40 (viele 6000er und 7000er GeForce-Modelle), nvaa/nvac (bspw. GeForce 8100, 8200 & 8300) und nve0 (viele 600er und 700er GeForce-Modelle) nun das Hochschalten in schnellere Betriebsmodi. Das gelingt derzeit allerdings nur manuell über Sysfs-Dateien wie /sys/class/drm/card0/device/pstate
; zudem funktioniere das Hoch- und Runterschalten laut dem Entwickler nur unzuverlässig, man solle es daher "mit Vorsicht" nutzen. Ein automatisches Hoch- und Runterschalten soll es erst geben, wenn die Frequenzwechsel zuverlässig funktionieren.
Der Nouveau-Treiber bietet nun auch Basis-Support für den Grafikchip GK110B, den etwa die GeForce GTX 780 Ti nutzt. Nvidia hat zudem Code beigesteuert, damit der Treiber den GK20a-Grafikkern des Tegra K1 unterstützt (u. a. 1, 2, 3). Von Nvidia-Mitarbeitern stammen auch Änderungen, durch den der Nouveau-OpenGL-Treiber in Mesa 3D den Grafikkern anspricht (1, 2). Diese Änderungen werden in der nächsten größeren Mesa-Überarbeitung enthalten sein, die die Versionsnummer 10.3 oder 11.0 tragen dürfte. Damit beteiligt sich Nvidia erstmals signifikant an der Entwicklung des Nouveau-Treibers, der maßgeblich per Reverse Engineering entwickelt wird. Nvidia will die Mitarbeit am Treiber aber auch in Zukunft auf Code konzentrieren, der zur Unterstützung der Grafikkerne in den hauseigenen ARM-SoCs benötigt wird.
Treiber
Ein ganzer Schwung von Änderungen am ACPI-Code soll Schwierigkeiten bei der Regelung der Bildschirmhelligkeit beseitigen, die eine Reihe von Windows-8-Notebooks plagen. In Einzelfällen zeigen sich aber noch Probleme mit der verbesserten Herangehensweise, daher haben die Entwickler sich entschlossen, diese bei 3.16 wieder standardmäßig zu deaktivieren. Man kann sie aber über den Kernel-Parameter "video.brightness_switch_enabled=0" einschalten; ab Linux 3.17 soll der Kernel die verbesserte Herangehensweise standardmäßig nutzen.
Linux enthält jetzt einen Treiber für den Fallsensor, der in manchem Dell-Notebooks der Latitude-Serie steckt. Ein normales Programm kann mit diesem Treiber zusammenarbeiten und so die Schreib/Lese-Köpfe von Festplatten in eine sichere Position bringen, während das Notebook herunterfällt.
Der Kernel bringt jetzt einen Treiber für Synaptics-Touchpads mit, die das RMI4-Protokoll nutzen und via I2C oder USB angeschlossen sind. Die Unterstützung für solche Touchpads soll noch grundlegend überarbeitet werden, denn der jetzt aufgenommenen Code ist nur als Übergangsmaßnahme gedacht, damit die Touchpads einiger Notebooks zuverlässig funktionieren – etwa bei der Haswell-Generation der Dell-XPS-Notebooks 11 und 12.
In den Staging-Bereich für unzulänglichen Code ist ein Treiber für den PCIe-WLAN-Chip Realtek RTL8192EE eingezogen (u. a. 1, 2, 3, 4).
Merge Commits
Es gab noch hunderte weitere Änderungen am Code der beschriebenen Kernel-Bereiche. Informationen zu diesen finden Sie über die folgenden Links auf Git-Merge-Commits, mit denen die wesentlichen Neuerungen dieser Bereiche in Linux 3.16 eingeflossen sind; die zugehörigen Commit-Kommentare enthalten zumeist eine Beschreibung der wichtigsten Änderungen des jeweiligen Subsystems.
- Pull ACPI and power management fixes from Rafael Wysocki
- Pull ACPI and power management updates from Rafael Wysocki
- Pull char/misc driver patches from Greg KH
- Pull clock framework updates from Mike Turquette
- Pull core irq updates from Thomas Gleixner
- Pull DeviceTree updates from Rob Herring
- Pull driver core / kernfs changes from Greg KH
- Pull drm updates from Dave Airlie
- Pull firewire updates from Stefan Richter
- Pull GPIO updates from Linus Walleij
- Pull HID patches from Jiri Kosina
- Pull HSI (High Speed Syncronous Interface) changes from Sebastian Reichel
- Pull hwmon updates from Guenter Roeck
- Pull hwmon updates from Guenter Roeck
- Pull i2c new drivers from Wolfram Sang
- Pull i2c updates from Wolfram Sang
- Pull input updates from Dmitry Torokhov
- Pull IOMMU updates from Joerg Roedel
- Pull LED updates from Bryan Wu
- Pull main fbdev changes from Tomi Valkeinen
- Pull main InfiniBand/RDMA updates from Roland Dreier
- Pull media updates from Mauro Carvalho Chehab
- Pull MFD updates from Lee Jones
- Pull MMC update from Chris Ball
- Pull MMC update from Ulf Hansson
- Pull more ACPI and power management updates from Rafael Wysocki
- Pull more clock framework updates from Mike Turquette
- Pull more PCI updates from Bjorn Helgaas
- Pull MTD updates from Brian Norris
- Pull OMAP3 updates from Mauro Carvalho Chehab
- Pull OMAP DT fbdev updates from Tomi Valkeinen
- Pull omap fbdev changes from Tomi Valkeinen
- Pull PCI changes from Bjorn Helgaas
- Pull pin control changes from Linus Walleij
- Pull pwm changes from Thierry Reding
- Pull regmap updates from Mark Brown
- Pull regulator updates from Mark Brown
- Pull slave-dmaengine updates from Vinod Koul
- Pull sound fixes from Takashi Iwai
- Pull sound fixes from Takashi Iwai
- Pull sound updates from Takashi Iwai
- Pull spi updates from Mark Brown
- Pull staging driver updates from Greg KH
- Pull thermal management update from Zhang Rui
- Pull tty/serial driver updates from Greg KH
- Pull updates and DT support for media engines from Mauro Carvalho Chehab.
- Pull USB driver updates from Greg KH
- Pull watchdog updates from Wim Van Sebroeck
- Pull x86 platform driver updates from Matthew Garrett
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 auf dem Twitter-Konto "@kernellog" annonciert. (thl) (thl)