Gentoo Logo

Disclaimer : Dit document is niet juist en is niet meer onderhouden.


Handleiding voor 3D hardware

Inhoud:

1.  Inleiding

Wat is hardware 3D en waarom zou ik dat willen?

Met 3D berekeningen via de grafische processor (GPU) worden 3D objecten weergegeven zonder buitensporig gebruik van de hoofd processor (CPU), waardoor veel rekenkracht bespaard kan worden. Er wordt vaak gesproken over "hardware accelaration" in plaats van "software accelaration", omdat zonder gebruik te maken van de 3D mogelijkheden van de GPU alle 3D berekeningen via Mesa software bibliotheken worden gedaan. Dit kost echter veel meer rekenkracht en dat wilt wilt u waarschijnlijk voorkomen. Xorg maakt echter standaard alleen gebruik van de 2D hardware, maar niet van de mogelijkheden voor 3D. Deze 3D hardware ondersteuning is met name nuttig voor spellen, 3D CAD en modelleren.

Hoe maak ik gebruik van mijn 3D hardware?

In veel gevallen bestaan zowel open source als binaire drivers. Open source drivers worden aangeraden omdat open soiree een van de onderliggende principes van het Linux besturingsysteem is. Soms zijn de binaire drivers echter de enige optie, zoals bij de nVidia kaarten. Binaire drivers zijn bijvoorbeeld x11-drivers/nvidia-driver en mx11-drivers/nvidia-legacy-drivers voor nVidia kaarten en media-video/ati-drivers voor ATI kaarten. Open source drivers zijn onder andere media-video/kyro-kernel voor KyroII kaarten en media-video/ati-gatos voor ATI kaarten, waarmee wordt geprobeerd om ATI's video ondersteuning beter te gebruiken.

Wat is DRI?

De Direct Rendering Infrastructure, ook wel DRI genoemd, is een raamwerk dat de aansturing van de grafische hardware op een efficiënte en veilige manier regelt. Het bevat aanpassingen aan de X server, verschillende bibliotheken en de kernel. Een van de belangrijkste toepassingen van DRI is OpenGL, waarmee de snelle OpenGL implementatie wordt aangestuurd.

Wat is X11-DRM en hoe werkt het samen met Xorg?

X11-DRM is een uitbreiding voor Xorg, waarmee 3D hardware aansturing wordt toegevoegd, door de benodigde kernel modules toe te voegen.

Doel

Deze handleiding is voor degenen die direct rendering niet werkende krijgen met enkel Xorg. Xorg-DRM werkt voor 3dfx, gamma, intel, matrox, rage128, radeon, mach64 en sis300 drivers. Degenen met een VIA kaart moeten x11-drm niet gebruiken, maar kiezen voor de ingebouwde DRI in de nieuwere kernels (>2.6.13). Zie ook de DRI pagina voor meer informatie.

Feedback

Voor suggesties, vragen enzovoorts, email Donnie Berkholz.

2.  Het installeren van Xorg en instellen van de kernel

Het installeren van Xorg

Lees de X Server Handleiding om Xorg te installeren en in te stellen.

Instellen van de kernel

Zoek eerst uit welke chipset u gebruikt en activeer de ondersteuning hiervoor.

Codevoorbeeld 2.1: De AGP chipset opzoeken

# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
Het resultaat kan natuurlijk anders zijn als u andere
hardware hebt.

Als uw chipset niet wordt ondersteund door de kernel, kan het zijn dat het meegeven van de optie agp=try_unsupported aan de kernel u de ondersteuning levert. U kunt deze parameter toevoegen via de instellingen van uw bootloader!

De meeste, of zelfs alle, kernels horen de onderstaande opties te hebben. We hebben hier gebruik gemaakt van gentoo-sources-2.4.20-r5.

Codevoorbeeld 2.2: Het instellen van de kernel

# ls -l /usr/src/linux 
lrwxrwxrwx    1 root     root           22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5
Zorg ervoor dat /usr/src/linux naar de huidige kernel wijst.
# cd /usr/src/linux
# make menuconfig

