Gentoo Logo

Gentoon Linuxin nVidia-opas

Sisällysluettelo:

1.  Johdanto

NVidian ajurit rakennetaan tiettyä ydintä varten. Niissä on binääriosio, joka tekee raskaan työn ja näyttökortin kanssa kommunikoinnin. Ajurit koostuvat kahdesta osasta, ytimen moduulista ja X11-ajurista. Molemmat ovat samassa paketissa. Johtuen tavasta jolla ajurit on pakattu, joitain valintoja pitää tehdä ennen asennusta.

Nvidia-drivers sisältää ajurit kaikille korteille eri versioissa käytettävän laitteen iän mukaan. Käytössä on eclass-mekanismi, joka pyrkii tunnistamaan laitteen ja asentaa sopivan version.

2.  Ajurien sopivuus

Nvidia-drivers

Nvidia-drivers Tukee kaikkia nVidian näytönajureita. Saatavilla on eri versioita, joista asennetaan laitteeseen sopiva.

Uudemmat laitteet, kuten GeForcen 8-, 7-, 6- ja FX 5 -sarjojen edustajat toimivat ajuriversioilla 100.x.

Vanhemmat, kuten GeForcen 3- ja 4-sarjalaiset käyttävät ajuriversioita 96.xx. Näitä varten peitetään >=x11-drivers/nvidia-drivers-97.00 tiedostossa /etc/portage/package.mask, jotteivät uudemmat ajurit asennu.

NV2x-piiriä käyttävät laitteet, kuten TNT, TNT2, GeForce ja GeForce2 vaativat ajuriversion 71.xx, joten niitä varten peitetään >=x11-drivers/nvidia-drivers-87.00 tiedostossa /etc/portage/package.mask.

Ajuriyhteensopivuudesta x86- ja x86-64-alustoilla on lisätietoja nvidian ajurijulkaisutiedotteessa.

3.  Korttien säätäminen

Ytimen asetukset

Nvidian ajurit käyttävät nykyistä ydintä. Ajurit asentuvat moduuliksi, joten ytimeen pitää asentaa moduulituki. Jos ydin on tehty komennolla genkernel all, kaiken pitäisi olla kunnossa. Muutoin pitää tarkistaa, että moduulit ovat käytössä:

Koodilistaus 3.1: Moduulituen lisäys

Loadable module support --->
  [*] Enable loadable module support

Myös Memory Type Range Register pitää olla päällä:

Koodilistaus 3.2: MTRR:n käyttö

Processor and Features --->
  [*] MTRR (Memory Type Range Register) support

Jos käyhtössä on AGP-kortti, voi käyttää agpgart-tukea ytimestä, joko käännettynä tai moduulina. Jollet käytä ytimen agpgartia, ajureissa on oma NvAGP-toteutus. Jotkin järjestelmät toimivat paremmin ytimen agpgartilla, jotkin nVidian. Tämä kannattaa testata itse. Jollet osaa päättää, käytä ytimen agpgartia:

Koodilistaus 3.3: Agpgartin käyttö

Device Drivers --->
Character devices --->
<*> /dev/agpgart (AGP Support)

Huomaa: AMD64:llä IOMMU määrää agpgartin.

Arkkitehtuurikohtaiset

Tärkeää: X86- ja AMd64-suorittimille saatava ytimen ajuri ei toimi yhdessä nVidian binääriajurin kanssa. Näissä tapauksissa nVidia-tuet ytimestä pitää poistaa seuraavasti:

Koodilistaus 3.4: Ydin-ajurien poistaminen

Device Drivers --->
Graphics Support --->
< >   nVidia Framebuffer Support
< >   nVidia Riva support

Vaihtoehtona on VESA:

Koodilistaus 3.5: Lisää VESA-tuki

Device Drivers --->
Graphics Support --->
 [*]   VESA VGA graphics support

Tai sitten voi käyttää uvesafb:tä, joka on parempi framebufferi . Huomaa, että sen voi kääntää joko ytimeen tai moduuliksi. Seuraava esimerkki kääntää uvesafb:n ytimeen.

Koodilistaus 3.6: Uvesafb-tuen käyttö

Device Drivers ---> 
Graphics Support --->
<*>   Userspace VESA VGA graphics support

Lisätietoja löytää ohjeista hakemistossa /usr/src/linux/Documentation/fb/.

Ydinasetusten jatkaminen

Nvidia-drivers tunnistaa ytimen hakemistosta /usr/src/linux. Varmista, että se osoittaa oikeisiin lähteisiin ja ydinasetukset on tehty. Katso lisätietoja kappaleesta ydinasetusten teko asennuskäsikirjassa.

