Kernel-Log: Treiber fĂĽr neue Radeon-GPUs

Der Kernel wird bald einige Grafikkerne von AMD unterstützten, die bei neuen Radeon-Grafikkarten und einigen kommenden Prozessoren eingesetzt werden. Bei Systemen mit Intel-Grafik kann der Ruhezustand zu Speicherverfälschungen führen. Die Entwicklung von Linux 3.4 ist angelaufen.

In Pocket speichern vorlesen Druckansicht 30 Kommentare lesen
Lesezeit: 13 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

AMD-Entwickler Alex Deucher hat eine Patch-Sammlung veröffentlicht, die die DRM- und KMS-Treiber des Linux-Kernels um Unterstützung für die Grafikkerne der Familien "Southern Islands" (SI) und "Trinity" (TN) erweitert. Zur SI-Generation gehören die Grafikchips der Mittelklasse- und High-End-Modelle Radeon HD 7900 und 7700, die AMD kurz vor Weihnachten und Mitte Februar eingeführt hat; beim Trinity handelt es sich um einen Prozessor mit integrierten Grafikkern, der vermutlich in den nächsten Wochen vorgestellt wird und die bisherigen Llano-Prozessoren aus AMDs Serie A beerben sollen.

Deucher hat angekündigt, Treiber für Mesa 3D und X.org folgen zu lassen, die auf die DRM/KMS-Unterstützung im Kernel aufbauen; wann die fertig sein sollen, sagte er allerdings nicht. Alles zur 2D- und 3D-Unterstützung der Trinity-CPU Aruba ist bereits in Mesa und den X.org-Treiber Radeon eingezogen – die nötigen Anpassungen waren offensichtlich einfach, da der bei Trinity eingesetzte Grafikkern eng mit älteren verwandt ist, die Mesa 3D und X.org schon länger unterstützen. Die Entwicklung eines quelloffenen 3D-Treibers für SI-Grafikkerne soll allerdings noch etwas Zeit brauchen.

Es ist unklar, ob die DRM/KMS-Unterstützung für die neuen Grafikkerne noch in den Linux-Kernel 3.4 einzieht. Normalerweise sollen solch große Änderungen wie die von Deucher bereits im Entwicklungszweig Linux-Next enthalten sein, bevor mit der Arbeit an einer neuen Kernel-Version begonnen wird, damit größere Änderungen nicht ohne Tests in linux-next im Merge Window in den Kernel eingehen; letzteres war bei den Grafiktreibern aber bereits einige Male der Fall, daher ist es recht wahrscheinlich, dass die jetzt veröffentlichten Patches in Kürze in den Hauptentwicklungszweig eingehen und noch Bestandteil von Linux 3.4 werden, das Ende Mai erscheinen dürfte.

Mangels Open-Source-Treiber richten Linux-Distributionen für SI-Grafikkerne bislang die nur wenige Grundfunktionen bietenden Standard-Vesa-Treiber ein. AMDs proprietärer Treiber unterstützt den Grafikchip der Radeon HD 7970 bereits seit der Einführung dieser Karten.

Nach der Freigabe von Linux 3.3 Anfang der Woche sind die ersten Fehler aufgetaucht, die die Kernel-Hacker bei der Entwicklung übersehen haben – so soll etwa die DVB-S-Unterstützung der WinTV Nova HD-S2 und ähnlichen Karten gestört sein. Das lässt sich durch eine kleinen Patch korrigieren, der vermutlich in die Stable-Kernel auf Basis von Linux 3.3 einziehen dürfte.

Derweil suchen einige Kernel-Entwicklern nach der Ursache eines offenbar schon seit einigen Kernel-Versionen auftretenden Fehlers, der nach dem Aufwachen aus dem Ruhezustand (Hibernate/Software Suspend) Speicherbereiche verfälscht. Offenbar ist der für neuere Intel-Grafikkerne zuständige DRM/KMS-Treiber i915 oder die von ihm angesteuerte Hardware schuld (1, 2); je nach Zeitpunkt und Verwendung der modifizierten Speicherbereiche kann das zu Abstürzen, Fehlberechnungen oder beschädigten Daten führen. Einige Hintergründe erläutert Fedora-Entwickler Dave Jones in einem Blog-Eintrag. Jones hat sich mit dem Problem näher auseinander gesetzt, weil mehrere Fedora-Anwender Speicherverfälschungen nach dem Ruhezustand gemeldet haben; das Problem tritt offenbar auch bei anderen Distributionen auf und besteht möglicherweise schon seit Mitte 2011.

Auch der immer mal wieder über die Probleme rund um ACPI und (U)EFI bloggende und twitternde Kernel-Hacker Matthew Garrett hatte kürzlich mit Speicherverfälschungen zu kämpfen und hat seine Leidensweg im Blog-Eintrag "More ways for firmware to screw you" beschrieben. Wer sich nicht bis zur Pointe vorarbeiten will, hier der Spoiler: Verursacher der Speicherverfälschungen, die zu den beobachteten Boot-Problemen auf einem Mac führten, war ein EFI-Treiber, der den WLAN-Chip aktivierte; manchmal modifizierte der bis zum Laden des Linux-WLAN-Treibers noch per DMA Arbeitsspeicherbereiche, obwohl der Linux-Kernel eigentlich die volle Kontrolle über das System erhalten hatte und diese Bereiche schon anders verwendete.

Die VMware-Entwickler haben vor knapp zwei Wochen die Version 12.0.0 ihres X.org-Treibers xf86-video-vmware freigeben, der zusammen mit dem DRM/KMS-Treiber Vmwgfx in Linux 3.2, einer halbwegs aktuellen Libdrm und Mesa 8.0 3D-Beschleunigung in den Virtualisierungs-Produkten VMware Workstation 8.0, Fusion 4.0 und Player 4.0 bieten sollte; aufgrund eines Fehler gelingt das allerdings erst mit der eine Woche später nachgelegten Version 12.0.1. Da alle erwähnten Bestandteile für die 3D-Untersütztung unter Open-Source-Lizenzen stehen, sollten in den kommenden Monaten erscheinende Linux-Distributionen diese Komponenten mitliefern; da diesen vielfach auch der parallel zum neuen Grafiktreiber aktualisierte VMware-Maustreiber beiliegt, sollte sich die grafische Oberfläche von Gastsystemen voll bedienen lassen, ohne dass der Anwender erst Treiber im Gastsystem installieren muss.

Die X-Erweiterung Xrender wird durch die VMware-Treiber allerdings typischerweise nicht beschleunigt. Trotzdem sollen das Interaktivitätsgefühl etwa bei den von Kwin erzeugten Effekten gut sein; das geht aus einer Seite im X.org-Wiki hervor, die noch einige weitere Aspekte rund um die Treiber erläutert.