(Italiano → English) View originalTranslators:

FGLRXpkcriahzbqzx9wtiw46z7mqqvbuzr1bv
Da qualche tempo non installavo i driver Ati ufficiali sulla mia debian, tra le tante cause la mancanza della necessità di farlo (il driver ati fornito come modulo del kernel funziona benissimo) e l’assenza di supporto ufficiale regolarmente aggiornabile da apt, a differenza di quanto invece avviene da tempo con Nvidia.
Utilizzando la versione Sid di Debian (Unstable) che rilascia pacchetti più q6hmbkeuu8d35kxh7lrmkv1uh7ad9mrlnuovi con un’elevata frequenza, avevo avuto di recente la spiacevole sorpresa di non riuscire a ricompilare i driver, perchè il range di versioni di Xorg supportate non includeva la più recente versione 7 utilizzata da Debian.
Essendo passato del tempo però, ed avendoci messo un po gli sviluppatori di Ati a rilasciare i nuovi driver ufficiali per Linux, mi ero illuso di poter trovare una soluzione pulita facilmente installabile che qqabrndc6gz7wztxytgxukjtwkwlvwgspotesse filare liscia dall’inizio alla fine.
qq6bwbgmfgpa5b5sct1v4sujf5jrdpb2
INSTALLAZIONEq0in66h0pkde5o9ywf6zwrrde4nzyq3s
Tempo di scaricare i nuovi driver dal sito ufficiale per la mia Mobility Radeon 9700 in versione installer:
ryb96xfhiv1hgjpkng9ec970xr4o75sv
https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-8.32.5-x86.x86_64.run
rkk4uk91sdpl4whokya3f97e12yw6ydb
lanciare l’installazione da shell:
r76tjttvjfeoqq761r4mgvt6sctk7vpt
caio@killermobile:~$ sh ati-driver-installer-8.32.5-x86.x86_64.runr6p0nu6wbu3rzkkmvfvqtiiimyd9nku1
e subito mi accorgo dell’infondatezza di tutte le mie speranze, i driver ati tanto per cambiare danno problemi e falliscono l’installazione durante la compilazione del modulo.
Andando a leggere l’output questo è l’errore ritornato:
seyyrs2h4apw2hsjt3ibpqjamzc0y6fl
killermobile:~# cat /usr/share/ati/fglrx-install.log
[Message] Kernel Module : Trying to install a precompiled kernel module.
[Message] Kernel Module : Precompiled kernel module version mismatched.
[Message] Kernel Module : Found kernel module build environment, generating kernel module now.
ATI module generator V 2.sotwgaozwiu5hgj98bg00bd9z4tjq4e00
==========================
initializing…
cleaning…
patching ‘highmem.h’…
assuming new VMA API since we do have kernel 2.6.x…
Assuming default VMAP API
Assuming default munmap API
doing Makefile based build for kernel 2.6.x and higher
make -C /lib/modules/2.6.19-ck2-kolivan/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x tmlig1mgoti9tbzvycjffttvira9zj23modules
make[1]: Entering directory `/usr/src/linux-2.6.19′
CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:89:26: error: linux/config.h: No such file or directory
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:456: warning: initialization from incompatible pointer type
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function t9ud3ng0ya6cgoqzwuk4iutal23gyboj‘firegl_stub_open’:
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:579: warning: assignment discards qualifiers from pointer target type
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_request_irq’:
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2568: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error t70s513r86vfr05067hdwwv9somnav3p1
make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.19′
make: *** [kmod_build] Error 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module – please consult readme.utwur18203ijfvxpkdo71c8b7zed6jy2
Questa volta non mi do per vinto, e vado alla ricerca di una soluzione.
Cerca e ricerca trovo qua e la qualche spiegazione (il forum slacky.it è stato essenziale), ma niente di organizzato e chiaro, per cui dopo aver risolto ho deciso di postare questo piccolo articolo in modo da riassumere i passaggi necessari a risolvere il tutto.
Dopo aver lanciato uc8qa4kk4ruqg47l5a3mmofniyla7gshl’installazione (non da rpm) che è fallita, dovremmo trovare una directory in /lib/modules/fglrx/, contenente i files necessari al completamento.
A questo punto è necessario recarsi nella directory /lib/modules/fglrx/build_mod/ :
unaooa1id0judg9ksiwfbsl7twthyr0c
cd /lib/modules/fglrx/build_mod/vj0wh4t6pm6ysvsywmhbwj6rck4pysi8
e dare 3 comandi che servono a sistemare i files "bacati":
vtc8szukzqu1s8w4h8mfoi2lbj9wjtay
sed -i ‘/src_file=$linuxincludes\/linux\/version.h/s,version,utsrelease,’ make.sh;
sed -i ‘/linux\/config.h/s;linux\/config.h;linux\/autoconf.h;’ *.{h,c};
sed -i ‘/#includevsintdib9li52lb5rljo2k5li6r3vdp4 /a\#define VM_SHM 0\n#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)\n#includev27s6v8z1a781fepvihns4os55ytjj7x \n#endif’ firegl_public.c;wrxu22xm90xblq1gz9uqog6mweyztvpm
Fatto questo possiamo lanciare la compilazione del modulo fglrx:
w2dkiu4t0tmeik2u6shec6yjvb8nnanj
sh make.shwpc1ardwagch3vrs6w6sbc7oal5urcp4
poi lo installiamo spostandoci nella directory padre:
w016n94k240l2qucau4r2wqvxkbjfj7x
cd ..
sh make_install.sh
xy7lonsbbzpoc38dl710gytv46uqr2m2
e infine lo carichiamo:
x9ai3t88l8erafad8fut53zff42xidux
modprobe fglrxxx9zvpicuu3vwrza9jj7497juez3nfvi
e se necessario editiamo il file xorg.conf aggiungendo il nome del driver appena compilato da caricare all’avvio di X:
x7z47890miryul3udgh6vtqqhd5taldb
Section "Device"
Identifier "ATI Technologies Inc RV350 [Mobility Radeon 9600 M11]"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSectionyt80vu3kw0g1iyuyayivyuq5koy08ezr
Fatto!
Riavviamo X e verifichiamo che i driver siano stati caricati correttamente:
yqa0qblip735vucrydxlh5x2rbcqcj7p
caio@killermobile:~$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 2.0.6234 (8.32.5)y09kzjwmiqq9wqhhyo8vaj8j3begtg9d
Ora possiamo utilizzare i driver Ati ufficiali nonostante l’avversione degli sviluppatori nel fornirci un supporto funzionante!yyfy0xkdsmfc72wj9154olajaxxn6zoj
(original) Visualizza English translation

FGLRX
Da qualche tempo non installavo i driver Ati ufficiali sulla mia debian, tra le tante cause la mancanza della necessità di farlo (il driver ati fornito come modulo del kernel funziona benissimo) e l’assenza di supporto ufficiale regolarmente aggiornabile da apt, a differenza di quanto invece avviene da tempo con Nvidia.
Utilizzando la versione Sid di Debian (Unstable) che rilascia pacchetti più nuovi con un’elevata frequenza, avevo avuto di recente la spiacevole sorpresa di non riuscire a ricompilare i driver, perchè il range di versioni di Xorg supportate non includeva la più recente versione 7 utilizzata da Debian.
Essendo passato del tempo però, ed avendoci messo un po gli sviluppatori di Ati a rilasciare i nuovi driver ufficiali per Linux, mi ero illuso di poter trovare una soluzione pulita facilmente installabile che potesse filare liscia dall’inizio alla fine.
INSTALLAZIONE
Tempo di scaricare i nuovi driver dal sito ufficiale per la mia Mobility Radeon 9700 in versione installer:
https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-8.32.5-x86.x86_64.run
lanciare l’installazione da shell:
caio@killermobile:~$ sh ati-driver-installer-8.32.5-x86.x86_64.run
e subito mi accorgo dell’infondatezza di tutte le mie speranze, i driver ati tanto per cambiare danno problemi e falliscono l’installazione durante la compilazione del modulo.
Andando a leggere l’output questo è l’errore ritornato:
killermobile:~# cat /usr/share/ati/fglrx-install.log
[Message] Kernel Module : Trying to install a precompiled kernel module.
[Message] Kernel Module : Precompiled kernel module version mismatched.
[Message] Kernel Module : Found kernel module build environment, generating kernel module now.
ATI module generator V 2.0
==========================
initializing…
cleaning…
patching ‘highmem.h’…
assuming new VMA API since we do have kernel 2.6.x…
Assuming default VMAP API
Assuming default munmap API
doing Makefile based build for kernel 2.6.x and higher
make -C /lib/modules/2.6.19-ck2-kolivan/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.19′
CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:89:26: error: linux/config.h: No such file or directory
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:456: warning: initialization from incompatible pointer type
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘firegl_stub_open’:
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:579: warning: assignment discards qualifiers from pointer target type
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_request_irq’:
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2568: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.19′
make: *** [kmod_build] Error 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module – please consult readme.
Questa volta non mi do per vinto, e vado alla ricerca di una soluzione.
Cerca e ricerca trovo qua e la qualche spiegazione (il forum slacky.it è stato essenziale), ma niente di organizzato e chiaro, per cui dopo aver risolto ho deciso di postare questo piccolo articolo in modo da riassumere i passaggi necessari a risolvere il tutto.
Dopo aver lanciato l’installazione (non da rpm) che è fallita, dovremmo trovare una directory in /lib/modules/fglrx/, contenente i files necessari al completamento.
A questo punto è necessario recarsi nella directory /lib/modules/fglrx/build_mod/ :
cd /lib/modules/fglrx/build_mod/
e dare 3 comandi che servono a sistemare i files "bacati":
sed -i ‘/src_file=$linuxincludes\/linux\/version.h/s,version,utsrelease,’ make.sh;
sed -i ‘/linux\/config.h/s;linux\/config.h;linux\/autoconf.h;’ *.{h,c};
sed -i ‘/#include /a\#define VM_SHM 0\n#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)\n#include \n#endif’ firegl_public.c;
Fatto questo possiamo lanciare la compilazione del modulo fglrx:
sh make.sh
poi lo installiamo spostandoci nella directory padre:
cd ..
sh make_install.sh
e infine lo carichiamo:
modprobe fglrx
e se necessario editiamo il file xorg.conf aggiungendo il nome del driver appena compilato da caricare all’avvio di X:
Section "Device"
Identifier "ATI Technologies Inc RV350 [Mobility Radeon 9600 M11]"
Driver "fglrx"
BusID "PCI:1:0:0"
EndSection
Fatto!
Riavviamo X e verifichiamo che i driver siano stati caricati correttamente:
caio@killermobile:~$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 2.0.6234 (8.32.5)
Ora possiamo utilizzare i driver Ati ufficiali nonostante l’avversione degli sviluppatori nel fornirci un supporto funzionante!