Codevoorbeeld 2.3: make menuconfig opties

Processor type and features --->
<*> MTRR (Memory Type Range Register) support
Character devices --->
<*> /dev/agpgart (AGP Support)
[M] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support
Activeer je eigen chipset in plaats van de bovenvermelde.
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)

Zorg ervoor dat de Direct Rendering Manager (DRM) uit staat. Het X11-DRM pakket zal zijn eigen interface gebruiken.

Compileer en installeer de kernel

Codevoorbeeld 2.4: Compileren en installeren van de kernel

(Dit voorbeeld is voor een 2.4 kernel)
# make dep && make clean bzImage modules modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot

Indien u de kernel anders wil noemen dan bzImage, zorg er dan voor dat u deze naar /boot/naamvanimage kopieert. Vergeet niet grub.conf of lilo.conf in te stellen en /sbin/lilo uit te voeren indien u LILO gebruikt.

3.  Installeren van X11-DRM en instellen van direct rendering

Het installeren van X11DRM

Codevoorbeeld 3.1: Het installeren van X11-drm

# emerge x11-drm

Het instellen van Xorg.conf

Sommige chips werken alleen wanneer u xorg-x11 overnieuw compileert met USE="insecure-drivers". Dit geldt voor de mach64, unichrome en savage chips onder xorg-x11-6.8.2 en ook voor de mach64 en unichrome chips onder xorg-x11-6.8.99.x. Gebruikers met een savage kaart moeten xorg-x11-6.8.99.x niet gebruiken, omdat de ondersteuning voor savage in deze versie niet werkt.

Codevoorbeeld 3.2: Overnieuw compileren van xorg-x11

(Voeg de insecure-drivers USE vlag toe voor genoemde chips)
# echo "x11-base/xorg-x11 insecure-drivers" >> /etc/portage/package.use

# emerge xorg-x11

Open het bestand /etc/X11/xorg.conf met uw tekst editor en pas deze aan om DRI en GLX te activeren.

Codevoorbeeld 3.3: xorg.conf

...
Section "Module"
Load "dri"
Load "glx"
...
EndSection
...
Section "Device"
Driver "radeon"
...
EndSection
...
Section "dri"
Mode 0666
EndSection

Indien u een andere kaart hebt, vervang dan "radeon" door de juiste naam.

Veranderingen in modules.autoload.d

Om de module voor uw grafische kaart automatisch te starten wanneer uw systeem opstart, u de module naam toevoegen in /etc/modules.autoload.d/kernel-2.6.

Codevoorbeeld 3.4: Het aanpassen van /etc/modules.autoload.d/kernel-2.6

(Verander de naam in de module die u gebruikt.)
intel-agp

Nota: Als u agpgart als losse module hebt gecompileerd, moet u deze toevoegen in /etc/modules.autoload.d/kernel-2.6.

4.  Het testen van de 3D aansturing

Opstarten met de nieuwe kernel

Start uw computer op met de nieuwe kernel en log in als een standaard gebruiker, zodat we kunnen kijken of direct rendering nu werkt en of u er wel zo veel voordeel bij hebt als dat gezegd wordt.

Codevoorbeeld 4.1: Het renderen testen

$ startx
(U moet geen modules voor uw driver/agpgart laden wanneer deze
als module is gecompileerd. Deze worden automatisch geladen.)
$ glxinfo | grep rendering
direct rendering: Yes
(Indien er "No" staat, hebt u geen 3D ondersteuning.)
$ glxgears
(Test de fps op de standaard grootte. Het getal zou)
(beduidend hoger moeten zijn dan voordat u x11-drm had)
(geïnstalleerd. Voer dit uit wanneer de CPU zo min mogelijk
doet.)

5.  De CVS broncode gebruiken

Waarschuwing: Doe dit niet indien het al werkt!

Hebt u de CVS broncode wel nodig?

Allereerst moet u controleren of het x11-drm pakket werkt. Indien dat niet het geval is en u hebt uw logbestanden erop nagekeken dat het niet een foute instelling is, dan kunt u overwegen om de CVS broncode te gebruiken. Hier vindt u ook dagelijkse updates van de drivers die u kunt gebruiken als u liever geen volledige CVS op zet.

