Driver AMD proprietari
Guida da adottare! |
Introduzione
Questo how-to spiegherà come installare i driver proprietari forniti da ATI per generare il modulo fglrx
necessario al funzionamento del motore 3D delle schede grafiche.
Come è noto i driver ATI soffrono di una difficile installazione e configurazione. Sfortunatamente (o forse no) esistono molteplici configurazioni hardware che ostacolano l'installazione dei driver. Spesso, anche seguendo un guida perfetta, non si riesce ad attivare l'accelerazione 3D al primo colpo (molto raramente si hanno anche problemi di visualizzazione nel desktop). Solamente con i successivi tentativi (variando anche il metodo, o la guida) solitamente si raggiunge lo scopo prefisso. Il modesto consiglio è di non disperarsi, magari tirare cazzotti pesanti al case, ma provare finché non si riesce.
Versioni dei driver
ATTENZIONE Prima di proseguire leggere questo: |
Con le ultime versioni(>=9.4) dei driver proprietari, ATI ha tolto il supporto per le schede grafiche con chip r5xx o inferiore (cioè tutte quelle precedenti alla serie HD) dai driver che mantiene aggiornati, e lo ha spostato su di una versione "legacy", la 9.3, che rimane l'unica versione dei driver proprietari a supportarle. Anche questi driver "legacy" limitano il loro supporto dalla serie X2100 alla serie 9500: per schede precedenti a questa ATI fornisce driver obsoleti o non ne fornisce affatto.
Ma il pessimo supporto non si ferma qui. Infatti i driver 9.3 sono presenti nel repository della versione stable di Debian (Lenny), ma in Squeeze è presente solo la versione >=10.6 poiché la 9.3 è incompatibile con xorg >=7.5 e con le nuove versioni del kernel. Inoltre, se utilizzate una configurazione con schede video multiple (crossfire), dovete utilizzare il driver compatibile con la più vecchia.
Questa guida rimane quindi valida per chi usa debian stable (Lenny) ed ha una scheda dalla 9500 alla X2100, oppure per chi usa testing (o unstable) ma ha una scheda ATI HDxxxx.
Per tutti gli altri conviene utilizzare i driver (liberi!) radeon o i radeonhd (non sono la versione hd dei radeon, ma altri driver), che sono probabilmente già in funzione sulla vostra macchina (e che funzionano egregiamente! Solo le prestazioni in 3d sono inferiori ai driver proprietari). Se non lo fossero basta installarli.
Software richiesto
Sebbene i pacchetti per la generazione del modulo fglrx
siano disponibili nel repository di Debian, il consiglio è quello di utilizzare l'installer fornito da ATI in quanto più aggiornato.
Nel caso in cui si voglia compilare il modulo (operazione necessaria sia con module-assistant che utilizzando l'installer), sarà necessario disporre dei sorgenti del kernel compilati o degli header del kernel installato.
Se sulla nostra macchina gira un kernel precompilato Debian, dobbiamo installare gli headers esattamente corrispondenti alla versione che gira (per la quale compileremo il modulo). Per far ciò diamo in un terminale:
$ uname -r
che restituirà solo la versione. Siamo ora pronti a installare i giusti headers:
# aptitude install linux-headers-<risultato del comando precedente>
I due comandi precedenti possono essere inseriti in un solo comando usando l'apice ` (da non confondere con ') che si ottiene in alcune mappature con Alt Gr + '
# aptitude install linux-headers-`uname -r`
Altri pacchetti necessari affinché l'installazione vada a buon fine, vanno installati attraverso il pacchetto build-essential
:
# aptitude install build-essential
Metodologie di installazione
Per quanto riguarda l'installazione di quelli nuovi, esistono essenzialmente 3 metodi alternativi:
- usare l'eseguibile Ati
- creare i pacchetti .deb partendo dall'eseguibile Ati
- installare i driver dai repository
Installazione attraverso l'installer ATI
Da un terminale spostatevi nella cartella dove avete scaricato il file e date i permessi di esecuzione:
$ chmod +x ati-driver-installer-8.26.18-x86.run
quindi, da root:
# sh ./ati-driver-installer-8.26.18.x86.run
e seguite le istruzioni.
Poi, sempre con i permessi di root, aggiornate il file di configurazione xorg.conf
:
# cd /etc/X11/ # aticonfig --initial # aticonfig --overlay-type=Xv
e se volete settare meglio la configurazione:
# aticonfig
il quale ci darà un lungo output con la descrizione di tutte le opzioni che possiamo usare con aticonfig
.
A questo punto non ci resta che compilare il modulo del kernel fglrx. I metodi possono essere 2:
1) Usare module-assistant, un pacchetto fornito per compilare moduli contenenti nel kernel-headers.
2) Compilare a mano il modulo.
È preferibile generalmente la seconda via perché non richiede il pacchetto kernel-header e perché applicabile a qualsiasi tipo di kernel, sia quello distribuito dai Debian repository che i kernel vanilla di www.kernel.org.
Il metodo è il seguente:
Spostarci nella directory /lib/modules/fglrx/build_mod
da utenti root.
In questa directory adesso basta lanciare
# ./make.sh
Accertarsi che tutto sia andato a buon fine con una scritta "done" e poi spostarci nella directory precedente a build_mod ovvero /lib/modules/fglrx
A questo punto lanciare il comando:
# ./make_install.sh
Se tutto è andato a buon fine avete compilato il vostro bel modulo fglrx e per evitare di riavviare il sistema basta semplicemente entrare in linea di comando con CTRL + ALT + F1, effettuare il login come utente root e poi digitare:
# /etc/init.d/gdm restart
oppure
# /etc/init.d/kdm restart
Montare il modulo fglrx con:
# modprobe fglrx
e riavviare il sistema
# /etc/init.d/gdm restart
oppure
# /etc/init.d/kdm restart
Per controllare che la vostra accelerazione 3D funzioni basta digitare da shell come utente normale:
$ fglrxinfo
Nel mio caso l'output è il seguente:
display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: ATI Radeon Xpress Series OpenGL version string: 2.0.6473 (8.37.6)
$ glxinfo | grep rendering
e aspettare che vi dia come output:
direct rendering: Yes
N.B.: Se non avete glxinfo installate il pacchetto mesa-utils.
Questo metodo risulta più semplice ed efficace della pacchettizzazione. Se usate kernel vanilla la procedura è la medesima. Attenzione ad usare i kernel 2.6.20 poiché hanno un bug e quindi viene corretto da una patch al modulo fglrx. Tale patch è possibile trovarla in rete.
Installazione manuale con generazione pacchetti specifici per Debian
Con i privilegi di root, rimuoviamo i vecchi pacchetti del modulo fglrx
, se presenti:
# rm /usr/src/fglrx-kernel*.deb
È necessario installare i seguenti pacchetti:
# apt-get install module-assistant build-essential fakeroot dh-make debconf libstdc++5 gcc-3.4-base
Spostiamoci nella cartella dove abbiamo scaricato l'eseguibile Ati e diamogli i permessi di esecuzione:
$ chmod +x ati-driver-installer-8.26.18-x86.run
Poi, per creare i 5 pacchetti .deb:
$ sh ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/[release]
Per avere una lista di tutte le release supportate:
$ sh ./ati-driver-installer-8.26.16-x86.run --listpkg
Ad esempio:
$ sh ./ati-driver-installer-8.26.18-x86.run --buildpkg Debian/testing
Per installarli (installiamo solo quelli fondamentali):
$ su Password: # dpkg -i fglrx-driver_8.26.18-1_i386.deb # dpkg -i fglrx-kernel-src_8.26.18-1_i386.deb # dpkg -i fglrx-control_8.26.18-1_i386.deb
Compilazione del modulo fglrx
ATTENZIONE Ad ogni aggiornamento del kernel bisogna ricompilare il modulo fglrx .
|
Adesso va compilato il modulo fglrx
, con module-assistant
(m-a):
# m-a prepare # m-a update # m-a build fglrx # m-a install fglrx # depmod -a
Quindi muoviamoci in /etc/X11/
:
# cd /etc/X11/
e aggiorniamo il file di configurazione di X:
# aticonfig --initial # aticonfig --overlay-type=Xv
Naturalmente è possibile modificare etc/X11/xorg.conf
anche a manina (per fare questo consultate...uhm, forse c'è qualche cosa in man xorg.conf
) oppure consultando e usando aticonfig
.
Riavviamo X.
Installazione dei driver dai repository
Lenny
È necessario avere abilitato la sezione non-free del repository:
aprite /etc/apt/sources.list
in un editor e controllate che ci sia:
deb http://ftp.us.debian.org/debian lenny main contrib non-free
o qualsiasi altro mirror debian lenny con non-free abilitato. Altrimenti aggiungete non-free
alla riga del vostro mirror.
Aggiornate ora la lista dei pacchetti disponibili:
apt-get update
Installiamo ora i pacchetti necessari:
# apt-get install module-assistant fglrx-driver fglrx-kernel-src fglrx-glx
Siccome il modulo di cui abbiamo bisogno (fglrx
) è sotto forma di sorgenti (fglrx-kernel-src
), lo compiliamo e lo installiamo utilizzando module-assistant
, come descritto qui.
In alternativa si può provare ad automatizzare la procedura di compilazione del modulo con:
# module-assistant auto-install fglrx-kernel-src
In teoria abbiamo finito, bisogna solamente configurare /etc/X11/xorg.conf
manualmente aggiungendo(ATTENZIONE: se sono presenti già le voci per la scheda e per lo schermo, cancellatele):
Section "Device" Identifier "ATI" Driver "fglrx" EndSection Section "Screen" Identifier "Default Screen" DefaultDepth 24 EndSection
oppure automaticamente usando:
# aticonfig --initial
Non rimane che riavviare X (se usate gdm):
# /etc/init.d/gdm restart
Se volete avere anche il pannello di controllo Ati:
# apt-get install fglrx-control
Nota: Consultate anche il manuale di fglrx
. ( man fglrx
).
Squeeze
Struttura del file xorg.conf
Un esempio di /etc/X11/xorg.conf
:
### /etc/X11/xorg.conf ### Section "ServerLayout" Identifier "Default Layout" Screen 0 "aticonfig-Screen[0]" 0 0 InputDevice "Keyboard" InputDevice "Mouse" InputDevice "Touchpad" EndSection Section "Files" # path to defoma fonts FontPath "/usr/share/fonts/X11/misc" FontPath "/usr/share/fonts/X11/100dpi/:unscaled" FontPath "/usr/share/fonts/X11/75dpi/:unscaled" FontPath "/usr/share/fonts/X11/Type1" FontPath "/usr/share/fonts/X11/100dpi" FontPath "/usr/share/fonts/X11/75dpi" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" EndSection Section "Module" Load "synaptics" Load "bitmap" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "type1" Load "vbe" # Load "GLcore" EndSection Section "InputDevice" Identifier "Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "it" EndSection Section "InputDevice" Identifier "Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ExplorerPS/2" Option "Emulate3Buttons" "true" EndSection Section "InputDevice" Identifier "Touchpad" Driver "synaptics" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "LeftEdge" "1700" Option "RightEdge" "5300" Option "TopEdge" "1700" Option "BottomEdge" "4200" Option "FingerLow" "25" Option "FingerHigh" "30" Option "MaxTapTime" "180" Option "MaxTapMove" "220" Option "VertScrollDelta" "100" Option "MinSpeed" "0.10" Option "MaxSpeed" "0.30" Option "AccelFactor" "0.0150" Option "SHMConfig" "on" Option "AlwaysCore" "true" EndSection Section "Monitor" Identifier "aticonfig-Monitor[0]" HorizSync 30.0 - 70.0 VertRefresh 50.0 - 100.0 Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" EndSection Section "Monitor" Identifier "aticonfig-Monitor[1]" Option "DPMS" "true" EndSection Section "Device" Identifier "aticonfig-Device[0]" Driver "fglrx" Option "VideoOverlay" "on" Option "OpenGLOverlay" "off" Option "DesktopSetup" "horizontal,reverse" BusID "PCI:1:0:0" EndSection Section "Screen" Identifier "aticonfig-Screen[0]" Device "aticonfig-Device[0]" Monitor "aticonfig-Monitor[0]" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x800" "1280x1024" "1024x768" "800x600" "640x480" EndSubSection EndSection Section "DRI" Mode 0666 EndSection ### End Of File ###
Alcuni Test
Per verificare se abbiamo installato tutto correttamente:
$ fglrxinfo
dovrebbe dare un output simile a questo:
display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: MOBILITY RADEON 9700 Generic OpenGL version string: 2.0.5879 (8.26.18)
Se al posto di ATI compare Mesa, c'è qualcosa che non va. L'installazione non è andata a buon fine.
Per testare l'accelerazione:
$ fgl_glxgears
Dovrebbe comparire un cubo rotante con sulle sei facce degli ingranaggi rotanti e, sul terminale, la conta dei frame:
Using GLX_SGIX_pbuffer 1610 frames in 5.0 seconds = 322.000 FPS 1640 frames in 5.0 seconds = 328.000 FPS 2093 frames in 5.0 seconds = 418.600 FPS
Se invece compaiono 4-5 righe di errori, c'è qualcosa che non va. L'installazione non è andata a buon fine. Ritenta, forse sarai più fortunat*.
Per testare l'accelerazione è possibile utilizzare anche i tools di Mesa:
# apt-get install mesa-utils $ glxgears -printfps
Appaiono tre ingranaggi rotanti e la conta dei fotogrammi:
14045 frames in 5.0 seconds = 2808.862 FPS 14115 frames in 5.0 seconds = 2822.858 FPS 14196 frames in 5.0 seconds = 2839.177 FPS
File di log
Il file di log principale è /var/log/Xorg.0.log
e seguenti. Da spulciare, analizzare, bruciare, supplicare. Insomma qui c'è di tutto di più. Ma a volte si può anche non trovare nulla di anomalo e magari fgl_glxgears
non funziona lo stesso. 8°(
Se abbiamo installato i driver con l'installer Ati, esiste anche questo piccolo log: /usr/share/fglrx/fglrx-install.log
Tips and Tricks
- Una cosa importante, ma che resta comunque strana, è scrivere, in
/etc/X11/xorg.conf
, i modulidri
,glx
eGLcore
, in questo ordine. Se ad esempio si metteGLcore
per primo, l'accelerazione non andrà e il log/var/log/Xorg.0.log
riporterà una serie di errori, tra cui warning sulla libreria/usr/lib/xorg/modules/extensions/libGLcore.so
e un errore verso la fine, tristemente incorniciato. Questo errore non so se sia circoscritto alla mia configurazione o se sia un cosa generale. L'unica cosa è fare un po' di test. - A volte si ottengono risultati migliori installando i driver con X non avviato.
- Se i driver sono molto recenti il modulo
GLcore
non bisognerebbe inserirlo in/etc/X11/xorg.conf
: viene caricato automaticamente. - Aggiornando le librerie Mesa (
libgl1-mesa-dri
oppurelibgl1-mesa-glx
ad esempio), ahimè, può capitare che l'accelerazione sparisca all'improvviso. L'unica cosa da fare probabilmente è disinstallare i driver e installarli di nuovo. - Per quanto riguarda le trasparenze di KDE, credo non siano supportate a livello hardware. Io non sono riuscito ad attivarle, infatti se aggiungo a
/etc/X11/xorg.conf
la sezione:
Section "Extensions" Option "Composite" "Enable" EndSection
l'accelerazione 3D non viene caricata.
Guida scritta da: rasca 09:04, 17 July 2006 (CEST) | Debianized 20% |
Estesa da:
| |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |