Ovladače nVidia HOWTO

Z Gentoo Linux Wiki

Přejít na: navigace, hledání

Obsah

image:nvidia.png

[editovat] Úvod

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.

[editovat] nvidia-drivers

Aktuální balíček x11-drivers/nvidia-drivers podporuje 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. V současné době se doporučuje verze x11-drivers/nvidia-drivers-1.0.7185. Nejlépe však uděláte když vyzkoušíte více verzí a najdete pro svoji kartu ty nejvhodnější ovladače.
Seznam starších karet nepodporovaných nVidií :

  • TNT2
  • TNT2 Pro
  • TNT2 Ultra
  • TNT2 Model 64 (M64)
  • TNT2 Model 64 (M64) Pro
  • Vanta
  • Vanta LT
  • GeForce 256
  • GeForce DDR
  • GeForce2 GTS
  • GeForce2 Pro
  • GeForce2 Ti
  • GeForce2 Ultra
  • GeForce2 MX Integrated graphics
  • GeForce2 MX / MX 400
  • Quadro
  • Quadro2 Pro
  • Quadro2 EX
  • Geforce3 series too
  • Geforce4 Ti
  • Geforce4 MX

Uvedený seznam není přesný a proto je doporučeno nejprve vyzkoušet aktuální ovladače a až potom přistoupit ke starším.

[editovat] Příprava jádra

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. Nastavení symlinku nejednoduš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:

Nastavení kernelu :
Loadable module support --->
  [*] Enable loadable module support

Také je potřeba povolit podporu MTRR (Memory Type Range Register) a podporu agpart:

Nastavení kernelu :
Device Drivers --->
 Character devices --->
  [*] /dev/agpgart (AGP Support)
Processor Type and Features --->
 [*] MTRR (Memory Type Range Register) Support

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:

Nastavení kernelu :
Device Drivers --->
 Graphics Support --->
  < >   nVidia Framebuffer Support
  < >   nVidia Riva support

Dobrou alternativou k framebufferu může být VESA:

Nastavení kernelu :
Device Drivers --->
 Graphics Support --->
   <*>   VESA VGA graphics support

Pro více informací viz /usr/src/linux/Documentation/fb/vesafb.txt (používáte-li vesafb), případně /usr/src/linux/Documentation/fb/.

[editovat] image:instalace.png Instalace ovladačů

Samotná instalace je velice jednoduchá stačí napsat:

emerge nvidia-drivers
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:

modprobe nvidia
update-modules

[editovat] Nastavení X serveru

Jakmile jsou nainstalovány správné ovladače, zbývá nastavit X server, aby používal ovladač nVidia.

[editovat] Základní nastavení

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
Section "Device"
 Identifier "GeForce2 Pro/GTS"
 Driver     "nvidia"
 VideoRam   65536
EndSection

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
Section "Module"
 ...
 Load "glx"
 # Load "dri"
 # Load GLcore
 ...
EndSection

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
Section "Screen"
 ...
 DefaultDepth 24
 SubSection "Display"
  ...
 ...
EndSection

[editovat] Rozšířené nastavení

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:

Option "NoLogo" "true/false"
Umožňuje vypnout zobrazování loga nVidie při startu X serveru.
Základní nastavení je "true" (zapnuto).
Option "NvAGP" "číslo (0-3)"
Nastavuje podporu AGP.
0 : vypnout podporu AGP
1 : použití podporu AGP od nVidie, pokud je umožněna
2 : použití podpory AGPGART, musí být povolena v jádře
3 : použití nějaké podpory AGP (zkouší AGPGART, potom nVidia AGP)
Základní nastavení je "1". Nezapomeňte, že nVidia AGP nemůže fungovat pokud je v jádřě podpora AGPGART nebo je tato podpora načtena jako modul.

[editovat] Dokončení instalace

Pomocí eselect nastavíme, aby X server používal nVidia knihovny:

eselect opengl set nvidia

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.

gpasswd -a uživatel video

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
...
USE="audiofile bmp bzip2 bzlib exif gtk -kde lm_sensors mmx nls nvidia -qt -qt3 -qt4 usb"
# Nastavení Xorg
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="nv nvidia vesa"
...

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.

[editovat] Testování

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
# glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.3
...

Ke zjištění skutečného renderovacího výkonu a FPS můžeme spustit glxgears.

[editovat] image:problemy.png Problémy

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.

[editovat] Základní řešení

Když vám nejedou ovladače tak se doporučuje (hlavně u novějších karet) vyzkoušet testovací (maskovené) balíčky ovladačů. Jednoduše napíšete název balíčku do /etc/portage/package.keywords nebo napište :

echo "x11-drivers/nvidia-drivers" >> /etc/portage/package.keywords

Pokud máte starší grafickou kartu, zkuste použít starší verze ovladačů.

[editovat] 2D s více než 4Gb paměti

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:

Kontrola povolení kombinovaného zápisu
cat /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ů.

[editovat] glibc a nptl

Pokud se vám objeví ve výpisu /var/log/Xorg.0.log chybová hláška:

error while loading shared libraries: libnvidia-tls.so.1: cannot handle TLS data

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í.

[editovat] image:odkazy.png Odkazy

V jiných jazycích