- ATI RADEON GRAPHIC ACCELERATOR ON SLACKWARE 9.1 -
MINI HOW-TO
By G3N3S1S - G3N3S1S (at) Softhome (dot) net
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::
1. Intro
2. Note riguardo la porta AGP
3. Drivers Non ufficiali
4. Settare il kernel slackware
5. Compilare i drivers
6. Configurare X
7. Test del modulo
8. Note su schede madri basate sul chipset VIAKT400
9. Outro & Credits
:::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::
[1] INTRO :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::
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.
DISCLAIMER:
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
[2] 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à.
[3] 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
[4] 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.)
[5] 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..
[6] 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
[7] 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.
[8] Note su schede madri basate sul chipset VIAKT400 :::::::::::::::::::::::::::::::::::::::::::::::::: ::::
Certe persone (come me
) 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
[9] Outro & Credits :::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::
How-to scritto da 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
Public key for
g3n3s1s@softhome.net
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.3 (GNU/Linux)
mQGiBD/Th2IRBACBp4BTF3Mq42kN8KauOiiNxec1KJnTV7nQzsTbY//ll5UckoMb
7JvU02RYOCdZRhZAVuDZOYv800FLAV59LlfQ7CseZeQ579HvmK ZG03iB2r9kg4UV
hpCgpsxugE8YyODRi3vTZoH2VSwRHw2etcF2Y21CcCUXSjfVwf 9+AOH6xwCg9XeA
iy1W7Fy2Og0lCcgqhMAUUmMD/3ACSxy3/kp70venvXTVtSJw9TifJVHL5TmN9sJy
dSw3WOYzLy04U1iROeXJp5vr3L+GYe/a9KmX5cUd11Setvd05MksM1c4CI/uHF8Y
2gSM+Ju0K2XG9+JD1Qs4nL7m2fqEciWTydA/MF0u7UuRrStpi5UCDVb1NCkTzKly
jkUEA/4w22PHo5O489Hp1HW85TQj4zSiYXUsxqo2Brk9+dHuNTRVw9Ma JNLednAS
+JpUfq2KzKz3GY1ynbq4fWPCpdcU2Vq48F3ahHJeMKoIl6+Ydo SvRCUNrFAEB1qj
Pd8nA2vhY9SFW/WWDjd15/nolzsv12vuMPTuQU5Yob53RGzMPLQoRzNOM1MxUyAo
RzNOM1MxUykgPEczTjNTMVNAc29mdGhvbWUubmV0PoheBBMRAg AeBQI/04diAhsD
BgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEE3nt6JVDR4/+CYAoNbr+vIFGazzyChY
AUwm/NlADXmDAKDjW51NSjDgB986P2rHO8ir1pShdrkCDQQ/04dtEAgAptAksHDE
tbzPyedC9JdlOV0UdXy3oQj+N5D+pB6Ehclf8qsRxAFvZn3Ntd Mt5eWEOVV3/BKU
fPBnNr9XXAD73/Fq8g3Pqfrv1xjOEOflTHgmaWOWhTLfueISxWrYNadtb4dW/A0A
grbyzYY27pQzWaIqkb2EB34jdES2ZN73TrZk+oL/oaTMK1zt+9jVMtogtm7CpBkU
xfFb93nDIM3InYurzlPQW1X38Rs7iSFEExC5QLX786nf3i2Mx6 Szso+3TQopWf2O
e9rI3LxvzylZuhNnnqzP0PVoRQjl9LPiJF7Aeg2UMaa/RIsddlawXqlDaFEt9hnh
tFELLbIcHA4rowADBQgAgkC1DpqitGHRxi8tlkqWT9rxPZHqTq EiTrLLTu4CaHfX
I4oz1iQXN4T8BvH7YglieizsUvR3rlRMtEe5rdGKILmmyQR48P PR5KEszbwbxJxT
/PZnBKZ+yzUwCS0UtxfuB3rBkcZTMRy3Q+FhWlpmL+FviHcCmzh QPB1pWoCOsWfJ
OoDfu5f4RwTTM9cZrVC7acJzvUDVPn5aC9xfmZpxGIwd6WQvXy EaEJtH8UA+Qm/3
QaCMVWFXAOGcLOfNmVvJxZuxLSVAoyP3qV5wNvPXrLziAh/EjTk3QYzxeww9VPxi
NEMgEvTkXl+vBfw8QH/4nvla3Ip/JN3qdfMUaUBAKohJBBgRAgAJBQI/04dtAhsM
AAoJEE3nt6JVDR4/MUcAoNDOd+qGdX8XVY/jCMxV0f4P8xJhAKDipZsHvM9N9teH
ZUFRNL+x6CBHcA==
=jeD8
-----END PGP PUBLIC KEY BLOCK-----