Repository 32bit  Forum
Repository 64bit  Wiki

Scheda grafica ATI RADEON su Slackware 9.1: differenze tra le versioni

Da Slacky.eu.
(Outro & Credits)
m (Archiviata 10.x - la guida si riferisce a slackware 9.1, link non più attivi)
 
Riga 142: Riga 142:
G3N3S1S@Softhome.net
G3N3S1S@Softhome.net
[[Category:Server_X]]
+
[[Category:Server_X-10]]

Versione attuale delle 22:08, 22 apr 2011

Indice

[modifica] Introduzione

In questo piccolo tutorial cercherò di spiegare come installare i drivers ATI radeon su linux slackware 9.1 (naturalmente con il completo supporto per l'accelerazione 3d) per aiutare tutte quelle persone (come me poco tempo fa...:) che stanno ancora cercando il modo x far funzionare questa scheda sulla loro linux box.

[modifica] Disclamer

Le informazioni e le cose qui riportate derivano da documenti sparsi qua e la nella rete e dall'esperienza personale, possono quindi essere parzialmente errate, incomplete, incoerenti stupide o inutili.. sta a voi trarne qualcosa di buono. Posso solo spiegarvi come ho fatto io, poi si sa, ogni linux box ha il suo carattere.. è questo il bello :D

[modifica] Note riguardo la porta AGP

Come ho potuto notare cercando di installare i drivers, la maggior parte dei problemi derivano da drivers non correttamente funzionanti per la porta AGP, quindi penso che prima di iniziare sia meglio cercare di capire cosa sia e a cosa serva questa interfaccia. AGP (Advanced Graphics Port) è un bus, inventato dalla intel, con accesso alla memoria ram molto più veloce rispetto al normale bus pci, e collega direttamente la scheda grafica alla memoria del sistema attraverso un chipset apposito. AGP può avere diverse "modalità" basate sul moltiplicatore rispetto alla velocità del bus pci. C'è da precisare che la porta lavora comunque alla frequenza di 66mhz (rispetto ai 33 della pci), ma i dati sono trasferiti varie volte ogni ciclo di clock. Per esempio un bus AGP 2x trasferisce il doppio dei dati rispetto ogni clock, quello 4x quattro volte di più e così via. I problemi nel nostro caso sono dovuti al fatto che l'agp8x non è supportato dal kernel della serie 2.4 e quindi dobbiamo compilare dei drivers apposta per poter sfruttare al massimo la sua velocità.

[modifica] Drivers non ufficiali

Penso che i drivers ufficiali dell'ati compiano senza problemi il loro dovere, ma io non li ho mai provati, quindi per il momento se volete seguire questo how-to, vi suggerisco quelli non ufficiali scaricabili gratuitamente da:

http://www.schneider-digital.de/html/download_ati.html

Nel mio caso (una RADEON9500) ho scaricato "glx1_linux_X4.3.zip", se si sta usando una versione diversa di XFREE86 è necessario ovviamente scegliere il pacchetto opportuno. Ricordo che la slackware 9.1 contiene XFREE86 versione 4.3

[modifica] Settare il kernel slackware

Come ho detto prima, dato che l'agp8x non è supportato dal kernel serie 2.4, dobbiamo prima disabilitare il supporto AGPGART dal nostro kernel per evitare conflitti con quello nuovo che andremo ad installare in seguito. Vediamo come fare passo passo: Per iniziare, i sorgenti del kernel dovrebbero trovarsi in /usr/src/linux-2.4.xx, nella slackware 9.1 è presente di default il 2.4.22. Occorre controllare per prima cosa che in /usr/src vi sia un link simbolico che punta alla dir dei sorgenti del kernel. Se così non fosse, basta un:

# ln -s /usr/src/linux-2.4.22 /usr/src/linux

ora /usr/src/linux punterà a /usr/src/linux-2.4.22. A questo punto assicuriamoci che il supporto per l'agp non sia compilato nel nostro kernel:

# cd /usr/src/linux
# make menuconfig

Nella sezione "CHARACTER DEVICES", assicurarsi che "/dev/agpgart (AGP SUPPORT)" sia disabilitata. Se così non fosse occorre ricompilare il kernel, apportando la modifica. (non è nello scopo di questo how-to spiegare come si ricompila il kenel, se non si è in grado di farlo, continuare la lettura dopo aver consultato relative documentazioni.)

[modifica] Compilare i drivers

Ora che la nostra slackware è pronta, possiamo iniziare ad installare i drivers, prima di tutto occorre unzippare il pacchetto che abbiamo scaricato in una dir temporanea:

# unzip glx1_linux_x4.3.zip
# cd X4.3.0-3.2.8

A questo punto dobbiamo convertire il pacchetto rpm contentente i drivers in un pacchetto standard slackware tgz, per fare ciò ci viene in aiuto un potente tool (rpm2tgz) che compie il suo lavoro fin troppo bene :) vediamo come:

