Guida all'accelerazione hardware 3D/Xorg
Questo documento è una guida per far funzionare l'accelerazione 3D usando DRM con Xorg su Gentoo Linux.
Introduzione
Che cos'è l'accelerazione 3D e perché la voglio?
Con l'accelerazione hardware 3D, il rendering tridimensionale usa il processore grafico della scheda video invece di occupare preziose risorse della CPU disegnando immagini 3D. Viene chiamata anche "accelerazione hardware" invece di "accelerazione software" in quanto senza questa accelerazione 3D la CPU stessa viene forzata a disegnare tutto quanto da sola usanto le librerie di rendering software Mesa, che richiedono parecchia potenza di calcolo. Mentre Xorg supporta tipicamente l'accelerazione hardware 2D, spesso è priva dell'accelerazione 3D. L'accelerazione hardware tridimensionale è preziosa in situazioni che richiedono il rendering di oggetti 3D come giochi, CAD 3D, e la realizzazione di modelli 3D.
While Xorg typically supports 2D hardware acceleration, it often lacks hardware 3D acceleration. Three-dimensional hardware acceleration is valuable in situations requiring rendering of 3D objects such as games, 3D CAD, and modeling.
Come ottengo l'accelerazione hardware 3D?
In molti casi, esistono sia i driver binari sia quelli open-source. I driver open source sono da preferire in quanto si è su un sistema Linux e l'open source è uno dei suoi principi di base. Talvolta, i driver binari sono l'unica opzione, specialmente se la propria scheda grafica è talmente recente che non sono ancora stati scritti dei driver open source che supportino le sue funzionalità. I driver binari comprendono x11-drivers/nvidia-drivers per le schede grafiche nVidia e x11-drivers/ati-drivers per quelle AMD/ATI.
Che cos'è DRI?
L'Infrastruttura di Rendering Diretto (Direct Rendering Infrastructure), anche conosciuta come DRI, è un framework che permette un accesso diretto all'hardware grafico in maniera efficiente e sicura. Esso comprende cambiamenti al server X, a numerosi librerie client ed al kernel. L'uso principale per DRI è quello di creare implementazioni OpenGL veloci.
Che cos'è DRM e come si relaziona con Xorg?
DRM (Direct Rendering Manager) è un enhancement a Xorg che aggiunge l'accelerazione 3D alle schede grafiche aggiungendo i moduli del kernel necessari al rendering diretto.
Scopo
Questa guida è rivolta alle persone che non riescono a far funzionare il rendering diretto con Xorg. DRM funziona per i seguenti driver:
- 3dfx
- intel
- matrox
- nouveau
- rage128
- radeon
- mach64
- sis300
- via
Consultare la homepage di DRI per ulteriori informazioni e per la documentazione.
Installare Xorg e configurare il kernel
Installare Xorg
Si prega di consultare la[ https://wiki.gentoo.org/wiki/Xorg/Guide/it Guida di Configurazione di Xorg] per rendere Xorg pronto e funzionante.
Configurare il kernel
Ricercare il proprio processore ed abilitare solo quello.
root #
emerge --ask pciutils
root #
lspci | grep AGP
# 00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
Il risultato del comando sopra può non corrispondere a causa di hardware diverso.
Certain kernel options will be required, others may cause problems. Hardware specific resources concerning which kernel option for which hardware exist within this wiki and elsewhere.
Se il proprio processore non è supportato dal kernel, si può tentare di passare agp=try_unsupported
come parametro al kernel. Ciò userà le routine generiche di Intel per il supporto AGP. Per aggiungere questo parametro, modificare il file di configurazione del bootloader!
La maggior parte, se non tutti, i kernel dovrebbero avere queste opzioni. Quanto di seguito è stato configurato usando un kernel standard sys-kernel/gentoo-sources.
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 22 2007-02-14 20:12 /usr/src/linux -> linux-2.6.18-gentoo-r4
Assicurarsi che /usr/src/linux punti al proprio kernel attuale.
root #
eselect kernel list
root #
eselect kernel set
root #
cd /usr/src/linux
root #
make menuconfig
root #
cd /usr/src/linux
root #
make menuconfig
Most, if not all, kernels should have these options set. In any case, options labeled <M> are compiled as modules and loaded-as-necessary, thus being very unlikely to break anything if not required.
This was configured using a standard sys-kernel/gentoo-sources kernel.
'"`UNIQ--pre-00000007-QINU`"'
Compilare ed installare il kernel
root #
make && make modules_install
Non dimenticare di configurare grub.conf oppure lilo.conf ed eseguire /sbin/lilo
se si usa LILO.
When using LILO, issue:
root #
lilo
When using GRUB2, run:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Aggiungere il proprio utente al gruppo video
Successivamente, aggiungere il/i proprio/propri utente/i al gruppo video:
root #
gpasswd -a $USER video
Configurare il rendering diretto
Configurare Xorg
Teoricamente aggiungere il proprio utente al gruppo video
è sufficiente per abilitare il rendering diretto. Tuttavia, può essere necessario creare un file in /etc/X11/xorg.conf.d/. Si può chiamarlo come si vuole; l'importante è che finisca con .conf. Aprire il proprio editor di testo e creare un file con il seguente contenuto:
Section "Device"
Driver "radeon"
EndSection
Section "dri"
Mode 0666
EndSection
Sostituire radeon con il nome del proprio driver.
Cambiamenti a /etc/conf.d/modules
Sarà necessario aggiungere il nome del modulo che viene usato dalla propria scheda grafica a /etc/conf.d/modules per assicurarsi che il modulo sia caricato automaticamente quando il sistema si avvia.
modules="intel-agp" # Sostituire con il proprio driver
Se si è compilato
agpgart
come modulo, è necessario aggiungere anch'esso a /etc/conf.d/modules.Testare l'accelerazione 3D
Riavviare con il nuovo kernel
Riavviare il proprio computer con il nuovo kernel ed effettuare l'accesso come normale utente. È giunto il momento di controllare se il rendering diretto è presente e se funziona bene. glxinfo
e glxgears
sono parte del pacchetto x11-apps/mesa-progs, quindi è meglio assicurarsi che sia installato prima di eseguire questi comandi.
user $
startx
Non c'è bisogno di caricare moduli per il proprio driver o agpgart, nemmeno se sono stati compilati come moduli. Verranno caricati automaticamente.
user $
glxinfo | grep rendering
direct rendering: Yes
Se il risultato è "No", allora non si ha acccelerazione 3D.
user $
glxgears
Controllare i frame al secondo (frames per second - FPS) con la dimensione predefinita. Il numero dovrebbe essere significativamente più grande rispetto a prima di configurare DRM. Effettuare questo controllo mentre la CPU è il più inattiva possibile.
Gli FPS possono essere limitati dal tasso di aggiornamento del proprio schermo, quindi è bene ricordarlo se
glxgears
riporta dei valori compresi tra 70 e 100 FPS. games-fps/ut2004-demo o altri giochi 3D sono strumenti di benchmark migliori, in quanto forniscono dei risultati effettivi delle prestazioni.Ottenere il massimo dal rendering diretto
Se si vogliono più funzionalità, per prestazioni od altre ragioni, controllare la matrice delle caratteristiche sul sito web DRI oppure la lista delle caratteristiche su Sourceforge.
Risoluzione dei problemi
Non funziona. Il rendering non c'è e non so dire il perché.
Eseguire modprobe radeon
prima di cominciare il server X (sostituire radeon
con il nome del proprio driver). Inoltre, provare a compilare agpgart nel kernel anziché come modulo.
Quando eseguo startx, ottengo questo errore: "[drm] failed to load kernel module agpgart"
Ciò è dovuto al fatto che agpgart è stato compilato nel kernel anziché come modulo. Ignorare il messaggio a meno che non si abbiano problemi.
Ho una scheda grafica Radeon, e voglio l'uscita TV.
I driver sviluppati originariamente dal progetto GATOS sono stati uniti al codice di base di Xorg. Non si ha bisogno di alcunché di speciale per l'uscita TV; x11-drivers/xf86-video-ati funzionerà bene.
Non funziona. La mia scheda grafica è così incredibilmente nuova e forte che non è affatto supportata.
Provare i driver binari. Per schede AMD, usare ati-drivers
; un elenco è disponibile su http://support.amd.com/us/gpudownload/Pages/index.aspx. Se essi non la supportano, usare fbdev. È lento, ma funziona.
Ho una scheda PCI e non funziona. Aiuto!
Creare un file di configurazione in /etc/X11/xorg.conf.d/; chiamarlo come si ritiene opportuno a patto che termini con il suffisso .conf. Inserire il seguente codice:
Section "Device"
Option "ForcePCIMode" "True"
EndSection
Risorse esterne
- Rendering diretto (DRI) usando X11-DRM sui forum di Gentoo
- Guida all'installazione di Radeon 7000-9700 DRI CVS sui forum di Gentoo
- http://dri.freedesktop.org/
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Donnie Berkholz (dberkholz) , peesh, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.