V tomto článku se podíváme nato jak nejlépe nainstalovat binární ovladače od nVidie.
Oficiální příručku k instalaci ovladačů nVidia naleznete na stránkách gentoo.org.
Ovladače nVidia grafických karet v stromu portage jsou vydávány samotnou nVidií a jsou postaveny proti ovladačům v jádře. Obsahují binární soubory, které zastávají tu těžší práci a to komunikaci s grafickou kartou. Ovladače sestávají z dvou částí : modul pro jádro a knihovny pro X11. Oboje dvě části jsou obsaženy v jednom balíčku.
Aktuální balíček x11-drivers/nvidia-drivers odporuje většinu současných karet. Pro více informací se podívejte na seznam podporovaných karet. Tento balíček si však nerozumí se staršími kartami nepodporované nVidií. Pokud tedy vlastníte starší kartu budete muset "zamaskovat" aktuální verzi a nastavit si starší verzi. Nejlépe uděláte když vyzkoušíte více verzí a najdete pro svoji kartu ty nejvhodnější ovladače.
Jak bylo již zmíněno první část ovladače je jaderný modul a proto musíte nejprve zkontrolovat zda symlink /usr/src/linux ukazuje na vámi používané jádro. Jaké jádro používáte zjistíte příkazem uname -a. nebo jednodušeji ověříte (popřípadě změníte) příkazem eselect a to eselect kernel show.
| Poznámka: Pokud pro sestavení jádra používáte genkernel přeskočte následující úpravy jádra. |
Aby se modul ovladače automaticky načetl musíte mít tuto volbu povolenou v jádře:
Také je potřeba povolit podporu MTRR (Memory Type Range Register) a podporu agpart:
Na architekturách x86 a AMD64 dochází ke konfliktům mezi binárními ovladači a těmi integrovanými v jádře. Kompilujete-li tedy jádro pro jednu z těchto architektur, budete muset zcela odstranit podporu v jádře:
Dobrou alternativou k framebufferu může být VESA:
Pro více informací viz /usr/src/linux/Documentation/fb/vesafb.txt (používáte-li vesafb), případně /usr/src/linux/Documentation/fb/.
Samotná instalace je velice jednoduchá stačí napsat:
| Poznámka: Pokaždé, kdy zkompilujete nový kernel nebo jen překonfigurujete používaný, musíte spustit emerge nvidia-drivers, aby se přeinstalovaly moduly závislé na přesné konfiguraci jádra. |
Po dokončení instalace načteme modul do paměti:
Jakmile jsou nainstalovány správné ovladače, zbývá nastavit X server, aby používal ovladač nVidia.
Otevřte /etc/X11/xorg.conf vaším oblíbeným editorem (jako např. nano nebo vim) a prohlédněte si sekci Device. Tam je potřeba změnit Driver:
Soubor: /etc/X11/xorg.conf
Pro podporu 3D akcelerace je nutné v sekci Module zajistit, aby se načetl modul glx a nenačítal modul dri:
Soubor: /etc/X11/xorg.conf
Dále v sekci Screen zajistíme, že hodnota DefaultDepth je nastavená na 16 nebo 24, nebo že podsekce Display mají Depth nastaven jen na hodnoty 16 or 24. Bez toho se rozšíření nvidia-glx není schopné spustit.
Soubor: /etc/X11/xorg.conf
Pro ovladače nVidia existuje více voleb, kterými můžete ovlivnit chování grafické karty. Volby se píší do sekce Device. Úplný seznam najdete v dokumentaci k ovladačum a to v /usr/share/doc/nvidia-drivers-*/README.gz. Některé z nich zde představíme:
Pomocí eselect nastavíme, aby X server používal nVidia knihovny:
Aby uživatel mohl používat nVidia ovladače, musí být členem skupiny video. Tento krok není úplně nezbytný, pokud nepoužíváte udev, ale v zásadě to vůbec nebolí a pro váš systém je to kousek naděje že pojede správně i po další aktualizaci systému.
Po těchto nastaveních je nutné restartovat X server. Nejednodušším způsobem to uděláte, když se odhlásíte z vaší současné relace a použijete klávesovou zkratku CTRL+ALT+Backspace.
Některé nástroje, jako mplayer nebo xine-lib, používají USE flag nvidia, který povoluje XvMCNVIDIA, což je užitečné při sledování filmů s vysokým rozlišením. Pro povolení je potřeba přidat nvidia do nastavení proměnné USE v souboru /etc/make.conf. Od uvedení modulárního X serveru je také dobré nastavit podporu nVidie pro x11-base/xorg-server a to uděláme přidáním řádku do již zmiňovaného /etc/make.conf.
Soubor: /etc/make.conf
Poté je potřeba spustit příkaz emerge -uDN world, aby se znovu přeložily všechny balíčky ovlivněné změnou v USE.
Pro kontrolu výsledku našeho snažení spustíme příkaz glxinfo, měl by potvrdit funkci přímého renderování.
Výpis příkazu glxinfo:
Ke zjištění skutečného renderovacího výkonu a FPS můžeme spustit glxgears.
Tím, že ovladače jsou binární balíček a nejsou k dispozici zdrojové kódy, je možné, že narazíte na nějaké problémy. Zde se pokusíme ty nejčastější podchytit a vysvětlit.
Když vám nejedou ovladače tak se doporučuje (hlavně u novějších karet) vyzkoušet testovací Maskované balíčky ovladačů. Jednoduše napíšete název balíčku do /etc/portage/package.keywords nebo napište :
Pokud máte starší grafickou kartu, zkuste použít starší verze ovladačů.
Při problémech s 2D nVidia akcelerací je pravděpodobné, že jde o problém s MTRR a nastavením write-combining. Pro ujištění zkontrolujte /proc/mtrr:
Každý řádek by měl obsahovat "write-back" nebo "write-combining". Pokud najdete řádek s "uncachable", bude potřeba změnit nastavení BIOSu.
Restartute PC a spusťte BIOS, pak najděte MTRR (pravděpodobně někde v "CPU Settings") a změňte nastavení z "continuous" na "discrete". Potom nabootujte zpátky do Linuxu. V /proc/mtrr by se už "uncachable" nemělo vyskytovat a 2D akcelerace by měla fungovat bez problémů.
Pokud se vám objeví ve výpisu /var/log/Xorg.0.log chybová hláška:
potom je to proto, že jste už dlouho svůj systém neaktualizovali. Příčina je v tom, že balíček sys-libs/glibc není zkompilován s use proměnnou NPTL. Pokud rekompilujete tento balíček s uvedenou proměnou, tak tento problém zmizí.