Kernel-Log – Was 2.6.29 bringt (2): Grafik – Kernel verwaltet Bildschirmauflösung

2.6.29 wird Unterstützung für Kernel-Based Mode-Setting mitbringen. Das soll Bildflackern beim Umschalten zwischen X- und Text-Konsole eliminieren, die Zuverlässigkeit der Suspend-Modi verbessern und einige andere Fehler und Beschränkungen beseitigen.

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

Mit der Freigabe von von 2.6.29-rc1 hat Linus Torvalds am Wochenende die erste, Merge Window genannte Phase im Entwicklungszyklus beendet, in der er die größeren Neuerungen für die nächste Kernel-Version ins Quellcodeverwaltungssystem des Linux-Kernels einpflegt. Damit befindet sich die Entwicklung von 2.6.29 nun in der zweiten, üblicherweise acht bis zehn Wochen langen Stabilisierungsphase, in der die Kernel-Entwickler überwiegend Fehlerkorrekturen und kleinere Verbesserungen einpflegen, die keine neuen Fehler nach sich ziehen sollten. Dass größere Änderungen in der Stabilisierungsphase wieder rausfliegen, kommt nur selten vor, sodass das Kernel-Log schon jetzt im Rahmen der Mini-Serie "Was 2.6.29 bringt" die wichtigsten für 2.6.29 erwarteten Neuerungen beschreiben kann.

Knapp eindreiviertel Jahre nach der ersten größeren Ankündigung haben die Kernel-Entwickler die Unterstützung für Kernel-Based Mode-Setting (KMS) für neuere Intel-Grafikhardware in den Hauptentwicklungszweig von Linux integriert (unter anderem 1, 2, 3). Mit dieser Technik übernimmt der Kernel deutlich mehr Kontrolle über die Grafikhardware und stellt bei aktivem KMS den zum jeweiligen Bildschirm passenden Grafikmodus ein, sobald alle dazu nötigten Hardware-Komponenten (ACPI, PCI, Grafikhardware und Co.) initialisiert wurden.

Aus Sicht des Anwenders unterscheidet sich das erst einmal nicht weiter von Framebuffergrafik mit passendem Treiber – anders als bei Framebuffergrafik kümmert sich der Kernel aber auch im späteren Betrieb um das Einstellen der Bildschirmauflösung und nimmt dem X-Server diese und anderen Aufgaben ab. Sofern X-Server und mit KMS betreute Textkonsole die gleiche Bildschirmauflösung nutzen, braucht der Kernel den Grafikchip und die Bildschirmauflösung beim Umschalten zwischen grafischer Oberfläche und Konsole nicht mehr neu einstellen; bisher war das beim Umschalten auf VGA-Text- oder Framebuffer-Konsole immer nötig gewesen, da der Kernel nicht wusste, wie der X-Server den Grafikchip konfiguriert hatte. Der Wechsel – etwa beim Booten, wenn der X-Server das erste Mal startet – erfolgt so durch KMS deutlich schneller und wird nicht mehr wie bisher durch Bildflackern oder kurze Aussetzer gestört

Da mit KMS der Kernel die Grafikhardware kontrolliert, sollen damit auch Probleme der Vergangenheit angehören, die entstehen, wenn sich VGA-Konsole und Framebuffer-Treiber, Direct Rendering Manager (DRM) und verschiedene Userspace-Programme inklusive des X-Servers beim Zugriff auf die Grafikhardware in die Quere kommen. Mit KMS kümmert sich der Kernel nach dem Aufwachen aus dem Suspend-Modus zudem um die komplette Re-Initialisierung der Grafikhardware, was Probleme bei der Nutzung der Suspend-Modi beheben soll.

