Gentoo Logo

Hardware 3D Accelerationsvejledning

Indhold:

1.  Introduktion

Hvad er hardware 3D acceleration og hvorfor vil jeg have det?

Med hardware 3D acceleration, bruger du den tre-dimensionelle gengivelsesgrafik-processor på dit grafikkort i stedet for at optage værdifulde CPU-ressourcer for at tegne 3D-billeder. Det er også refereret til, som "hardware acceleration" i stedet for "software acceleration", fordi at uden denne 3D acceleration ville din CPU være tvunget til at tegne alt, selv ved at bruge Mesa-softwaregengivelsesbiblioteker, som tager en stor del af processorydelsen. Imens Xorg typisk understøtter 2D hardware acceleration, mangler den ofte hardware 3D acceleration. Tre-dimensionel hardware acceleration er værdifuldt i situationer, hvor det kræver gengivelse af 3D objekter, såsom spil, 3D CAD og modelering.

Hvordan får jeg hardware 3D acceleration?

I mange situationer, eksisterer både binære og open-source (frie) drivere. Open-source drivere ses helst, da vi bruger Linux og open-source er en af de underliggende principper. Somme tider er binære drivere det eneste valg, det er f.eks tilfældet med nVidias grafikkorte. Binære drivere inkluderer media-video/mgavideo til Matrox og media-video/ati-drivers til ATI kort. Andre open-source drivere inkluderer media-video/kyro-kernel til KyroII kort og media-video/ati-gatos til ATI cards, hvis mål er at understøtte ATI's video færdigheder i større grad.

Hvad er DRI?

Direct Rendering Infrastructure (dri.sourceforge.net), også kendt som DRI, er et framework for at tillade direkte adgang til grafik-hardwaren på en sikker og effektiv metode. Det inkluderer ændringer til X-serveren med nogle klient-biblioteker og til kernen. Den første og brugbare løsning af DRI er at skabe hurtige OpenGL-gennemførsler.

Hvad er X11-DRM og hvordan relaterer den sig til normalt Xorg?

X11-DRM er en forøgelse af Xorg som tilføjer 3D acceleration til grafikkorte, ved at tilføje de moduler der er nødvendige for direct rendering til kernen.

Formålet

Denne vejledning er for folk der ikke kan få deres direct rendering til at virke med Xorg alene. X11-DRM virker til 3dfx, gamma, intel, matrox, rage128, radeon, mach64 og sis300 driver serierne. Se DRI hjemmesiden for mere info og dokumentation.

Feedback

For forslag, spørgsmål etc., email Donnie Berkholz.

2.  Installation af Xorg og opsætning af din kerne

Installation af Xorg

Læs venligst vores Xorg opsætningsguide(engelsk) for at få Xorg op at køre.

Opsætning af din kerne

Undersøg dit chipset og aktiver kun dette.

Kode oversigt 2.1: Undersøgelse af dit AGP chipset

# emerge pciutils; lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
(Dit output er måske ikke det samme som foroven, pga. af forskellig hardware.)

Hvis ikke dit chipset understøttes af kernen, så kan du måske opnå nogen succes ved at sende agp=try_unsupported med som et kerne parameter. Dette vil bruge Intel's generiske routiner til AGP support. For at tilføje denne parameter skal du redigere din bootloaders opsætningsfil!

De fleste, hvis ikke alle, kerner skulle have disse indstillinger. Dette var opsat ved at bruge gentoo-sources-2.4.20-r5:

Kode oversigt 2.2: At konfigurere kernen

# ls -l /usr/src/linux 
lrwxrwxrwx    1 root     root           22 May 29 18:20 /usr/src/linux -> linux-2.4.20-gentoo-r5
(Vær sikker på at /usr/src/linux peger mod din nuværende kerne.)
# cd /usr/src/linux
# make menuconfig

Kode oversigt 2.3: make menuconfig muligheder

Processor type and features --->
  <*> MTRR (Memory Type Range Register) support
Character devices --->
<M> /dev/agpgart (AGP Support)
 [*] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support