Ondersteunt de CVS broncode uw kaart?

Controleer de lijst van ondersteunde kaarten om te zien of de CVS versie uw kaart ondersteunt. Als dat niet het geval is, kunt u de drivers voor een gelijkwaardige kaart proberen.

Volg de CVS instructies

Het DRI project heeft een eigen document met instructies over het gebruik van de CVS broncode. Lees dit document en volg de instructies om X.org te installeren.

Het installeren van de CVS

Kijk of de DRI module(s) voor de kernel zijn gecompileerd:

Codevoorbeeld 5.1: Verificatie van de kernel module(s)

# cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel; ls

Voor de 3df Voodoo kaart, zie tdfx.o. Voor de Matrox G200/G400 zie mga.o. Voor de ATI Rage 128, zie r128.o. Voor de ATI radeon, zie radeon.o en voor de Intel i810, zie i810. Als de DRI module(s) niet juist zijn gecompileerd, kijk dan eerst of u de juiste versie van de kernel gebruikt. De allernieuwste kernels worden nog niet altijd ondersteund.

Installeer nu Xorg overnieuw. Het is verstandig om een back-up te maken van xorg-x11.

Codevoorbeeld 5.2: Een back-up maken van xorg-x11

# quickpkg xorg-x11
(Zo maakt u een back-up van xorg-x11.)
# make install

Volg nu de bovenstaande paragraaf "het instellen van xorg".

Om de juiste DRM modules te laden voor de kernel, kopieert u de module naar /lib/modules/'uname -r'/kernel/drivers/char/drm/ en draait modules-update. Daarna start u de X server overnieuw. Wanneer u een andere kernel draait dan waarvoor u de module maakt, gebruikt u de naam van de kernel in plaats van 'uname -r',.

Waarschuwing: Zorg ervoor dat u eerst de oude DRI modules de-activeert! Let er ook op dat sommige DRM modules niet werken als de agpgart module niet eerst is geladen.

6.  De prestaties verbeteren

Het meeste uit direct rendering krijgen

Sommige opties kunnen de prestaties met wel 30% (of meer) verbeteren ten op zichte van de standaard instellingen. U kunt de opties aanzetten via /etc/X11/xorg.donf.

We gaan nu eerst kijken of uw video kaart "fast writes" ondersteunt. We doen dit door de resultaten van het commando lspci te bekijken. We zoeken hier specifiek naar de informatie voor de "VGA compatible controller"

Codevoorbeeld 6.1: Video kaart check

# lspci -vv
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY (prog-if 00 [VGA])
. . .
Capabilities: [58] AGP version 2.0
    Status: RQ=48 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4

Tussen al deze informatie zijn we op zoek naar de letters FW in het stukje "Status" van het onderdeel AGP "Capabilites". Als we FW+ vinden, betekent dit dat de video kaart "fast writes" ondersteunt. We gaan dan kijken of het moederbord ook "fast writes" ondersteunt.

Belangrijk: Wanneer u FW- ziet staan in plaats van FW+, dan kunt u "fast writes" niet instellen in xorg.conf. Uw grafische kaart ondersteunt dit dan niet.

Nu gaan we kijken of het moederbord ook "fast writes" ondersteunt. Deze keer zoeken we in het stuk "Host bridge" van uw lspci resultaten.

Codevoorbeeld 6.2: Motherboard check

# lspci -vv
00:00.0 Host bridge: Intel Corporation 82830 830 Chipset Host Bridge (rev 02)
. . .
Capabilities: [a0] AGP version 2.0
    Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4

Ook hier kijken we naar "Status" in het onderdeel AGP "Capabilities". Zoek hier weer naar FW. Indien u FW+ ziet staan, ondersteunt uw moederbord "fast writes".

Belangrijk: Let er op dat zowel bij uw video kaart, als bij uw moederbord, hetzelfde moet staan bij FW. Als een van beiden FW- laat zien, kunt u geen gebruik maken van "fast writes" via xorg.conf.