Aluksi asennetaan eselect, jollei sitä jo ole. Jos vaikkapa käytössä on gentoo-sources-2.6.18-r4, se näkyy seuraavasti:

Koodilistaus 3.7: /usr/src/linux-linkki

# eselect kernel list
Available kernel symlink targets:
  [1]   linux-2.6.18-gentoo-r4 *
  [2]   linux-2.6.20-gentoo-r7
  [3]   linux-2.6.20-gentoo-r8
(Varmista asteriskin paikka)

Ylläolevasta näkee, että asteriski osoittaa ytimeen linux-2.6.18-gentoo-r4.

Jos symlinkki on pielessä se pitää korjata valitsemalla oikea numero:

Koodilistaus 3.8: /usr/src/linuxin luonti tai korjaus

(Valitse oikea ydin)
# eselect kernel set 1

Sopivien ajurien asennus

Seuraavaksi asennetaan ajureita.

Koodilistaus 3.9: NVidia-ajurin asennus

(Jollei kortti ole vanha)
# emerge nvidia-drivers

Huomaa: Ajurit sisältävät gtk-USE-asetuksen. Tällä voi asentaa media-video/nvidia-settingsin, joka on kätevä asetus- ja valvontatyökalu.

Tärkeää: Joka kerta kun ydin päivitetään tai vanhaa uudelleenkäännetään pitää ajaa emerge nvidia-drivers nVidia-ajurien uudelleenasentamiseksi. Helpommin tämä onnistuu käyttämällä sys-kernel/module-rebuildia, joka luo listan käännettävistä ajureista komennolla module-rebuild populate. Tämän jälkeen pelkkä module-rebuild rebuild riittää uuden ytimen käännön yhteydessä.

Kun asennus on valmis, modprobe nvidia lataa ajurin muistiin. Jos kyseessä on päivitys, pitää vanha poistaa ensin.

Koodilistaus 3.10: Ydinmoduulin lataus muistiin

# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia

Jotta moduulia ei tarvitsisi joka käynnistyksessä ladata, kannattanee lisätä tiedostoon /etc/modules.autoload.d/kernel-2.6 rivi nvidia. Perään ajetaan update-modules.

Tärkeää: Jos agpgart on moduuli, pitää se lisätä tiedostoon /etc/modules.autoload.d/kernel-2.6.

Koodilistaus 3.11: Update-modulesin suorittaminen

# update-modules

X:n asetukset

Kun ajurit on asennettu, pitää säätää X:n asetuksiin nvidia ajuriksi oletusarvoisen nv:n sijaan.

Avaa /etc/X11/xorg.conf suosikkimuokkaimellasi (kuten nanolla tai vimillä) ja muokkaa Device-osion Driver-asetusta:

Koodilistaus 3.12: Ajurin asettaminen nvidiaksi xorg.confissa

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  VideoRam   65536
EndSection

Seuraavaksi siirry Module-osioon ja varmista että glx ladataan mutta dri ei:

Koodilistaus 3.13: Module-osion päivittäminen

Section "Module"
  (...)
  # Load  "dri"
  Load  "glx"
  (...)
EndSection

Osiossa Screen varmista, että DefaultDepth on 16 tai 24, tahi että kaikissa Display-osioissa Depth on 16 tai 24. Muutoin nVidian GLX ei toimi.

Koodilistaus 3.14: Screen-osion päivittely

Section "Screen"
  (...)
  DefaultDepth 16
  Subsection "Display"
  (...)
EndSection

Suorita eselect, jotta X tajuaa käyttää oikeita kirjastoja:

Koodilistaus 3.15: Eselectin ajo

# eselect opengl set nvidia

Käyttäjien lisäys video-ryhmään

Käyttäjät pitää lisätä video-ryhmään, jotta heillä olisi pääsy nvidia-laitteisiin:

Koodilistaus 3.16: Käyttäjän lisäys video-ryhmään

# gpasswd -a käyttäjä video

Tämä ei ole täysin välttämätöntä jollei käytössä ole udev, mutteipä haittaakaan ja varmistaa tulevien päivitysten sujuvuuden.

Kortin testaus

NVidian testaukseen voi käynnistää X:n ja suorittaa glxinfo, joka löytyy paketista mesa-progs. Tulosteeksi pitäisi tulla suunnilleen:

Koodilistaus 3.17: Direct renderingin tarkastelu

$ glxinfo | grep direct
direct rendering: Yes

FPS:istä viitettä antaa glxgears.

NVidia-tuen käyttö

