Kernel-Log – Was 3.11 bringt (4): Grafiktreiber
Linux 3.11 bringt Unterstützung für neue Grafikkerne von AMD, Intel und Nvidia. Der Kernel nutzt jetzt die Stromsparfähigkeiten moderner Radeon-HD-Chips und beherrscht Mehrschirmbetrieb mit Spice.
- Thorsten Leemhuis
Die Ankündigung zur siebten Vorabversion von Linux 3.11 erfolgte ganz anders als gewohnt, denn Linus Torvalds hat sie nicht an die LKML geschickt, sondern am 26. August bei Google+ publiziert. Zudem hat Torvalds anlässlich des 22. Geburtstags einen Freigabetext gewählt, der sich stark an der Mail orientiert, mit der er Linux genau 22 Jahre zuvor angekündigt hatte.
Torvalds deutet in diesem Text an, Linux 3.11 innerhalb einer Woche veröffentlichen zu wollen. Eine Freigabe rund um den 1. September ist damit recht wahrscheinlich. Allerdings passiert es häufiger, dass Torvalds nach solchen Andeutungen doch noch einen weiteren RC einschiebt und die Fertigstellung so um eine Woche oder mehr verschiebt.
Die Entwicklung von Linux 3.11 nähert sich somit dem Ende, daher soll die folgende Beschreibungen der Neuerungen rund um Grafiktreiber nun die Kernel-Log-Mini-Serie "Was 3.11 bringt" abschließen, die die wichtigsten Änderungen dieser Kernel-Version beschreibt. In den ersten drei Teilen der Serie ging es um die Neuerungen in den Bereichen Dateisysteme und Storage, Infrastruktur und Platform sowie Treiber und Netzwerk.
Radeon-Treiber
Dank einer Sammlung von über 150 Patches beherrscht Linux jetzt AMDs Dynamic Power Management (DPM) sowie das in der PCIe-Spezifikation definierte ASPM (Active State Power Management) bei nahezu allen Radeon-HD-GPUs (u. a. 1). Diese von AMDs proprietärem Grafiktreiber Catalyst schon länger unterstützten Techniken können den Stromverbrauch deutlich senken, wenn die GPU wenig zu tun hat.
Die von AMD-Entwickler Alex Deucher eingebrachte DPM-Unterstützung gilt allerdings noch als experimentell und wird erst aktiv, wenn man dem Kernel-Grafiktreiber radeon den Parameter dpm=1
mitgibt – etwa durch Angabe des Bootparameters radeon.dpm=1
. ASPM hingegen ist standardmäßig aktiv, lässt sich aber bei Problemen über den Bootparameter radeon.aspm=0
deaktivieren. Weitere Hinweise zu DPM und dessen Einsatz erläutert Deucher in einem Blog-Eintrag.
Der Kernel 3.11 hat zudem Unterstützung für die Grafikchips erhalten, die AMDs Treiberentwickler unter dem Kürzel CIK referenzieren (u. a. 1). Das betrifft die Grafikkarten der Radeon-HD-8000er-Serie sowie die Bonaire-GPU, die auf der Radeon HD 7790 sitzt, ferner die Kabini-APUs in sparsamen Notebook-Prozessoren wie AMDs A4-5000 oder A6-5200 sowie die noch nicht erhältlichen Kaveri-Prozessoren für Desktops und Notebooks mit der neuen "Steamroller"-Architektur, die AMD zum Jahreswechsel einführen will.
Die Kernel-Treiber für die CIK-Grafikkerne bieten noch keine Unterstützung für DPM und ASPM; das soll sich bei Linux 3.12 ändern. Der OpenGL-Treiber radeonsi des kürzlich veröffentlichten Mesa 3D 9.2 bietet indes schon Basisunterstützung, um die 3D-Beschleunigung dieser Grafikkerne zu verwenden.
Nouveau, Intel, ...
In Mesa 9.2 finden sich auch ein früher Treiber, um H.264 und MPEG-2 mit Hilfe des Video-Beschleunigers zu dekodieren, den die GPUs NV84 bis NV96 und NVA0 enthalten; solche verwenden einige, aber längst nicht alle Grafikkarten zwischen GeForce 8300 GS und 9800 GTX+ sowie GeForce GT 100 bis GTX 295. Der Treiber weist allerdings noch massive Sicherheitslücken auf, auf die der Entwickler hinweist.
Für seine Arbeit braucht der Mesa-Video-Treiber einige Schnittstellen im Nouveau-Kernel-Treiber, die Linux jetzt bietet (u. a. 1, 2). Der Nouveau-Kernel-Treiber hat zudem Basisunterstützung den Grafikkern NVD7 (GF117) erhalten, den unter anderem die Geforce-GT-Modelle 620M, 625M, 710M und 720M nutzen. Ferner lassen sich bei der NVF0 oder GK110 genannten GPU der GeForce GTX 780 nun Beschleunigungsfunktionen nutzen, wenn man dem Treiber die Firmware aus Nvidias proprietärem Treiber mitgibt.
Der Intel-Grafiktreiber unterstützt nun 30-Bit-Farbtiefe und soll die Stromsparfunktionen in Intels Prozessoren der Haswell-Serie besser nutzen (u. a. 1), zu denen die Core-i-CPUs der vierten Generation zählen. Die Unterstützung für den Grafikkern der im Herbst erwarteten Silvermont-SoCs gilt jetzt als fertig. Diese System-on-Chip-Architektur will Intel nicht nur bei neuen Atom-Prozessoren verwenden, sondern auch bei den J- und D-Ausführungen von Celeron und Pentium.
Der Kernel-Grafiktreiber für Spice, das vor allem im Umfeld der KVM-Virtualisierung zur Grafikausgabe des Gastes genutzt wird, kann jetzt an mehr als ein Ausgabegerät weiterleiten; das System, das die per Spice ankommenden Grafikausgaben ausgibt, kann jedes dieser Spice-Ausgabegeräte in einem eigenen Fenster darstellen, die sich auf verschiedene Monitore verteilen lassen.
Dem Kernel liegt jetzt auch ein Grafiktreiber für einige der von Renesas gefertigten System-on-Chips (SOC) der R-Car-Serie bei.
Die kleinen Perlen
Die kleinen Perlen
Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutenden Änderungen:
- Pull fbdev update from Jean-Christophe PLAGNIOL-VILLARD
- [
C
] console/font: Refactor font support code selection logic - [
- [
DN
] drm: Add struct drm_rect and assorted utility functions - [
- [
D
] drm/doc: Document the KMS property API - [
D
] drm/doc: Remove outdated note about i915 driver not behaving properly - [
D
] drm/exynos: add new compatible strings for hdmi subsystem - [
D
] drm/exynos: add support for exynos5420 mixer - [
D
] drm: Fix drm_rect documentation - [
- [
1
] drm: GEM CMA: Add DRM PRIME support - [
- [
- [
- [
N7
] drm/gr/nvc0-: merge nvc0/nve0 ucode, and use cpp instead of m4 - [
- [
- [
- [
- [
- [
- [
- [
2
] drm/i915: turbo & RC6 support for VLV v7 - [
- [
D
] drm: Improve manual IRQ installation documentation - [
N1
] drm/mgag200: Hardware cursor support - [
C
] drm/nouveau: always select ACPI_VIDEO if ACPI is enabled. - [
N
] drm/nouveau/core: xtensa engine base class implementation - [
N9
] drm/nouveau/fb: initialise vram controller as pfb sub-object - [
N1
] drm/nouveau/vdec: fork vp3 implementations from vp2 - [
N9
] drm/nvc0-/gr: make register lists from initvals functions - [
- [
- [
N2
] drm/nvf0/gr: build cs ucode for GK110 - [
- [
- [
- [
N3
] drm/radeon: add clearstate init for verde power gating - [
N2
] drm/radeon: Add CP init for CIK (v7) - [
- [
- [
- [
1
] drm/radeon: add dpm UVD handling for TN asics (v2) - [
1
] drm/radeon: add support for ASPM on evergreen asics - [
1
] drm/radeon: add support for ASPM on SI asics (v2) - [
3
] drm/radeon: add support for interrupts on CIK (v5) - [
1
] drm/radeon: add support for MC/VM setup on CIK (v6) - [
- [
N
] drm/radeon/cik: add hw cursor support (v2) - [
2
] drm/radeon/cik: Add support for compute queues (v4) - [
3
] drm/radeon/cik: add support for sDMA dma engines (v8) - [
- [
- [
- [
- [
- [
- [
- [
- [
- [
1
] drm/radeon: implement pcie gen2/3 support for SI - [
N4
] drm/radeon/kms: add common r600 dpm functions - [
N8
] drm/radeon/kms: add dpm support for btc (v3) - [
N9
] drm/radeon/kms: add dpm support for cayman (v5) - [
N9
] drm/radeon/kms: add dpm support for evergreen (v4) - [
N4
] drm/radeon/kms: add dpm support for rs780/rs880 - [
N9
] drm/radeon/kms: add dpm support for rv6xx (v3) - [
N9
] drm/radeon/kms: add dpm support for rv7xx (v4) - [
N9
] drm/radeon/kms: add dpm support for SI (v7) - [
N8
] drm/radeon/kms: add dpm support for sumo asics (v2) - [
N8
] drm/radeon/kms: add dpm support for trinity asics - [
- [
N9
] drm/radeon: properly set up the RLC on ON/LN/TN (v3) - [
- [
C
] drm/shmobile: Enable compilation on all ARM platforms - [
D
] drm/tilcdc: adding some more devicetree config - [
N
] i915/drm: Add private api for power well usage - [
C DN1
] lib: Move fonts from drivers/video/console/ to lib/fonts/ - [
C N1
] OMAPDSS: Add LG.Philips LB035Q02 panel driver - [
C N1
] OMAPDSS: Add NEC NL8048HL11 panel driver - [
C N
] OMAPDSS: Add new Analog TV Connector driver - [
C N3
] OMAPDSS: Add new DSI Command Mode panel driver - [
C N
] OMAPDSS: Add new DVI Connector driver - [
C N1
] OMAPDSS: Add new HDMI Connector driver - [
C N
] OMAPDSS: Add new simple DPI panel driver - [
C N
] OMAPDSS: Add new TFP410 Encoder driver - [
C N1
] OMAPDSS: Add new TPD12S015 Encoder driver - [
C N1
] OMAPDSS: Add Sharp LS037V7DW01 panel driver - [
C N2
] OMAPDSS: Add Sony ACX565AKM panel driver - [
C N1
] OMAPDSS: Add TPO TD043MTEA1 panel driver - [
C
] OMAPDSS: add videomode conversion support - [
C
] OMAPDSS: panels: add Kconfig comment - [
- [
DN
] reservation: cross-device reservation support, v4 - [
D
] uvesafb: Clean up MTRR code - [
C DN1
] video: imxfb: Add DT support - [
D
] video: of: display_timing: add doubleclk flag - [
D 1
] video: ssd1307fb: Add support for SSD1306 OLED controller - [
C
] video: xilinxfb: Use driver for Xilinx ARM Zynq
Ein "C" im Bereich "[ ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "I" ausgezeichneten Patches rüsten neue PCI- oder USB-IDs nach; jene mit "D" verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: Eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Patches mit einer "9" sind 90 KByte oder größer.
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" erwähnt. (thl) (thl)