Hlavní navigace

Grafické karty nVidia v Linuxu

Miroslav Petříček

Grafické karty postavené na čipech nVidia patří mezi nejprodávanější zobrazovací adaptéry vůbec. Pokud si koupíte nový počítač, je dost pravděpodobné, že v něm naleznete právě takovouto kartu. V dnešním článku se tedy podíváme, jak lze takovou kartu rozchodit v Linuxu, a to včetně její OpenGL akcelerace.

Firma nvidia se rozhodla nepodporovat vývoj ovladačů založených na technologii DRI, jak je tomu běžné u výrobců ostatních grafických čipů, například ATI, Matroxu nebo 3Dfx. Namísto toho vyvíjí a dodává své vlastní, bohužel closed-source, ovladače, založené na rozšíření XServeru GLX. Podporovány jsou, s výjimkou čipů nv1 a Riva128, všechny grafické procesory od nVidie, tedy zejména RivaTNT, TNT2, GeForce, Geforce2 atd. Ovladače podporují i zvláštní funkce některých karet, jako je výstup na více monitorů (Twinview) a výstup na TV obrazovku (TV out).

Předpokládejme nejprve, že máte XFree správně nainstalované a karta byla konfiguračním nástrojem korektně detekována a zapsána v souboru XF86Config. Tím máte funkční X-ka, ovšem bez podpory OpenGL akcelerace. K tomu je potřeba použít zmíněné ovladače.

Ty jsou výrobcem rozdělené do dvou separátních balíčků. Jednak je to modul pro jádro „NVidia“, od kterého ještě existuje zdrojový kód, a dále je to vlastní GLX ovladač pro XFree86, který se dodává pouze v binární formě. Najdete je vedle ovladačů pro jiné OS na www stránkách výrobce.

Pokud je vaše distribuce postavena na rpm, je instalace snadná. Buď si můžete stádnout balíček připravený přímo pro vaši distribuci (podporovány jsou aktuální verze RedHatu, SuSE a Mandrake), nebo, používáte-li jádro odlišné od toho, které se dodává s distribucí (třeba jen updatované), je potřeba překompilovat si balíček s jaderným modulem:

rpm --rebuild NVIDIA_kernel-1.0-1251.src.rpm

Sestavený balíček najdete v adresáři /usr/src/redhat/RPMS/i386 nebo ekvivalentním. Po instalaci jaderného i GLX modulu (rpm -Uvh jmeno_balicku) musíte ještě pozměnit nastavení X serveru. Většinou stačí jen najít řádku

Driver "nv"

v souboru XF86Config-4 a změnit ji na

Driver "nvidia"

Čímž dojde ke změně standardního X Window ovladače na nově naistalovaný. Při startování X Window byste nyní měli vidět grafickou obrazovku s logem nVidia. Informace o zavedeném ovladači si můžete ověřit v souboru /proc/nv/card0, například:

----- Driver Info -----
NVRM Version: 1.0-1512
------ Card Info ------
Model:        RIVA TNT2 (M64)
IRQ:          9
Video BIOS:   02.05.13.00
------ AGP Info -------
AGP status:   Enabled
AGP Driver:   NVIDIA
Bridge:       Intel 440BX
SBA:          Supported [enabled]
FW:           Unsupported [disabled]
Rates:        2x 1x  [2x]
Registers:    0x1f000203:0x00000102

Nyní, když tedy máte vaši kartu v provozu, zbývá vyzkoušet, jak to vlastně funguje. Prohlížení grafických GL screensaverů vás asi rychle přestane bavit, a tak si co nejdříve pořídíte nějakou tu 3D hru. Dostatečný výběr naleznete například na téhle stránce.

Nejpopulárnější 3D hrou je nepochybně Quake, jejíž poslední verze Quake 3 byla portována i na Linux. Narozdíl od jiných Linuxových komerčních her, které se shánějí jen obtížně, zde máte možnost koupit si běžně dostupnou verzi pro Windows a stáhnout si k ní asi 30 MB binární balíček, který ji oživí v Linuxu. Co se týče výkonu karet nVidia v Linuxu, ve hře Quake III jsem nezaznamenal výraznější rozdíl mezi výkonem mého počítače a obdobného systému s Windows, o čemž ostatně svědčí i tento srovnávací test publikovaný na známých stránkách Tom's Hardware Guide. Stejně tak kvalita výstupního obrazu byla zcela totožná s výstupem získaným ve Windows.

Pokud si nechcete kupovat celou hru, můžete si na stejném místě stáhnout její demoverzi, která je omezena jen počtem hracích levelů.

Quake

Pokud by se vám zdála rychlost vykreslování pomalá, máte podobně jako ve Windows možnost přetaktovat si grafický čip. Potřebujete k tomu pevné nervy a program nvclock, který naleznete tady. Jde o jednoduchou utilitu, která umožňuje zvýšit frekvenci taktování grafického čipu a pamětí nad standardní úroveň, určenou výrobcem karty. Protože se jedná o poměrně drastickou operaci, která může vést k nestabilitě počítače nebo dokonce k poškození grafické karty, měli byste si její použití dobře rozmyslet.

Program je možné použít buď ve znakovém režimu, nebo jej ovládat přes dodávané grafické rozhraní GTK nebo Qt. Jeho ovládání je opravdu jednoduché, jak je patrné z přiloženého obrázku.

Ovládání

Udělal jsem sérii měření na mé tak trochu obstarožní kartě RivaTNT2 M64, při které jsem zkoušel po krocích zvyšovat taktování čipu i pamětí a současně měřil snímkovou frekvenci v demu Quake III. Výsledky ukazují, že moji kartu bylo možné pomocí nvclocku přetaktovat ze 125/125 až na 160/150, přičemž výkon se zvýšil ze 38 fps na 45.8 fps, což je více než 20%. Z měření také vyplývá, že frekvence pamětí má na výkon větší vliv než taktování čipu. Při vyšších rychlostech než uvedených 160/150 docházelo k chybám v obraze a stalo se mi také, že mi úplně zamrzl počítač. Platí tedy stejné zásady jako při přetaktování procesoru – pokud chcete stabilní systém, nepřetaktovávejte, a když už, tak si alespoň opatřete odpovídající chlazení, protože okolí grafické karty se přetaktováním znatelně více zahřívá.

Zajímavé odkazy:

Našli jste v článku chybu?