Kernel-Log – Was 3.4 bringt (3): Grafik

Seite 3: USB-Displays, Hybrid-Betrieb

Inhaltsverzeichnis

Zum Kernel stieß ferner der einfache DRM/KMS-Treiber "udl". Er spricht das DisplayLink-Protokoll, das bei der Ansteuerung von Monitoren via USB zum Einsatz kommt. Der maßgeblich von Dave Airlie entwickelte Treiber unterstützt die wichtigsten Funktionen von UDL-Hardware und bietet ein einfaches KMS-Interface, an dem der kürzlich vorgestellte X-Server-Treiber xf86-video-modesetting andocken kann. Dieser DDX-Treiber setzt voll auf KMS und enthält keine Grafikchip-spezifischen Funktionen, wie es bei den mittlerweile vielfach auf KMS angewiesenen X.org-Treibern Intel, Nouveau und Radeon der Fall ist. Der Modesetting-Treiber arbeitet daher auch mit anderen KMS-Treibern zusammen – darunter etwa jenem für den GMA500-Grafikkern in Intels US15W-Chipsatz (Poulsbo)

Der Udl-Code stammt zu großen Teilen vom Framebuffer-USB-DisplayLink-Treiber Udlfb ab, der schon länger im Kernel enthalten ist und einen ähnlichen Funktionsumfang bietet. Durch die Portierung auf die DRM/KMS-Infrastruktur, auf der auch andere Grafiktreiber aufsetzen, profitiert dieser von den dortigen Grundlagen; einige von ihnen sind etwa zum Betrieb des als X-Server-Ersatz konzipierten Grafiksystems Wayland wichtig. Zudem unterstützt Udl auch das An- und Abziehen des Monitors im laufenden Betrieb.

Der Udl-Treiber ist eine von mehreren derzeit in Entwicklung befindlichen Änderungen an Kernel, X-Server und Co., durch die sich verschiedene Grafik-Hardware bei laufendem System aktivieren und deaktivieren lassen soll, ohne dass der Anwender den X-Server neu starten oder anderweitig Hand anlegen muss.

Ein anderer Baustein ist das ebenfalls für 3.4 aufgenommene Grundgerüst des Frameworks Prime/Dma-Buf, über das Grafikkerne ohne viel Overhead Daten austauschen sollen. Langfristig soll das die Unterstützung für im Betrieb zuschaltbare Grafikchips verbessern, damit etwa ein Nvidia-Chip die von ihm berechneten Bilder ohne viel Aufwand an den Grafikkern des Prozessor übergeben kann, damit der diese ausgeben kann. Auf diese Art geben die GeForce-Chips aktueller Optimus-Notebooks das Bild aus; auch AMDs Hybrid-Grafik-Lösung arbeitet auf aktuellen Systemen so.

Bislang nutzt allerdings kein Treiber die neue Infrastruktur; entsprechende Erweiterungen für die DRM/KMS-Treiber Nouveau, i915, Udl, Exynos und Omap sollen bei Linux 3.5 folgen.

Zum Linux-Kernel stieß ein Plattform-Treiber für "Gmux"-Hardware, mit der einige Apple-Systeme zwischen zwei Grafikchips umschalten. Der Treiber bringt allerdings noch keine volle Unterstützung zum An- und Abschalten des zweiten Grafikchip, sondern ermöglicht bei den unterstützten Apple-Systemen lediglich ein Einstellen der Bildschirmhelligkeit.

Über neue Funktionen kann man dem Kernel die zur korrekten Bildschirmansteuerung nötigen Informationen (EDID/Extended Display Identification Data) beim Booten mitgeben oder diese via Sysfs nachladen. Das kann sich als Workaround anbieten, wenn KVM-Switches den Informationsfluss stören oder Bildschirme und Grafiktreiber die EDID-Informationen nicht korrekt liefern; Details liefert ein Artikel des OSADL (Open Source Automation Development Lab).

Für einfache Fälle reicht allerdings zumeist der schon länger im Kernel enthaltene Kernel-Parameter "video", über den man einen einzelnen Modus vorgeben kann; "video=1024x768-24@75" gibt beispielsweise eine Auflösung von 1024 × 768 Bildpunkten mit 24 Bit Farbtiefe und einer Bildwiederholrate von 75 Hertz vor.