# rpm2tgz fireglrx-4.3.0_3.2.8-6.i586.rpm

[ NON CERCARE DI INSTALLARE DIRETTAMENTE IL PACCHETTO RPM, OCCORRE CONVERTIRLO PRIMA IN TGZ!! ]

A questo punto dovremmo avere nella nostra dir un file chiamato fireglrx-4.3.0_3.2.8-6.i586.tgz, installabile con un semplice:

# installpkg fireglrx-4.3.0_3.2.8-6.i586.tgz

La prima parte del nostro lavoro è compiuta! ora non ci resta che compilare. Per fare ciò andiamo nella directory dove sono stati installati i sorgenti:

# cd /lib/modules/fglrx/build_mod

E runniamo lo script di compilazione:

# ./make.sh

Se tutto, come dovrebbe, è andato bene, torniamo indietro su /lib/modules/fglrx/:

# cd ..

E installiamo definitivamente il modulo appena compilato:

# ./make_install.sh

BENE! ora abbuamo fglrx.o (il nostro driver) installato e pronto all'uso, ma non abbiamo ancora finito..

[modifica] Configurare X

Ora dobbiamo settare il config di XFREE86 (XF86Config-4) per dire a X di caricare fglrx come display driver e attivare i moduli glx e dri. Per fare questo possiamo servirci di uno script chiamato fglrxconfig che ci aiuta nel nostro compito:

# fglrxconfig

Dopo aver eseguito e seguito le indicazioni proposte, siamo pronti per far partire X con il nostro nuovo driver e con l'accelerazione attivata. Prima di tutto dobbiamo caricare il modulo:

# insmod /lib/modules/fglrx/fglrx.o

Tutto dovrebbe essere andato bene, se così non fosse è possibile un more /var/log/syslog per vedere gli eventuali errori riportati. A questo punto si può startare X:

# xinit

[modifica] Test del modulo

Se X sta funzionando, probabilmente le cose sono andate bene e fglrx sta facendo il suo dovere, è comunque buona idea fare un paio di tests per vedere se effettivamente tutto gira come dovrebbe. Intanto vediamo cosa rileva fglrx:

# fglrxinfo

Sulla mia linux box, ritorna una cosa del genere:

genesis@psy:/etc/rc.d$ fglrxinfo
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon 9500 (AIB) Athlon (3DNow!)
OpenGL version string: 1.3 (X4.3.0-3.2.8)

Possiamo inoltre testare le performance dell'opengl con:

# glxgears

Dovrebbe dare come output un FPS medio attorno ai 1900-200 su una radeon9500. Se ritorna cose tipo 100-200, probabilmente l'accelerazione 3d non è attivata. Sarebbe bene provare a riconfigurare XF86Config-4 con lo script di prima e provare a risolvere il problema. Controllare in ogni caso che sul suddetto file di configurazone sia presente

Load "dri"
Load "glx"

In ogni caso ricordarsi che in /var/log si possono avere molte informazioni su eventuali errori.

[modifica] Note su schede madri basate sul chipset VIAKT400

Certe persone (come me :D ) hanno riscontrato problemi con fglrx su schede madri basate sul chipset VIAKT400. Fortunatamente la soluzione (almeno nel mio caso :) sembra essere abbastanza semplice, dato che i problemi sono originati dal codice che rileva il chipset in agpgart_be.c Per risolvere il problema, prima di compilare il modulo (il procedimento è descritto nella sezione 5), occorre apportare qualche modifica ai sorgenti:

# cd /lib/modules/fglrx/build_mod

E quindi con il vostro editor preferito, aprire agpgart_be.c e sostituire:

 { PCI_DEVICE_ID_VIA_8377_0,
        PCI_VENDOR_ID_VIA,
        VIA_APOLLO_KT400,
        "Via",
        "Apollo KT400",
        via_generic_setup }

con:

 { PCI_DEVICE_ID_VIA_8377_0,
        PCI_VENDOR_ID_VIA,
        VIA_APOLLO_KT400,
        "Via",
        "Apollo KT400",
        via_kt400_setup }

A questo punto tutto dovrebbe funzionare :D

[modifica] Outro & Credits

Autore: G3N3S1S Questo doc è dedicato a Lorys e a tutto il forum di Slacky.it che mi ha aiutato in molte occasioni...grazie a tutti di cuore!!!

Se vuoi mandarmi una mail per segnalarmi qualche bug o semplicemente per chiedere qualcosa:

G3N3S1S@Softhome.net

Strumenti personali
Namespace

Varianti