(Aktivér dit chipset i stedet for ovenstående.)
  [ ] Direct Rendering Manager (XFree86 DRI support)

Hvis du bruger en 2.4 kerne, så vær sikker på at Direct Rendering Manager (DRM) er slået fra. X11-DRM pakker leverer sin egen. Brugere af 2.6 kerne bør slå den Direct Rendering Manager (DRM) til da X11-DRM pakken pt. ikke understøtter 2.6 kerner endnu.

At kompilere og installere din kerne

Kode oversigt 2.4: Kompilere og installere kerne

# make dep && make clean bzImage modules modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot

Hvis du vil have at din kerne skal kaldes noget andet end bzImage, vær sikker på at kopiere det til /boot/yourname i stedet for. Glem ikke at opsætte grub.conf eller lilo.conf og køre /sbin/lilo hvis du bruger LILO.

3.  Installation af X11-DRM og opsætning af direct rendering

Installation af X11-DRM

Advarsel: Hvis du er bruger af en 2.6 kerne, så spring denne sektion over og gå til Configure Xorg.conf.

Kode oversigt 3.1: At installere X11-DRM

# emerge x11-drm

Opsætning af Xorg.conf

Åben /etc/X11/xorg.conf med din yndlings-redigeringsprogram og rediger det til at aktivere DRI og GLX.

Kode oversigt 3.2: xorg.conf

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

Hvis du bruger en anden driver, erstat "radeon" med din driver.

4.  Testning af 3D acceleration

Genstart til din nye kerne

Genstart din computer for at køre den nye kerne. Det er tid til at se om du har direct rendering og hvor god den er.

Kode oversigt 4.1: Test af gengivelse

# startx
(Det er ikke nødvendig at køre modulerne for din) 
(driver eller agpgart, hvis du har kompileret agpgart som et modul.)
(De vil køre af sig selv, helt automatisk.)
# glxinfo | grep rendering
direct rendering: Yes
(Hvis den siger "No", så har du ikke 3D acceleration.)
# glxgears
(Test dine frames pr. sekund (FPS) som standardstørrelsen.)
(Dette tal burde være mærkbart højere end før du installerede x11-drm.)
(Dette vil tage et stykke tid, idet CPUen er så ubeskæftiget som muligt.)

5.  Brug af CVS-kildekoderne

Advarsel: Gør ikke dette hvis din pakke virkede.

Behøver jeg CVS-kildekoderne?

Først skal du se efter om x11-drm pakken virker. Hvis det ikke gør og tjekket dine log filer for at verificere at det ikke er en konfigurationsfejl, så skal du måske overveje CVS kildekoderne. Der er også daglige snapshots af driverne til rådighed, hvis du ikke har lydt til at bygge hele den fulde CVS.

Understøtter CVS-kilderne dit kort?

Se efter på DRIs understøttede grafikkort-liste for at se om CVS understøtter dit kort. Selvom den ikke gør, men understøtter en lignende grafikkort, prøv det alligevel.

Følg CVS instruktionerne

DRI projektet har selv et dokument omkring CVS kompilering. Læs venligst dokumentet (engelsk) og følg instruktionerne op til Installing for XFree86 eller Installing for X.org parterne.

Installation af CVS

Verificer at DRI-kerne-modul(er) er blevet bygget til dit system:

Kode oversigt 5.1: Verifikation

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

Til 3dfx Voodoo, bør du se tdfx.o. Til Matrox G200/G400, bør du se mga.o. Til ATI Rage 128, bør du se r128.o. Til ATI Radeon, bør du se radeon.o. Til Intel i810, bør du se i810.o. Hvis DRI-kerne-modul(er) fejler ved bygningen, bør du verificere at du bruger den rigtige version af Linux-kernen. Den sidste nye kerne er ikke altid understøttet.

Installer hen over din XFree86 eller X.org installation. Du vil måske sørge for at lave en sikkerhedskopi af xfree eller xorg-x11.

Kode oversigt 5.2: At backe Xorg op

# quickpkg xorg-x11
(Dette backer din Xorg-X11 pakke op.)
# make install

