Nvidia - sterowniki na kilka sposobów

Jeśli jesteś posiadaczem karty graficznej firmy Nvidia, w PLD masz różne możliwości doboru sterowników. Zgodnie z zasadą naszej dystrybucji niczego Tobie nie narzucimy, sam zdecydujesz co jest dla Ciebie lepsze, ważniejsze.

nvidia-legacy

Pakiety nvidia-legacy to sterowniki zamknęte, “firmowe”, czyli tworzone przez Nvidię. Dla świata linuksowego są udostępniane w postaci binarnej, bez możliwości zajrzenia w kod źródłowy, oraz co oczywiste edycji. Naturalnie w PLD nie będziesz musiał nic ściągać ze strony twórców twojej karty graficznej, wszystko jest już w repozytorium. Chyba nie trzeba nikogo przekonywać, że te sterowniki powinny jak najlepiej wspierać Twój sprzęt. W końcu kto lepiej wie jak działa dana karta graficzna, niż jej Twórcy?

Sterowniki legacy są dostarczane w kilku pakietach. W zależności od tego, jaki sprzęt posiadasz powinieneś zainstalować inny pakiet. Na dzień dzisiejszy są do wyboru 3:

 kernel-video-nvidia-legacy
 kernel-video-nvidia-legac2
 kernel-video-nvidia-legac3

Zasada doboru jest prosta: Im większy numer na końcu nazwy pakietu, tym nowsze karty jest w stanie obsługiwać. Dla Twojej wygody, w opisie każdej paczki znajduje się informacja, które karty wspiera. Jeśli nie wiesz jak wypisać opis pakietu, bądź go zainstalować, zajrzyj do przewodnika Poldek na co dzień.

Instalacja w PLD jest jak zwykle bardzo prosta. Wystarczy w poldku wywołać np.:

poldek:/all-avail>install kernel-video-nvidia-legacy3 xorg-driver-video-nvidia-legacy3

Drugi pakiet dotyczy wsparcia dla Xów. Teraz musimy powiedzieć serwerowi Xów, z którego sterownika chcemy korzystać. Czyli w pliku: /etc/X11/xorg.conf dopisujemy np.:

Section "Device"
      Identifier  "gf9600"
      VendorName  "nvidia"
      Driver      "nvidia"
EndSection

Najważniejsza z powyższego wpisu jest zmienna Driver, musimy ją ustawić na wartość: “nvidia”. Reszta jest opcjonalna. Teraz zostaje uruchomić nam ulubiony menadżer okien i ściskać kciuki, żeby wszystko się udało.

Znane problemy

Jeśli mamy najnowsze wersje pakietów Nvidia i Xorg, może się okazać, że nasz sysem Xów nie bedzie w stanie obsługiwać niektórych programów. Może się to objawiać w następujący sposób - podczas uruchomienia programu na konsoli wyskakuje:

X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  152 (RANDR)
  Minor opcode of failed request:  24 (RRSetCrtcGamma)
  Serial number of failed request:  74
  Current serial number in output stream:  76

W logach Xorga można wtedy zobaczyć takie komunikaty:

[  2741.865] Warning: Xalloc: requesting unpleasantly large amount of memory: 0 bytes.

Jest to spowodowane brakiem pełnej obsługi randr z Xorg przez sterowniki Nvidii.

W tej chwili (16.01.2011) jedynym sposobem obejścia tego problemu jest zbudowanie pakietu SDL bez łaty new_gamma_ramps_support, czyli kompilacja warunkowa z wyłączoną flagą new_gamma_ramp:

builder SDL --without new_gamma_ramp

Łata domyślnie dla SDL jest nanoszona, ponieważ nie powoduje ona błędów na kartach graficznych innych producentów, tj. Ati, Intel.

nouveau

Jedną z alternatyw dla zamkniętych sterowników Nvidii są otwarte sterowniki nouveau. Do ich poprawnego działania będziemy musieli zainstalować kilka pakietów:

Mesa-libGL
Mesa-dri-driver-nouveau                 
xorg-driver-video-nouveau 
xorg-xserver-libglx                   
kernel-drm         

Konfiguracja Xów jest równie prosta jak przy poprzednim sterowniku. Wystarczy zmiennej Driver nadać wartość: “nouveau”,np.:

Section "Device"
    Identifier  "gf9600"
    Driver     "nouveau"
EndSection

rendering

Po pierwsze, musimy sprawdzić czy jest włączony:

$ glxinfo | grep rendering

Oczekiwany wynik to:

direct rendering: Yes

Jeśli zamiast Yes będzie No, potrzebujemy pakietu Mesa-libGL.

Czas na prosty test karty:

$ glxgears

Powinniśmy ujrzeć obracające się trybiki - można sterować nimi za pomocą kursorów. Na konsoli zobaczymy liczbę klatek na sekundę (FPS).

Kilka słów o błędach jakie można napotkać w logach Xorga

Ten komunikat może pojawić się gdy w systemie brakuje pakietu kernel-drm:

[ 10182.764] drmOpenDevice: node name is /dev/dri/card0
[ 10182.765] drmOpenDevice: open result is -1, (No such device or address)
[ 10182.766] drmOpenDevice: open result is -1, (No such device or address)
[ 10182.766] drmOpenDevice: Open failed
[ 10182.767] [drm] failed to load kernel module "nouveau"
[ 10182.767] (EE) [drm] failed to open device
[ 10182.767] (EE) No devices detected.

Te “cuda”, mimo działającego menadżera okien, mogą pojawić się kiedy brakuje paczki: Mesa-dri-driver-nouveau:

[    22.200] (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/nouveau_dri.so failed (/usr/lib/xorg/modules/dri/nouveau_dri.so: cannot open shared object file: No such file or directory)
[    22.200] (EE) AIGLX: reverting to software rendering
[    22.200] (II) AIGLX: Screen 0 is not DRI capable
[    22.200] (EE) AIGLX error: dlopen of /usr/lib/xorg/modules/dri/swrast_dri.so failed (/usr/lib/xorg/modules/dri/swrast_dri.so: cannot open shared object file: No such file or directory)
[    22.200] (EE) GLX: could not load software renderer

nv

TODO: Może ktoś napisze jak to skonfigurować? Nigdy nie korzystałem.
pl/przewodniki/nvidia-sterowniki-na-kilka-sposobow.txt · ostatnio zmienione: 2011/01/16 01:12 przez dirdival
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light