Als zowel uw moederbord als uw grafische kaart ondersteuning voor "fast writes" geeft, kunt u de optie inschakelen in /etc/X11/xorg.conf en betere prestaties van uw hardware verwachten

Codevoorbeeld 6.3: xorg.conf

Section "Device"
Option     "AGPMode" "4"
(Verbeterd het aantal FPS van 609 naar 618.)
Option     "AGPFastWrite" "True"
(Dit heeft geen meetbaar effect, het systeem wordt wel)
(ionstabieler. Veranderingen in de bios nodig.)
Option     "EnablePageFlip" "True"
(Verbetering van de FPS van 618 naar 702. Het is een klein risico maar
er zijn weinig problemen bekent.)

EndSection

Waarschuwing: Het inschakelen van AGPFastWrite op een VIA Chipset zal uw machine zeer waarschijnlijk laten vast lopen. VIA Chipsets werken slecht samen met "fast writes", het gebruik van deze optie is dus voor eigen risico.

Nota: Denk eraan, om "fast writes" juist te laten functioneren moet u eerst de juiste opties instellen in uw BIOS.

Als u meer opties wilt instellen, kijk dan in de feature matrix (Engelstalig) op de DRI web site of op de features lijst (Engelstalig) op Sourceforge.

7.  Problemen

Het werkt niet. Ik heb mijn kernel overnieuw gecompileerd of de nieuwe kernel net gestart.

Wanneer u een nieuwe kernel compileert of een andere kernel gaat gebruiken, moet u de kernel modules ook overnieuw compileren. U hoeft xorg-x11 niet overnieuw te compileren, x11-drm echter wel.

Het werkt niet. Ik heb geen rendering, maar ik weet niet waarom niet

Probeer insmod radeon voordat u de X server start. Probeer ook agpgart in de kernel te compileren, in plaats van als module.

Als ik startx draai, krijg ik de foutmelding: "[drm] failed to load kernel module agpgart"

Dit komt omdat u agpgart in de kernel hebt gecompileerd in plaats van als module. Negeer deze waarschuwing, tenzij u er problemen mee hebt.

Direct rendering werkt niet, en in /var/log/Xorg.0.log staat een foutmelding dat de driver te oud is.

U gebruikt de x11-drm driver niet. Kijk na of u DRM en de driver in uw kernel hebt. Dat is niet de bedoeling.

Ik heb een Radeon en wil TV-out.

Probeer de ati-gatos drivers. emerge -s gatos.

Het werkt niet. Mijn kaart is zo nieuw dat er nog geen enkele ondersteuning voor is.

Probeer de binary drivers. Voor ATI-drivers, kijk in de lijst op http://www.schneider-digital.de/html/download_ati.php (Engelstalig). Als u hier geen ondersteuning vind, kunt u altijd nog fbdev gebruiken. Het is traag, maar het werkt.

Ik heb een PCI kaart die niet werkt

Stel bij de paragraaf "Device" de functie ForcePCIMode in:

Codevoorbeeld 7.1: ForcePCIMode gebruiken

Option "ForcePCIMode" "True"

8.  Dankwoord

  1. Christopher Webber voor de vraag over het veranderen of overnieuw compileren van de kernel.
  2. Steve, voor het wijzen op de verschillen tussen dri en DRI in XF86Config.

9.  Referenties (Engelstalig)

  1. http://forums.gentoo.org/viewtopic.php?t=46681
  2. http://forums.gentoo.org/viewtopic.php?t=29264
  3. http://dri.freedesktop.org/
  4. http://www.retinalburn.net/linux/dri_status.html


Print

Upgedate op 10 oktober 2006

De originele versie van dit document wordt niet meer onderhouden

Korte inhoud: Deze handleiding helpt u om het 3D deel van uw grafische kaart via X11-DRM te activeren voor Xorg in Gentoo Linux

Donnie Berkholz
Auteur

Jorge Paulo
Redacteur

Dimitry Bradt
Vertaler

Donate to support our development efforts.

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