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

Die Treiber für Grafikchips von AMD und Intel unterstützen nun mehr Grafikchips als zuvor und nutzen die Stromsparmechanismen älterer Chips besser. Durch größere Umbaumaßnahmen am noch jungen KMS-Treiber für Grafikhardware von Nvidia ist der Nouveau-Treiber für X.org in Zukunft auf Kernel-based Mode-Setting angewiesen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 9 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Nach der Umbenennung des Kernels in "Sheep on Meth" bei Linux 2.6.34-rc5 hat Linus Torvalds Ende vergangener Woche die sechste Vorabversion Linux-Version 2.6.34 veröffentlicht. Die Rate und der Umfang der Änderungen geht wie in diesem Abschnitt des Entwicklungszyklus üblich langsam zurück; aber abgesehen von einer vagen Andeutung, dass sich der Fertigstellung von 2.6.34 nähere, macht Torvalds keine Angaben zum Veröffentlichungszeitpunkt der in den nächsten ein bis drei Wochen erwarteten neuen Kernel-Version.

Das Kernel-Log will derweil die Berichterstattung über die Neuheiten von 2.6.34 fortsetzen und widmet sich im folgenden dritten Teil der Mini-Serie "Was 2.6.34 bringt" den Änderungen rund um den Code zur Unterstützung von Grafikhardware. Über die wichtigsten Änderungen rund um Netzwerkunterstützung und Dateisysteme hatten wir im ersten und zweiten Teil der Serie berichtet.

Zu einer der langfristig wohl wichtigsten Neuerungen dürfte die Integration von Patches zählen, die den für Kernel-Based Mode-Setting (KMS) zuständigen Radeon-DRM-Treiber um rudimentäre Unterstützung für die als Evergreen oder R800 bekannten Grafikchips erweitern. Dadurch wird der Kernel fortan viele der seit Herbst letzten Jahres eingeführten Grafikkarten der Radeon-HD-5000-Serie ansprechen können, auf denen solche Grafikchips zum Einsatz kommen. Bislang nutzt der Treiber zwar keine der Beschleunigungsfunktionen dieser GPUs, ähnlich war es am Anfangs aber auch bei den mittlerweile recht ordentlich arbeitenden Treibern für ältere Grafikhardware aus der Radeon-Familie.

Der KMS-Treiber kann bei älteren Radeon-GPUs ab 2.6.34 einige der dynamischen Stromsparmechanismen aktivieren; zahlreiche weitere Verbesserungen in diesem Bereich sind für kommende Kernel-Versionen in Vorbereitung. Um Schadcode zu unterbinden, prüft der Radeon-DRM-Treiber zudem in Zukunft vorab die an den Grafikchip weitergeleiteten Kommandos auf Korrektheit.

Der Intel-KMS-Treiber wird bereits mit 2.6.34 Unterstützung für den Grafikkern der bislang nur unter dem Codenamen Sandybridge bekannten Prozessoren bieten, die Intel Spekulationen zufolge Anfang nächsten Jahres vorzustellen gedenkt. Bei Intels-Chipsätzen der 9xx-Reihe aktiviert der Treiber nun den Memory Self Refresh, wenn die CPU in einen tiefen Schlafmodus wechselt – laut dem Commit-Kommentar hat das die Leerlauf-Leistungsaufnahme eines Netbooks mit 945GSE um 0,8 Watt gesenkt.

Bei den Anfang dieses Jahres eingeführten Intels-CPUs der Core-Baureihen i3 und i5 kann der Kernel nun die Taktfrequenz des Ironlake genannten Grafikkerns anpassen. Diese Funktion wird auch benötigt, um bei den Mobil-Varianten der genannten Prozessoren die Taktfrequenz des Grafikkerns per Turbo Boost über den Nominaltakt steigern – damit dieses "Intelligent Power Sharing" genutzt wird, sind allerdings weitere, noch in Entwicklung befindliche Änderungen nötig.

Der Nouveau-Treiber für GeForce-Grafikhardware bringt nun alles Nötige mit, um bei Bedarf dynamisch eine Open-Source-Firmware für NV50-GPU zu erzeugen – GeForce-Grafikchips der Serien 8xxx, 9xxx und GTX2x0 laufen daher nun ohne die umstrittenen und mit Hilfe der proprietären Grafiktreiber entstandenen Ctxprogs. Durch einige andere größere Umbaumaßnahmen am Treiber werden die für Linux 2.6.33 passenden Nouveau-Treiber für X.org genauso wenig mit dem Kernel 2.6.34 zusammenarbeiten wie die umgekehrte Kombination. Solche inkompatiblen Änderungen an den Treiber-Schnittstellen zum Userspace sind normalerweise nicht erlaubt, nach Einschätzung einiger Kernel-Hacker aber in diesem Fall akzeptabel, weil Nouveau noch ein Staging-Treiber ist. Trotzdem mussten sich die Nouveau-Entwickler allerlei Kritik von Torvalds auf der Linux-Kernel-Mailingliste anhören. Ihn stört vor allem, dass Tester nun nicht so einfach zwischen verschiedenen Kernel-Versionen wechseln können, um herauszufinden, seit wann ein bestimmter Fehler auftritt.

Einer der Gründe für die Anpassung der API war die Entfernung vieler Schnittstellen, auf die der X.org-Treiber im Nicht-KMS-Betrieb angewiesen war; da die Entwickler auch die Gegenstücke zum sogenannten User Mode-Setting (UMS) im Entwicklerzweig des X.org-Treibers entfernten, ist KMS für Nouveau in Zukunft genauso Pflicht wie schon jetzt bei aktuellen Versionen des Grafiktreibers für Intel-GPUs. Die aktuellen Ausgaben des Radeon-X.org-Treibers enthalten alle noch UMS-Code – über kurz oder lang dürften die Entwickler ihn aber ebenfalls entsorgen.

Bei einigen mit Chipsatzgrafik und separatem Grafikchip ausgestatteten Notebooks kann der Kernel nun zwischen den beiden umschalten und die jeweils nicht genutzte Grafikeinheit ausschalten, um Strom zu sparen. Die VGA-Switcheroo genannte Funktion arbeitet aber bislang nur auf ausgewählten Notebooks und bietet nicht den von Windows genannten Komfort, denn die Umschaltung erfolgt erst beim Neustart des X-Servers; daran soll sich auch in absehbarer Zukunft nichts ändern. Einige Hintergründe zu VGA-Switcheroo liefern einige ältere Blog-Einträge von Dave Airlie (1, 2, 3, 4, 5).

Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. 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.

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 den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)