Jotkin ohjelmat, kuten mplayer ja xine-lib, käyttävä USE-asetusta xvmc, joka vaikuttaa XvMCNVIDIA-tukeen, jota tarvitaan korkearesoluutioisissa videoissa. Lisää xvmc /etc/make.confin USEen tai pakettikohtaisesti media-video/mplayerille ja media-libs/xine-libille /etc/portage/package.use.

Jotkin ohjelmat saattavat myös tukea nvidia-USE-asetusta, joten sekin kannattanee lisätä tiedostoon /etc/make.conf.

Seuraavaksi suoritetaan emerge -uD --newuse world, jotta ne ohjelmat, joihin uudet USE-asetukset vaikuttavat asentuvat uudestaan.

NVidia Settings Tool

NVidialla on myös nvidia-settings-työkalu asetusten tekoon. Sillä voi muuttaa grafiikka-asetuksia käynnistämättä X:ää uudestaan ja tarkastella laitteiden tilaa. Se löytyy Portage-puusta nimeltä media-video/nvidia-settings. Se myös asentuu ajurien mukana, jos USE-asetus gtk on asetettu tiedostoon /etc/make.conf tai /etc/portage/package.use.

4.  Ongelmatilanteet

2D ei toimi, jos muistia on yli 4 gigaa

Jos nVidian 2D-tuki ei toimi, voi olla, että MTRR:n write-combining range -asetus ei toimi. Sen näkee tiedostosta /proc/mtrr:

Koodilistaus 4.1: Write-combining asetuksen katselu

# cat /proc/mtrr

Joka rivillä pitäisi olla write-back tai write-combining. Jos siellä on uncachable, pitää BIOS-asetuksia muuttaa.

Käynnistä kone uudelleen ja mene BIOSin asetuksiin. Sieltä MTRR löytynee suunnilleen CPU-asetusten suunnalta. Asetuksen pitää olla discrete eikä continuous, jotta 2D toimii ongelmitta.

Moduullin lataus tuottaa tekstin "no such device"

Yleensä virhe johtuu siitä, ettei näyttökorttia ole. Kannattaa siis varmistaa, että käytössä on nVidia-pohjainen laite (lspci auttaa).

Jos kyseessä on nVidia, BIOSista saattaa pitää muuttaa asetus Assign IRQ to VGA päälle.

5.  Erikoisasetukset

Ohjeita

NVidian ajureissa on ohjeet mukana. Ne löytyvät hakemistosta /usr/share/doc ja ne voi avata seuraavasti:

Koodilistaus 5.1: NVidian ohjeiden lukeminen

(nvidia-drivers)
$ less /usr/share/doc/nvidia-drivers-*/README.gz

Ydinmoduulin asetukset

Nvidia-moduulissa on joitain muokattavia asetuksia. Useimmat löytyvät ohjeista. Niitä lisätään tai poistetaan tiedostossa /etc/modules.d/nvidia. Muista suorittaa update-modules tiedoston muokkaamisen jälkeen. Uudet aseutkset eivät vaikuta ennen kuin nvidia-moduuli on ladattu uudelleen.

Koodilistaus 5.2: NVidian asetusten muokkaus

(Avaa tiedosto editoriin)
# nano -w /etc/modules.d/nvidia
(Päivitä moduulidata)
# update-modules
(Poista moduuli)
# modprobe -r nvidia
(Lataa moduuli taas)
# modprobe nvidia

X:n lisäasetuksia

GLX-rajapinnallakin on paljon erikoisasetuksia. Niillä muokataan TV outtia, kahden näytön asetuksia, virkistystaajuusasetuksia jne. Kaikki asetukset löytyvät ohjeista.

Asetukset kirjoitetaan Device-osioon X:n asetustiedostoa (yleensä /etc/X11/xorg.conf). Esimerkiksi jos poistetaan käynnistyskuva:

Koodilistaus 5.3: NVidian asetuksia X:n asetustiedostossa

Section "Device"
  Identifier "nVidia Inc. GeForce2"
  Driver     "nvidia"
  Option     "NoLogo" "true"
  VideoRam   65536
EndSection


Tulostettava muoto

Viimeksi päivitetty 6. maaliskuuta 2008

Tiivistelmä: Monilla Gentoon-käyttäjillä on nVidia-pohjaisia näyttökortteja. NVidialla on omat tehokkaat Linux-ajurinsa. Tässä ohjeessa kerrotaan niiden asentamisesta ja asetusten teosta.

Sven Vermeulen
Tekijä

Joshua Saddler
Tekijä

M Curtis Napier
Toimittaja

Chris Gianelloni
Toimittaja

Flammie Pirinen
Vastuullinen kääntäjä

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Bytemark

Bytemark

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.