------------------------------------------------------------------------------ Linux ATI Radeon HOW-TO ver 0.4 ------------------------------------------------------------------------------ By: WhiteR4bbit (whiter4bbit[at]linuxmail[dot]org) linuxhowtos.altervista.org Licenza: FDL Ultimo aggiornamento: Maggio 2004 Testing: Radeon 8500LE; Mandrake 10.0 (2.4.22; 2.6.3); Debian sid (2.4.22; 2.6.1) ------------------------------------------------------------------------------ Fonti e link utili: $ man radeon http://dri.sourceforge.net http://www.xfree86.org/current/ati.html http://www.xfree86.org/~alanh/ http://linuxhowtos.altervista.org/r200-20030701-linux.i386.tar.bz2 http://www.ati.com http://www2.ati.com/drivers/linux/readme0328.txt http://www.ati.com/support/infobase/linuxhowto-ati.html http://www.ati.com/products/catalyst/linux.html http://www.soloschedevideo.com/public/ati-guida.html ------------------------------------------------------------------------------ SOMMARIO: 0) Changelog 1) Introduzione 2) Installare il necessario 3) Configurare il sistema 4) Driver ufficiali ATI ------------------------------------------------------------------------------ 0)Changelog 0.4 [Maggio 2004] Qualche aggiunta riguardo i driver ufficiali ATI Testato anche per kernel 2.6 0.3 [Aprile 2004] Aggiornata la lista di compatibilità DRI Perfezionata la parte relativa ai driver ufficiali ATI Aggiunti alcuni link utili 0.2 [Novembre 2003] Aggiornata la guida alla compatibilità con Debian e altre distro Aggiunta una parte relativa ai driver ufficiali ATI 0.1 [Agosto 2003] Documento originale 1) Introduzione Quello che stiamo per attivare è il direct rendering ottenibile attraverso i driver di XFree86 per le schede video ATI Radeon. Ci sono altri driver per queste schede, tra cui quelli ufficiali di ATI, che da poco tempo ha deciso di supportare in modo decente Linux: una breve spiegazione sull'installazione dei driver ufficiali è presentata nell'ultima parte della guida. I driver di XFree86 (DRI) sono software libero e supportano le seguenti schede (le schede con core R300 o superiore sono supportate ma senza 3D, per queste schede quindi è consigliabile installare i driver ufficiali ATI): R100 Radeon 7200 RV100 Radeon 7000(VE), M6 RS100 Radeon IGP320(M) RV200 Radeon 7500, M7 RS200 Radeon IGP330(M)/IGP340(M) R200 Radeon 8500, 9100, FireGL 8800/8700 R280 Radeon 9200 RV250 Radeon 9000, M9 R300 Radeon 9700PRO/9700/9500PRO/9500, FireGL X1/Z1 2) Installare il necessario Tutto quello che ci serve per attivare l'accelerazione hardware per le schede ATI nella nostra linuxbox dovrebbe già essere presente. Si tratta infatti del supporto AGP (agpgart), del drm del kernel (Direct Rendering Manager) e dei driver radeon di XFree86. Controlliamo quindi che i moduli agpgart e radeon siano attivi, caricandoli con # modprobe agpgart # modprobe radeon Se riceveste un errore del tipo "can't locate module", dovrete ricompilare il kernel attivando le voci relative nella sezione character devices (si consiglia di attivarle come moduli, appunto). Una volta caricati i moduli agpgart e radeon, modifichiamo il file /etc/modules al fine di averli sempre caricati ad ogni avvio del sistema. Aggiungiamo quindi in fondo al file il nome dei due moduli: agpgart radeon L'ordine dev'essere esattamente questo, se caricate prima il modulo radeon non vi sarà riconosciuto l'AGP. Salvate il file, ovviamente da root, e iniziate a fare una copia di backup di XF86Config: # cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4_backup Se avete una Debian con XFree86 4.2/4.3, il drm del kernel non è sufficiente (si riferisce alla versione 4.1). Dovrete quindi scaricare il modulo radeon per la vostra versione di XFree86, compilarlo, e copiarlo nella directory opportuna. Ecco il link: * http://www.xfree86.org/~alanh/ Compilatelo con: # make -f Makefile.linux E copiatelo: # cp radeon.o /lib/modules/2.4.22/kernel/drivers/char/drm Ovviamente al posto di 2.4.22 dovete mettere il nome del vostro kernel (se non lo conoscete, digitate $ uname -r). Io con la mia 8500LE ho avuto inoltre bisogno di installare un pacchetto aggiuntivo, r200; non so se ci sia bisogno di installare pacchetti specifici anche con altre schede. In ogni caso se avete una R200 il pacchetto lo trovate qui: * http://linuxhowtos.altervista.org/r200-20030701-linux.i386.tar.bz2 Scompattatelo in una directory su filesystem linux (non in vfat, dato che lo script avrà bisogno di creare link simbolici) e entrate nella dir creata (dripkg). Ad esempio io ho messo tutto in /usr/share/r200/ Perciò la directory sarà /usr/share/r200/dripkg Per far funzionare il tutto dovrete uscire da X; quindi chiudete tutte le applicazioni e digitate # init 3 Ora entrate in dripkg e lanciate lo script (da root): # sh install.sh Una simpatica interfaccia apparirà e dovrete semplicemente leggere e premere invio, salvo particolare eccezioni; potete aprire sia il file install.sh sia il file di log per controllare in caso di errori... Nel caso non vi trovi la directory GL, createla: # mkdir /usr/share/r200/dripkg/GL e rilanciate l'installer #sh install.sh Quest'ultima parte si riferisce probabilmente non solo a Debian, ma anche ad altre distribuzioni come Gentoo e Slackware; per Mandrake invece non serve, e per Red Hat e SuSE non saprei. 3) Configurare il sistema Apriamo da root il file di configurazione di XFree86 (/etc/X11/XF86Config-4), con il nostro editor preferito, localizziamo la Section "Module" e assicuriamoci che siano attive le voci Load "glx" e Load "dri"; se non lo fossero, aggiungiamo le righe necessarie a questo scopo: Load "glx" # 3D layer Load "dri" # Direct Rendering Ora spostiamoci più in basso, fino alla Section "Device", e ottimizziamola a dovere. Innanzitutto controlliamo che sia presente la riga Driver "radeon" , necessaria per utilizzare i nostri driver; se non c'è aggiungiamola ovviamente. Per migliorare le prestazioni è poi conveniente attivare il PageFlip e, se la vostra scheda ve lo permette, l'AGP 4X (di default è a 1X); alla fine quindi dovremo avere, tra le altre voci: Driver "radeon" Option "EnablePageFlip" "True" Option "AGPMode" "4" Come ultima cosa, andiamo alla fine del file e aggiungiamo una sezione per permettere a tutti gli utenti di usufruire del direct rendering: Section "DRI" Mode 0666 EndSection Ecco fatto, salvate il file e riavviate. Potete anche riavviare solo X, per farlo premete CTRL+ALT+F2, loggatevi come root localhost login: root password: E date i seguenti comandi # init 3 # init 5 Ora testate se tutto ha funzionato, digitando $ glxinfo | grep rendering Se il direct rendering è su Yes, siete a posto. Potete avere un approssimmato benchmark delle prestazione utilizzando glxgears, digitate: $ glxgears E non toccate il PC per una ventina di secondi, dopodichè chiudete a forza il programma e controllate i vostri risultati... Se volete un confronto, io con una ATI Radeon 8500LE su AthlonXP 2100+ totalizzo circa 9.500 frame in 5 secondi. Nel caso invece ci siano stati dei problemi e non parta più il server grafico, quando siete in modalità testuale (oppure dalla modalità failsafe) non vi resta che ripristinare il vecchio file di configurazione... e ricontrollare nuovamente dall'inizio questo tutorial: # cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4_error # mv /etc/X11/XF86Config-4_backup /etc/X11/XF86Config-4 # reboot 4) Driver ufficiali ATI Se avete una delle ultime schede ATI (9500, 9600, 9700, 9800, e altre schede con core maggiore o uguale all'R300) potreste voler installare i driver ufficiali, che danno pieno supporto al 3D. Ovviamente questi driver funzionano anche con le altre schede, ma quando ho scritto questo howto per la prima volta, ATI non supportava ancora in modo funzionante Linux, e inoltre i moduli DRI sono software libero. In ogni caso se state leggendo questa quarta parte è perchè volete installare i driver ATI, vediamo quindi come fare: Innanzitutto assicuratevi di avere installati i sorgenti del kernel (il pacchetto kernel-source), dopodichè andate sul sito * www.ati.com E cliccate su "Drivers & Software", per poi scegliere "Linux", "Graphic driver" e il nome della vostra scheda. Proseguite e vi ritroverete nella pagina di download dei driver; per sapere quale scaricare, controllate la vostra versione di XFree86 digitando: $ X -version prelevate quindi il pacchetto giusto, disponibile solo in RPM. Per installarlo avrete quindi prima bisogno di convertirlo in un formato 'digeribile' dalla vostra distro, se non avete Mandrake, RedHate, SuSE o altre distribuzioni basate su rpm. Se avete Debian, convertitelo in deb utilizzando Alien: # alien fglrx-glc22-4.1.0-3.2.8.i586.rpm Se avete Slackware convertitelo in tgz usando rpm2tgz: # rpm2tgz fglrx-glc22-4.1.0-3.2.8.i586.rpm Se avete Gentoo potrete convertirlo in tar.gz: # rpm2targz fglrx-glc22-4.1.0-3.2.8.i586.rpm Ora è arrivato il momento di installare i driver. Per farlo, dovrete forzare la sovrascrittura di alcuni file di X con una versione specifica per i driver ATI. Quindi, se usate Mandrake, RedHate, SuSE o comunque l'rpm, installate con: # rpm -i --force fglrx-glc22-4.1.0-3.2.8.i586.rpm Se avete Debian: # dpkg -i --force-overwrite fglrx-glc22-4.1.0-3.2.8.i586.deb Se avete Slackware: # installpkg fglrx-glc22-4.1.0-3.2.8.i586.tgz Se avete invece convertito il pacchetto in un archivio tar.gz, dovrete scompattarlo e installare i driver con i comandi canonici: # ./configure # make # make install E' arrivato il momento della configurazione, identica per tutte le distro. Digitate: # fglrxconfig E rispondete alle domande, indicando il tipo di tastiera usata e il relativo layout, il mouse, il refresh del monitor (controllate il manuale), e l'agp che volete utilizzare (quello esterno dovrebbe essere migliore, tuttavia alcuni chipset come l'nForce2 richiedono quello interno). Riavviate e controllate che tutto funzioni: $ glxinfo | grep rendering Se vi dicesse che il Direct Rendering non è ancora attivato, provate a controllare con # lsmod che siano caricati i moduli agpgart e fglrx. Se non lo fossero, caricateli con # modprobe agpgart # modprobe fglrx Se vi dovesse dare errore, potrebbe essere che prima di installare questi driver stavate utilizzando il modulo radeon e i DRI: non potete assolutamente far convivere due driver diversi per una stessa periferica, perciò spero sia chiaro che prima di utilizzare fglrx dovrete togliere radeon. Se lo avevate built-in nel kernel, ricompilate quest'ultimo togliendo il supporto al DRM, se avevate semplicemente il modulo non dovete fare altro che cancellarne il nome da /etc/modules e toglierlo momentaneamente dal kernel con il solito modprobe, prima di caricare fglrx: # modprobe -r radeon # modprobe fglrx Se ancora doveste ricevere un errore, è possibile che il modulo fglrx non sia stato creato. In questo caso dovrete compilarlo voi; assicuratevi innanzitutto di avere i sorgenti del kernel installati, dopodichè eseguite questi semplici passi # cd /lib/modules/fglrx/build_mod # ./make.sh # cd .. # ./make_install Vale quanto detto prima, non dovete avere il modulo radeon caricato. Riprovate quindi ora dare # modprobe fglrx Dopo aver caricato il modulo potreste dover rifare la configurazione con fglrxconfig. Se tutto funziona, aggiungete il nome del modulo in fondo a /etc/modules, in modo da avere tutto funzionante anche dopo un riavvio. Ah, se utilizzate Mandrake potreste dover attivare la voce "Avvia XFree86 con accelerazione hardware 3D" nel centro di controllo. I driver dovrebbero funzionare indiscriminatamente sia con i kernel 2.4 sia con i kernel 2.6