25 évvel a 3dfx bukása után kapott új Linux-illesztőt a Voodoo 3

Voodoo3-2000AGP

Negyedévszázaddal a gyártó bukása után ismét életre kelnek a retró számítástechnika legikonikusabb videokártyái. A 3dfx Voodoo 3 chipek mostantól PC BIOS jelenléte nélkül, közvetlenül Linux alatt is elindulhatnak. A Linux 7.3-as kernelverzió beolvasztott frissítései között megjelent egy olyan specifikus javítás, amely a kilencvenes évek végének népszerű grafikus gyorsítóit vértezi fel új képességekkel.

A változtatás a nyílt forráskódú operációs rendszer keretrendszerében régóta meglévő tdfxfb framebuffer driver-t érinti. Bár a 3dfx Interactive 2000 decemberi összeomlása óta a cég eszközei nem kaptak hivatalos illesztőprogramokat, a nyílt forráskódú fejlesztők még mindig találnak egyedi felhasználási módokat a megmaradt hardverekhez.

A kilencvenes évek legendájának utóélete

A 3dfx Interactive a kilencvenes évek második felében a 3D-s grafikus gyorsítás úttörőjének számított. A Glide API és a Voodoo termékcsalád meghatározó szerepet játszott a PC-s játékipar átalakulásában. A cég azonban a piaci verseny éleződésével és a pénzügyi nehézségekkel küzdve 2000 végén csődöt jelentett, szellemi tulajdonát és eszközeinek jelentős részét pedig az Nvidia vásárolta meg. Az elkötelezett retró közösség és a nyílt forráskódú fejlesztők ennek ellenére az elmúlt 25 évben folyamatosan életben tartották a megmaradt Voodoo kártyákat.

A Linux kernel berkein belül az utóbbi időben komoly viták folytak a régi hardverillesztők megtartásáról. A fejlesztők fontolóra vették a kihasználatlan, évtizedes kódrészletek eltávolítását, mivel a modern mainline kernelhez érkező automatizált hibajelentések jelentős terhet róttak a karbantartókra. A tdfxfb illesztőprogram mostani frissítése mégis bizonyítja, hogy a retrohardware-támogatásnak továbbra is van helye a Linux ökoszisztémában.

Önálló kártyainicializálás a Linux 7.3-as kernelben

Az FBDEV alrendszerhez érkezett frissítés lényege, hogy a kernel tdfxfb illesztőprogramja mostantól saját maga képes elvégezni a Voodoo 3, Voodoo 4 és Voodoo 5 kártyák alapvető beállításait. Korábban a driver abból a feltételezésből indult ki, hogy az alaplap rendszerszintű firmware-e – a hagyományos PC-s Video BIOS – a gép indításakor már felismerte és működőképes alapállapotba hozta a grafikus chipeket.

Ez a folyamat az x86-os személyi számítógépeken természetes volt, ám a retró számítástechnikai projektek világában gyakran okozott fennakadást. Amennyiben egy 3dfx Voodoo kártyát olyan platformba építettek be, ahol a PC-s Video BIOS kódja nem futott le az indítási folyamat során, a videokártya inaktív maradt, és a Linux nem tudott képet megjeleníteni rajta.

A PC BIOS függőség megszüntetésének technikai háttere

Daniel Palmer nyílt forráskódú fejlesztő munkájának köszönhetően az új illesztőprogram közvetlenül a kártya saját ROM-jából olvassa ki a szükséges beállítási értékeket. A driver a beolvasott paraméterek alapján végrehajtja a grafikus chip és a memóriamodulok inicializálását, helyettesítve a hiányzó firmware-lépéseket. A fejlesztési folyamat hibakeresési szakaszában mesterséges intelligencián alapuló eszközöket is felhasználtak a kód finomítására.

A tesztelést x86_64 architektúrán, valamint egy Mediator PCI híddal felszerelt Amiga 4000 számítógépen is sikeresen lefolytatták. A javítás biztosítja, hogy a Voodoo 3 grafikus kártyák különleges hardveres környezetben is képessé váljanak a Linux virtuális konzol vagy a legegyszerűbb képernyőmátrix meghajtására. A kernel önállóan hozza létre a /dev/fb0 eszközt, ami elegendő ahhoz, hogy a megjelenítőn karakteres felület vagy alapszintű képi információ jelenjen meg.

Keretek és korlátok a modern grafikus rendszerekben

Bár az illesztőprogram frissítése figyelemreméltó mérnöki teljesítmény a retró közösség számára, a fejlesztés célja kifejezetten célzott és korlátozott. A tdfxfb a Linux régi framebuffer architektúrájára épül, így nem helyettesíti a modern DRM és KMS grafikus alrendszereket. A frissítés nem biztosít Mesa grafikus stacket, nem támogatja a mai 3D gyorsítási szabványokat, és nem alkalmas a modern ablakkezelők futtatására sem.

A módosítás értéke elsősorban az ezoterikus hardverarchitektúrákat használó gyűjtők és fejlesztők számára jelentős. A 3dfx Voodoo kártyák továbbra is jelen vannak olyan egyedi projektekben, ahol nem x86-os processzorok köré épített retró rendszereken futtatnak tiszta Linux környezetet. A Linux kernel fejlesztői ezzel a lépéssel megmutatták, hogy a nyílt forráskódú ökoszisztémában a több mint két évtizedes hardverek sem merülnek teljesen feledésbe.

Szélesebb körű retró támogatás a Linux 7.3-ban

A tdfxfb illesztőprogram mellett a Linux 7.3-as kernel más korabeli architektúráknak is figyelmet szentel. Ugyanebben az FBDEV frissítési csomagban az Atari számítógépekhez tartozó atafb driver is bővült. Az új kód kiegészítő színmélységeket tesz elérhetővé – beleértve a 8 bites chunky, valamint a 16 bites RGB565 és ARGB888 módokat –, emellett támogatja az Atari Falcon gépekhez készült SuperVidel SuperBlitter hardveres koprocesszor-bővítést is.