Følg "Konfigurer Xorg" sektionen ovenfor.

For at hente det rigtige DRM modul i din kørende kerne, skal du kopiere kerne modulet til /lib/modules/`uname -r`/kernel/drivers/char/drm/ og kør modules-update og genstart din X server. Hvis du ikke kører den kerne som du vil bruge det i, så skal du i stedet for `uname -r`, bruge den kernes navn.

Advarsel: Vær sikker på at du fjerner et ældre DRI kerne modul, der måske allerede er hentet. Bemærk at nogle DRM moduler kræver at agpgard modulet bliver hentet først.

6.  Fusk lidt med din ydelse

Få mest ud af direct rendering (direkte gengivelse)

Et par få valg kan forbedre ydelsen med op til 30 procent (eller mere) end standarden. Sæt dem i /etc/X11/xorg.conf.

Kode oversigt 6.1: xorg.conf

Section "Device"
     Option     "AGPMode" "4"
(Dette forbedrer FPS fra 609 til 618.)
     Option     "AGPFastWrite" "True"
(Dette havde ingen målbar effekt, men kan forbedrer ustabilitet på din computer.)
(Du burde måske også sætte det i din BIOS.)
     Option     "EnablePageFlip" "True"
(Dette forbedrede FPS fra 618 til 702. Det er også "risikabel", men få folk har rapporteret problemer.)
     ...
EndSection

Hvis du vil have et sæt på endnu flere egenskaber, tag et kig på features listing på DRIs hjemmeside.

7.  Fejlfinding

Det virker ikke. Jeg har lige rekompileret min kerne eller skiftet til en ny en.

Hver gang du bygger din kerne om eller skifter til en anden kerne bliver du nødt til at bygge dit kerne modul igen. Bemærk at du ikke er nødt til at emerge xfree eller xorg-x11 igen, men at du bliver nødt til at emerge x11-drm igen.

Det virker ikke. Jeg har ikke rendering, og jeg ved ikke hvorfor.

Prøv insmod radeon før du starter X-serveren. Prøv også at bygge agpgart som en modul i stedet for ind i kernen.

Når jeg kører startx, får jeg følgende fejlbesked: "[drm] failed to load kernel module agpgart"

Det er fordi du har kompileret agpgart ind i kernen, i stedet for som et modul. Ignorér det medmindre du har problemer.

Direct rendering virker ikke, og i /var/log/Xorg.0.log har jeg en fejl om at driver-versionerne er for lille.

Du bruger ikke x11-drm driveren. Se efter om du har kompileret DRM og driveren ind i kernen, som du ikke skulle.

Jeg har et Radeon grafikkort, og jeg vil gerne have TV-Out.

Kig efter ati-gatos driverne. emerge -s gatos.

Det virker ikke. Mit kort er så utroligt nyt og sej, at det ikke er understøttet overhovedet.

Prøv at brug de binære drivere. Til ati-driverne, er der en liste på http://www.schneider-digital.de/html/download_ati.html. Hvis de ikke understøtter det, brug fbdev. Det er langsomt, men det virker.

Jeg har et PCI-grafikkort og det virker ikke. Hjælp!

I sektionen "Device" aktivér ForcePCIMode.

Kode oversigt 7.1: At slå ForcePCIMode til

Option "ForcePCIMode" "True"

8.  Anerkendelse

  1. Christopher Webber for at foreslå et fejlfindings spørgsmål omkring at skifte eller rekompilere kerner
  2. Steve, for at foreslå konsistens mellem tilfældene af dri og DRI i XF86Config

9.  Referencer

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


Udskriv

Opdateret 14. februar 2005

The original version of this document was last updated September 11, 2011

Opsummering: Dette dokument er en vejledning for at få 3D acceleration til at virke ved at bruge X11-DRM med Xorg i Gentoo Linux.

Donnie Berkholz
Forfatter

Jorge Paulo
Redaktør

Jesper Brodersen
Oversætter

Arne Mejlholm
Korrektur

Jesper Brodersen
Korrektur

Donate to support our development efforts.

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