Linux Kernel 7.3 Lets tdfxfb Initialize Voodoo 3 Without Video BIOS Setup

treiber-aus-dem-grab-linux-accd

Linux bringt mit dem Kernel 7.3 eine kleine, aber bedeutende Verbesserung für sehr alte 3dfx-Hardware: Der klassische Framebuffer-Treiber tdfxfb kann eine Voodoo 3 künftig selbst initialisieren. Damit entfällt die bisher nötige Voraussetzung, dass das Video-BIOS der Karte bereits vor dem Linux-Start ausgeführt wurde – ein Problem, das vor allem bei nicht-klassischen Setups zu “kein Signal”-Bildschirmen führen konnte.

Was angekündigt wird

Mit Kernel 7.3 erhält der Treiber tdfxfb eine Erweiterung, die die Voodoo 3 eigenständig “wecken” soll, statt weiterhin auf eine bereits erfolgte Hardware-Initialisierung durch das Karten-Video-BIOS zu setzen. Entwickler Daniel Palmer hat den konkreten Auslöser beschrieben: Eine Voodoo 3 in einem Amiga 4000 über eine Mediator-PCI-Brücke wurde zwar von Linux erkannt, ließ sich aber nicht in Betrieb nehmen – der Monitor meldete lediglich, dass kein Signal anliegt.

Praktische Auswirkungen für Nutzer

Der Kern des Problems war eine Annahme im betagten Treiber: tdfxfb erwartete, dass bereits vorher das Video-BIOS der Grafikkarte lief und die Hardware initialisierte. Bei typischen x86-PCs war das häufig der Fall. In anderen Umgebungen – etwa auf anderen Architekturen, in Systemen mit zusätzlicher “zweiter” primärer Grafikkarte oder auf modernen Firmware-Setups ohne Compatibility-Support-Modul (CSM) – kann diese Voraussetzung jedoch scheitern.

Die Änderungen in Kernel 7.3 sollen genau diese Lücke schließen: Der Treiber liest dafür notwendige Konfigurationswerte aus einer Tabelle im Video-BIOS der Karte und programmiert unter anderem Speicher, Taktgeber sowie den VGA-Kern. Dazu wächst der Treiber laut den Angaben um 155 Zeilen Code.

Welche Karten und Plattformen betroffen sind

Getestet wurde die neue Initialisierung sowohl auf einem x86-64-System als auch auf dem genannten Amiga 4000. Wichtig: Obwohl tdfxfb grundsätzlich auch Voodoo 4 und Voodoo 5 unterstützt, gilt die neue Startlogik vorerst ausschließlich für die Voodoo 3. Für die jüngeren Karten wird ein anderes BIOS-Layout verwendet.

Auch wenn die Initialisierung besser funktioniert, ist das Ergebnis keine moderne 3D-Grafiktreiber-Wende: tdfxfb bleibt ein klassischer Framebuffer. Damit können z. B. die Linux-Konsole und dafür ausgelegte Anwendungen weiterhin Bildausgabe über den Framebuffer nutzen, aber keine Unterstützung für aktuelle Grafikwege wie Mesa, Wayland oder zeitgemäßes OpenGL wird durch diese Änderung geliefert.

Was kommt als Nächstes

Parallel dazu arbeitet Palmer an einer experimentellen 3D-Ansteuerung: Über eine kleine Bibliothek und eine abgespeckte OpenGL-Umsetzung soll die Hardware direkt angesprochen werden. Laut den Angaben läuft Quake bereits auf einer echten Voodoo 3, allerdings mit geringer Leistung und Problemen beim Multitexturing. Diese Entwicklung ist jedoch nicht Bestandteil von Linux 7.3.

Zur Fehlersuche half außerdem Claude Fable 5: Das KI-Modell erstellte eine Voodoo-3-Emulation für QEMU. Der Abgleich mit echter Hardware zeigte dabei, dass zwar die Initialisierungssequenz stimmte, aber der VGA-Kern nicht gestartet wurde.

What changed

  • Kernel 7.3 erweitert tdfxfb so, dass eine Voodoo 3 nicht mehr auf bereits ausgeführtes Video-BIOS angewiesen ist.
  • Der Treiber liest Konfigurationswerte aus einer BIOS-Tabelle und programmiert u. a. Speicher, Taktgeber und den VGA-Kern.
  • Die neue Startlogik ist vorerst nur für Voodoo 3 vorgesehen (Voodoo 4/5 betroffen nicht im gleichen Umfang).
  • Keine neuen 3D- oder Modern-Grafik-Funktionen: tdfxfb bleibt ein Framebuffer-Treiber (keine Mesa/Wayland/zeitgemäßes OpenGL-Upgrade).