Kernel-Log – Was 2.6.32 bringt (2): Grafik
Linux 2.6.32 wird 3D-Unterstützung mit Radeon-Grafikkarten der Serien 2000, 3000 und 4000 bieten. Die Treiber für Intel-Grafikchips beherrschen nun mehr Stromsparfunktionen und sollen gerade auf älter Mainboard-Chipsätzen deutlich runder laufen.
- Thorsten Leemhuis
Anfang November hat Linus Torvalds 2.6.32-rc6 freigegeben – wegen des Kernel Summit erschien der sechste RC nicht wie sonst üblich eine, sondern zwei Wochen nach dem rc5. Wie bei diesem Stand des Entwicklungszyklus üblich, sind die in den vergangenen Tagen integrierten Patches vorwiegend klein, um in den verbleibenden drei bis sechs Wochen bis zur Freigabe von Linux 2.6.32 keine Änderungen einzuschleusen, die neue Fehler auslösen.
Nach der Beschreibung der Änderungen im Netzwerksubsystem widmet sich das Kernel-Log nun den wichtigsten Neuerungen rund um die Unterstützung für Grafikhardware. Auf einiges davon dürften viele Anwender warten, seit AMD wieder enger mit Open-Source-Entwicklern zusammenarbeitet.
3D und KMS für Radeon
Kernel und Direct Rendering Manager (DRM) beherrschen in Zukunft 3D-Unterstützung und Kernel-based Mode-Setting (KMS) auch mit den AMD-GPUs der Baureihen R600 und R700. Die kommt in den Radeon-Modellen der Serien 2000, 3000 und 4000 zum Einsatz – also bei den meisten der in den letzten zwei bis drei Jahren verkauften Radeon-Grafikkarten sowie verschiedenen AMD-Mainboard-Chipsätzen der 700er-Baureihe.
Damit 3D-Unterstützung und KMS aber auch funktionieren, sind darauf abgestimmte (Entwickler-)Versionen von Libdrm und Mesa 3D sowie dazu passende Radeon-Grafiktreiber für X.org erforderlich. Diesen Software-Stack passend zusammenzustellen ist eher etwas für fortgeschrittene Anwender – das Fedora-Projekt will alles Nötige jedoch in dem Mitte des Monats erwarteten Fedora 12 in einem experimentellen Paket mitliefern.
Der Radeon-KMS-Treiber bietet in Zukunft auch Basisunterstützung zum Aktivieren von TV-Ausgängen. Der KMS-Treiber für Intel-Grafikchips konnte das schon vorher, unterstützt nun aber eine größere Zahl und mehr Funktionen der dafür zuständigen SDVO-Chips (1, 2, 3).
Der Intel-KMS-Code komprimiert ab 2.6.32 zudem den Framebuffer-Speicher, was die Leistungsaufnahme laut den Entwicklern um bis zu 0,5 Watt senkt; die neue dynamische Taktanpassung ("Dynamic Clock Frequency Control") soll bei unbelastetem System die Stromaufnahme durch Reduzieren der LCD-Bildwiederholrate, Self-Memory-Refresh und Taktreduzierung weiter vermindern und so die Akku-Laufzeit von Notebooks verlängern. Der Intel-Treiber geht zudem effizienter mit dem Grafikspeicher um (1, 2) und versucht, abgestürzte GPUs wieder neu zu initialisieren.
Koordiniert
Aufgenommen haben die Kernel-Hacker auch die VGA-Arbitration-Patches (1, 2, Dokumentation). Bei Systemen mit mehreren Grafikkarten stellen sie zusammen mit einem X-Server ab Version 1.7 sicher, dass die jeweils richtige Grafikkarte die ihr zugedachten VGA-Kommandos des X-Servers auch erhält – das soll deutlich mehr Flexibilität beim Aufsetzen von Multiseat-Umgebungen ermöglichen.
Einige weitere Änderungen im für die Unterstützung für Grafikhardware zuständigen Code des Kernels:
- Über den Parameter "video=" kann man dem KMS-Code zukünftig eine bestimmte Ausgabe-Bildschirmauflösung für einzelne oder alle Monitore vorgeben .
- Die bislang mit dem Radeon-Treibercode eng verbundene Firmware haben die Entwickler in eigene Dateien ausgelagert und laden diese fortan mit Hilfe des Firmware-Loaders. Eine vergleichbare Änderung gab es auch im Treibercode für Matrox-Grafikkarten.
- Neu dabei ist ein Framebuffertreiber für MSM/QSD SoCs von Qualcomm, die etwa beim HTC Dream (aka T-Mobile G1, aka ADP1) zum Einsatz kommen.
- Die Entwickler haben die von Radeon-Treibern des Kernels bei der Initialisierung genutzten Codepfade überarbeitet. Das soll ihnen die Wartung vereinfachen, aber auch das Suspend- und Resume-Verhalten verbessern – die zuständigen Commits finden sich in der Liste am Ende des Artikels. Die Treiber-Pflege sollte auch die Zusammenlegung einiger Teile des KMS-Codes für AMD- und Intel-GPUs vereinfachen.
- Der Framebuffertreiber für VIA-Grafikhardware unterstützt nun auch den VX855-Chipsatz. Zudem haben die Kernel-Hacker die 2D-Engine des VIA-Treibers neu geschrieben.
- Mit Hilfe der neuen Tracepoint-Unterstützung lässt sich in Zukunft das Verhalten des DRM-Codes fürs Intels aktuelle Grafikchipsätze besser beobachten.
- Die Entwickler wollen zahlreiche seit der Aufnahme von GEM bei 2.6.27 auftretende Fehler mit Intel-Chipsätzen der 8xx-Serie behoben haben.
- Der KMS-Code für Radeon-Grafikhardware unterstützt nun Surround View – also den Parallelbetrieb von Radeon-Grafikkarte mit Chipsatzgrafik.
Die kleinen Perlen
Viele weitere nicht ganz so wichtige, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste, die die englischen Commit-Überschriften der jeweiligen Änderung enthalten. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs mit den Kernel-Quellen auf Kernel.org. Im Webfrontend liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderungen.
- Add G33 series in VGA hotplug support category
- agp/intel: Add B43 chipset support
- davinci: fb: Frame Buffer driver for TI DA8xx/OMAP-L1xx
- drm: Add more standard TV properties.
- drm: Add the basic check for the detailed timing in EDID
- drm/edid: Fix standard timing parse for EDID <= 1.2
- drm/edid: Ignore bad standard timings.
- drm: Enable drm drivers to add drm sysfs devices.
- drm/i915: add B43 chipset support
- drm/i915: add FIFO watermark support for G4x
- drm/i915: disable powersave feature for Ironlake currently
- drm/i915: do dynamic clock freq control only in kernel modesetting
- drm/i915: Fix FDI M/N setting according with correct color depth
- drm/i915: fix startup hang on some non-mobile platforms
- drm/i915: force mode set at lid open time
- drm/i915: framebuffer compression for GM45+
- drm/i915: generate a KMS uevent at lid open/close time
- drm/i915: Ironlake suspend/resume support
- drm/i915: Save and restore the GM45 FBC regs on suspend and resume.
- drm/i915: Support IGD EOS
- drm/kms: add a function that can add the mode for the output device without EDID
- drm/kms: Add the default mode table
- drm/kms: fix kms helper license + Kconfig
- drm/kms/i915: Add the default mode for CRT output without EDID
- drm/kms/radeon: make kms default a runtime option
- drm/mode: add the CVT algorithm in kernel space
- drm/mode: add the GTF algorithm in kernel space
- drm/mode: get the modeline for standard timing in EDID by using CVT/GTF
- drm/r128: Use request_firmware() to load CCE microcode
- drm/radeon/kms: add 32/64 ioctl support.
- drm/radeon/kms: add common lvds modes in the ddc case
- drm/radeon/kms: add common scaled modes for TV and LVDS
- drm/radeon/kms: add initial connector properties
- drm/radeon/kms: add rn50/r100/r200 CS tracker.
- drm/radeon/kms: Convert R100 to new init path (V2)
- drm/radeon/kms: Convert R300 to new init path
- drm/radeon/kms: Convert RS400/RS480 to new init path
- drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3)
- drm/radeon/kms: Convert RS600 to new init path
- drm/radeon/kms: Convert RS690/RS740 to new init path (V2).
- drm/radeon/kms: enable r600 tv outputs.
- drm/radeon/kms: Fix AGP support for R600/RV770 family (v2)
- drm/radeon/kms: Remove old init path as no hw use it anymore
- drm: split crtc/fb helpers into a separate module
- drm/ttm: Add a virtual ttm sysfs device.
- drm/ttm: Memory accounting rework.
- ep93xx video driver
- i915: fix intel graphics suspend breakage due to resume/lid event confusion
- matroxfb: make CONFIG_FB_MATROX_MULTIHEAD=y mandatory
- omapfb: add FB manual update option to Kconfig
- omapfb: add support for rotation on the Blizzard LCD ctrl
- omapfb: add support for the 2430SDP LCD
- omapfb: add support for the 3430SDP LCD
- omapfb: add support for the Amstrad Delta LCD
- omapfb: add support for the Apollon LCD
- omapfb: add support for the OMAP2EVM LCD
- omapfb: add support for the OMAP3 Beagle DVI output
- omapfb: add support for the OMAP3 EVM LCD
Weitere Hintergründe und Informationen rund um die Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Ausgaben des Kernel-Log. (thl) (thl)