Pokusím se zde popsat návod, jak jsem tento problém řešil já."How-to" na internetu mi moc nevyhovovaly z důvodu, žeodkazovaly na již nefunkční odkazy. Tím pádem je nebylo možné použit jsou zastaralé.
Společnost 3dfx vznikla roku 1994 a jejím zakladatelem byl Gordon Campbell. Vedoucí celého vývoje byl Scott Sellers.
Roku 1996 vydala firma první graficky akcelerátor a to Diamond Monster 3D, jednalo se o přídavný akcelerátor využívající podporu API 3dfx Glide*, který je založen na OpenGl* vytvořen firmou SGI (Silicon Graphic Inc.). Karta vyžaduje ještě 2D kartu. Jako první hra, která dokázala využit tento akcelerátor, byl první díl Lary Croft od společnosti Core design. Karta měla značnou výhodu v tom, že odlehčila procesoru, jádro mělo takt 45 - 50 Mhz a byla vyráběna 50-ti mikronovou technologii.
V první polovině roku 1997 se na trh dostala karta zvaná Voodoo Rush, která si ovšem tak dobře nevedla. Jádro běželo na 45Mhz a výrobní technologie byla 0,35 mikronu.
V listopadu 1998 se na trh dostává přídavný akcelerátor zvaný Voodoo 2, který je osazen 8 nebo 12M pamětí a takt se pohyboval v rozmezí od 90 - 100 0,35m, záleželo na výrobci. Karta podporuje zapojení do tzv. SLI (Scan-Line Interface) modu. Pomocí speciálního kabelu s druhou Voodoo 2-takto propojené karty dosahovaly rozlišení až 1024x768. U 12-ti megabajtových modelů takto propojené karty obsahovaly 24Mb paměti. V polovině roku představila společnost 3dfx kartu, která na sobě nesla jak 2D jádro, tak 3D. Jednalo se o VooDoo Banshee o taktu 100 - 125 0,35 mikronu ve verzích pci i agp a 16 mb. Koncem roku 1998 koupila společnost 3dfx OEM-výrobce grafických karet STB. Tento rok byl pro firmu velmi úspěšný. Vydává ještě další kartu tzv. low-end a to Voodoo 3 velocity 100 s pamětí o velikosti 8mb a její o něco silnější kolegyni Voodoo 3 velocity 200 s 16Mb pamětí.
Rok 1999 - na trhu se objevuje nova grafická karta a to Voodoo 3 ve verzích 2000 o taktu 143 a 3000 o taktu 166, jednalo se o verze pci i agp se zpožděním. Téhož roku byla uvedena ještě karta Voodoo 3 3500 doplněna o TV-tunner a fm-tunner na taktu 183. Ještě v tomto roce byla ohlášena karta Voodoo 4 4500 166mhz 0,25 mikronu s 32Mb a dána na trh byla začátkem roku 2000.
Koncem roku 2000 byla vydána Voodoo 5 5500 166 (143-183) Mhz 0,25 mikronu s 64 a dvěma čipy vsa 100 a ne moc rozšířená Voodoo 5 6000 o 4 čipech VSA 100 a 128Mb pamětí.
To bylo něco úvodem a teď k samotnému zprovoznění
Jako první bude zapotřebí vlastnit nějakou tu kartu od již zmíněné firmy a to 3dfx. Návod se bude týkat karet Voodoo 3 a výše, protože pro Voodoo 1,2 je postup odlišný. Dále bude potřeba navštívit pár odkazů a udělat několik činností, které popíšu níže. Dalším předpokladem je OS Linux a to je pro začátek asi vše. Testováno na:
Slackware9.1,fluxbox 0.9.9 a 0.9.10 develop version Kernelech 2.6.x radu 2.6.4 jsem nezkoušel Xfree 4.3.0 Voodoo 5,3,Banshee.
Navštívíme stránku http://sourceforge.net/projects/glide/
a stáhneme binární verzi glidu. Po dotaženi rozbalíme a soubory
libglide3.a a libglide.so přesuneme do /usr/lib/*.* přesně jak píšou
v přiloženém txt souboru. Když se vás bude systém ptát na přepsání,
potvrďte OK.
Nyní se pustíme do nastavování kernelu, což může být trochu složitější než předchozí krok, ale ve skutečnosti se není čeho bát. Můžeme použít stávající kernel z distribuce nebo stáhnout novější. Nový kernel stáhneme z kernel.org. Zaměříme se na řadu 2.6.x a stáhneme poslední stabilní. Podotýkám, že tento krok není tšeba (myslím stahovat nové jádro), ale pro optimalizaci systému je žádoucí. Po stažení nového jádra v době psaní je to 2.6.8.1 (stable), obsah archivu nakopírujeme do /usr/src/linux-CISLO-VERZE. Nyní je potřeba vytvořit symbolický odkaz na nové zdrojové soubory pod názvem Linux. Ve stejném adresář, pokud existuje, tak stávající smažeme a pomoci příkazu ln -si vytvoříme nový aktuální.
Výpis může vypadat takto:
linux -> /usr/src/linux-2.6.5/
linux-2.6.5
Je vidět, že používám jádro verze 2.6.5 Pokud máme již připraveno, vrhneme se na nastavení konfiguračního souboru a to takto:
cd /usr/src/linux;make menuconfig
Vyskočí jakési okno. Popíšu zde pouze jak nastavit ovladač pro Voodoo kartu, nikoliv jak optimalizovat kernel pro váš systém
Takže zvolíme položky :
Device Drivers --->
Character devices --->
[*] Direct Rendering Manager
(XFree86 4.1.0and higher DRI support)
Otevře se nám nabídka, kde vybereme
<M> 3dfx Banshee/Voodoo3+
M značí, že se jedná o modul; *, že se zakompiluje přímo do kernelu. Zvolme tedy M, ať nám jádro tolik nezabírá.
Jestliže budeme chtít v konzoli používat driver využívající FrameBuffer, například, protože budeme chtít nastavit rozlišení a frekvenci obrazovky nebo přhrávání videa, tak zakompilujme i tento driver tdfxfb najdeme ho v:
Device Drivers --->
Graphics support --->
[*] Support for frame buffer devices
dále v této podsekci zvolíme driver pro konzoli a to
<*> 3Dfx Banshee/Voodoo3 display support
JAKO * !
přesuneme se do podsekce
Console display driver support --->
kde zaškrtáme tyto volby:
[*] Video mode selection support
<*>Framebuffer Console support
[*] Select compiled-in fonts
[*] VGA 8x16font
Podotýkám, že tento odstavec (frambuffer) není nutný pro zprovoznění akcelerace v systému X, jedná se o konzolový ovladač, tudíž lze odstavec přeskočit, pokud nemáte zájem tuto funkci využívat.
Vyjedeme zpět a dáme uložit změny. Poté stačí zadat kombinaci make
modules;make modules_install
a potřebné moduly, či modul se
nám nainstaluje. Pokud jsme si optimalizovali kernel nebo použili
framebuffer, bylo by před kroky make odules;make
modules_install
potřeba provést make bzImage
a
pote nainstalovat moduly, u jader 2.6.x odpadá make dep.
Po nainstalovaní si ověříme, zda se modul vůbec nainstaloval a to
takto: modinfo tdfx
(tdfx je název modulu neboli
ovladače) výpis u mě je :
bash-2.05b# modinfo tdfx
author: VA Linux Systems Inc.
description: 3dfx Banshee/Voodoo3+
license: GPL and additional rights
vermagic: 2.6.7 preempt K7 gcc-3.2
depends:
To značí, že modul je v systému.
Pokud by se nám z nějakých důvodů ovladač z jádra nezamlouval (najdou se i tací), je tu možnost stáhnout ze stránky www pomoci CVS DRM (Direct rendering manager), který podporuje DRI (Direc rendering infrastructure) jsou tam přesně popsány kroky, jak to stáhnout. Potřebujeme tedy jenom drm, pokud by přesto někdo nevěděl, jak stáhnout-tak pomocí:
cvs -d:pserver:anonymous@cvs.freedesktop.org:/cvs/dri login
cvs -z3 -d:pserver:anonymous@cvs.freedesktop.org:/cvs/dri co drm
Po stažení vstoupíme do adresáře drm, tedy třeba cd
/home/novak/drm/linux-2.6
po vstupu do daného adresáře zadáme
příkaz make, pro zkompilování potřebných ovladačů, vznikne jich více,
ale nás zajímají pouze tdfx. Lze zkompilovat i s omezením jen na
konkrétní driver-takto make DRM_MODULES="tdfx"
.Driver
si zkopírujeme na nějaké příslušné místo cp tdfx.ko
/příslušné/místo
tento driver obsahuje navíc parametr pro
počet grafických karet v pc, ale nevidím v tom moc smysl. Kdo má
v pc více jak jednu grafickou kartu, že ? I když možná někdo ano.
Modul pak načteme do jádra pomocí insmod
/prislusne/misto/tdfx.ko
. Tento ovladač je nezávislí na jádře,
jak se můžeme dočíst v dokumentaci.
No, řekl bych, že nejhorší je za námi. Teď už jen upravit konfigurační soubor X-ek a můžeme začít využívat 3d akceleraci. Pokud se uvedené věci ve vašem konfiguračním souboru nenachází, tak budeme muset vyhledat sekci:
Načtení modulu pro GLX a DRI
Load "dri"
Load "glx"
EndSection
Zajištění užití akcelerace i ostatním uživatelům
Section "DRI "
Mode 0666
EndSection
ted vyhledejme tuto sekci:
Section "Device"
Identifier "Voodoo5" # typ karty
VendorName "3dfx" # výrobce
Driver "tdfx" # Ovladač zařízení,měl by se načíst při spuštění X
EndSection
typ karty si můžeme vymyslet, ale musí souhlasit s tím, co uvedeme v sekci monitor u položky Devices viz. Dále driver zapíšeme pod jeho názvem, tedy tdfx a výrobce si můžeme také vymyslet.
Nyní najdeme sekci :
Section "Screen"
Identifier"Screen 1"
Device "Voodoo5" # Zařízení
Monitor "My monitor" # Název monitoru
No a pokud to vyplníme dle přiložených údajů, uložíme.
Restartujeme X-ka ctrl+alt+backspace a znova nahodíme, pokud
jste výše zmíněné kroky prováděli v konzoli, tak pouze zapneme
x-ka pomoci příkazu startx
. Pokud jsem provedli kroky
správně, měly by x-ka naskočit, pokud ne zkontrolujeme údaje v
X86config, popřípadě logy. Jestliže narazíme na výpis něco v tom
smyslu, že nelze nalézt tdfx ovladač, zkontrolujeme, zda se nám
"natáhl" do jádra příkazem lsmod | grep tdfx
,
když se ve výpisu neobjeví, tak ho tam budeme muset vložit ručně a to
modprobe tdfx
. Pro odstranění slouží příkaz rmmod
tdfx
.
Akceleraci zjistíme takto:
bash-2.05b$ glxinfo | grep rendering
direct rendering: Yes
Pokud vidíme Yes, můžeme si pogratulovat, akcelerace je funkční, pokud ne, je něco špatně. Příčin může být mnoho: jako první bych zkusil projít výše uvedené kroky znovu a pokud ani to nezafunguje, tak mě zkuste kontaktovat, pokusím se pomoci.
Poslední ovladač je psaný pro Voodoo 3 a novější modely s tímto ovladačem fungují, ale odrazilo se to na jejich výkonu. Zejména modely V5, kde je výkon velice žalostný. Pokud budete chtít otestovat funkčnost na nějaké hře, doporučuji Unreal Tournament, důvodem je jeho snadná instalace v Linuxu a "dostačující" plynulost chodu.
Ještě jako příklad přiložím svůj X86config pro představu, jak by to asi mělo být.
Odkaz na config je zde.
V případě nejasností, či nepřesností v návodu prosím o kontakt.
Glide
Byl vyvíjen jako implementace pro DOS, Windows, a Macintosh, na Linux ho portoval Daryll Strauss. Jedna se o knihovnu, kterou využívá 3dfx hardware.
API (Application Programming Interface)
Je soubor programovacích funkcí a procedur s přesně definovaným způsobem chovaní, jedná se o standart pro 3D grafiku a renderování.
OpenGL
Dalo by se říci, že se jedná o softwarové rozhraní ke grafické kartě. Vyvinuto bylo společností SGI na základě produktu Iris GL. Hlavní sila OpenGL je v tom, že je nezávislí na HW platformách a na programovacím jazyku. Pomoci OpenGl lze plně využít možnosti grafické karty.
Mesa
Mesa je volna implementace OpenGL API, napsaná Brianem Paulem, za pomocí mnoha dalších vývojářů. Nejedná se o plnohodnotný OpenGl, ale na linuxových platformách je hojně rozšířená. Obsahuje soubor 3D grafických knihoven, který je velmi podobný jako u OpenGl.