Kernel-Log – Was 2.6.29 bringt Weitere Teile aus der Kernel-Log-Mini-Serie "Was 2.6.29 bringt": 1. Netzwerk – "Mistige" WLAN-Treiber, Wimax- und AP-Unterstützung Der Artikel "Höher und weiter – Die Neuerungen von Linux 2.6.28" bietet eine Übersicht über die Neuerungen der derzeit aktuellen Kernel-Version der Hauptentwicklungslinie. Das bei der Freigabe dieses Artikels neueste reguläre Kernel-Log beschäftigt sich ebenfalls kurz mit 2.6.29-rc1, beschreibt einige Neuheiten rund um Treiber für X.org und erwähnt im Kernel-Log-Staccato kurz zahlreiche weitere Geschehnisse rund um den Linux-Kernel und andere Hardware-nahe Linux-Software. Ältere Kernel-Logs finden sich über das Archiv oder die Suchfunktion von heise open.

Auch soll der X-Server in Zukunft mit Hilfe von KMS ohne Root-Rechte laufen können; das und einige andere mit KMS einhergehende Verbesserungen sollen Vorteile für den parallelen Betrieb mehrerer X-Server bringen, zwischen denen Nutzer hin und her wechseln können (Fast-User-Switching). Dank KMS soll Linux dem X-Server in Zukunft zudem die Kontrolle entreißen können, um im Fall eines schweren Kernel-Problems (Kernel Panic) Angaben zur Fehlerdiagnose auf dem Bildschirm auszugeben, wie es Windows beim gefürchteten Blue Screen macht – in Anlehnung an diesen sprachen einige Entwickler in der Vergangenheit von einem "Blue Penguin Of Death", der aber mit dem für 2.6.29 aufgenommenen Code nicht möglich ist.

Damit sich X-Server und Kernel nicht um den Zugriff auf die Hardware streiten, müssen der X-Server und dessen Grafiktreiber KMS auch unterstützen. Wie der für den DRM-Code des Kernel zuständige X- und Kernel-Hacker Dave Airlie in der Anfrage zum Einpflegen der von ihm gesammelten Patches aber ausdrücklich betont, sind diese Teile noch in Entwicklung und KMS vorerst nur für Entwickler gedacht; ohne passende Userspace-Unterstützung sollte man KMS bei der Kernel-Konfiguration daher nicht aktivieren.

Bis der Kernel KMS mit Radeon-Hardware beherrscht, dürfte noch einige Zeit vergehen: Der durchaus schon vorhandene KMS-Code für Radeon-GPUs setzt auf den TTM Memory Manager statt auf den jüngeren, mit 2.6.28 aufgenommenen und bislang auf Intel-Hardware abgestimmten Graphics Execution Manager (GEM). Der TTM-Code ist aber laut Dave Airlie derzeit nicht gut genug, um ihn in den offiziellen Kernel zu integrieren. Noch länger dürfte es nach dem derzeitigen Stand wohl dauern, bis KMS mit einem Standard-Kernel und Nvidia-Hardware möglich ist, sofern nicht die Entwickler des mit Hilfe von Reverse Engineering entwickelten Nouveau-Treibers ausgereiften KMS-Code aus dem Hut zaubern oder sich Nvidia entschließt, KMS-Unterstützung beizusteuern. Insbesondere letzteres dürfte die Zuverlässigkeit der Suspend-Modi verbessern, da diese beim Betrieb mit Open-Source-Treibern für Nvidia-Grafikhardware vielfach nicht zuverlässig arbeiten.

Den weiterhin auf Intel-Hardware abgestimmten Graphics Execution Manager (GEM), der sich um die Verwaltung des Arbeitsspeichers kümmert und den Zugriff auf die Recheneinheiten der GPU koordiniert, haben die Entwickler mit 2.6.29 um neue Funktionen erweitert (1, 2). Einige weitere für 2.6.29 aufgenommene Änderungen rund um Unterstützung für Grafikhardware finden sich in der folgenden Liste, den zwei Anfragen zum Einpflegen von Patches von Dave Airlie (1, 2) sowie direkt im Quellcodeverwaltungssystem von Linux.

(thl/c't) (thl)