ATI Proprietary driver e kernel 2.6.20 (altra patch)

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

ATI Proprietary driver e kernel 2.6.20 (altra patch)

Messaggio da targzeta »

Ciao a tutti,
ancora una volta, il kernel muta e i driver della ATI restano fermi.
In questo topic:
http://www.slacky.it/forum/viewtopic.ph ... highlight=
spiegavo come risolvere un pò di problemini legati ai driver ATI e alla compilazione del modulo fglrx.ko per il kernel 2.6.19.
Con il nuovo kernel 2.6.20 c'è un nuovo problema. Dal kernel, e più precisamene nei file include/asm/unistd.h sono state tolte alcune definizioni, le _syscall2 e company. Purtroppo queste definizioni sono necessarie affinché il modulo ATI venga compilato correttamente.
Per ovviare a questo problema, sembra che basti riutilizzare le definizioni di vecchi kernel.
Qui:
http://mlau.at/fglrx-833-2620-fixes.patch
c'è la patch da applicare al file firegl_public.c.
Io l'ho testata sulla versione dei driver ATI 8.33.6!!!

Ora, chi ha già vissuto l'agonia di patchare le vecchie versioni, sa già cosa fare :)

Qui riporto una mini-guida, anche se non molto elegante, per risolvere il problema.
1) Scaricare l'installer per i driver 8.33.6 dal sito della ATI
2) Scaricare l'rpm che è linkato più giù. Quello che serve per xorg 6.8
3) Eseguire l'installer usando l'opzione custom e, nel menù in cui si sceglie cosa installare, deselezionare l'installazione del modulo (la seconda voce).
4) Portare l'rpm scaricato in formato tgz con il comando

Codice: Seleziona tutto

rpm2tgz file.rpm
5) Estrarre il tgz in qualche directory ad esempio con

Codice: Seleziona tutto

mkdir /tmp/prova;
cd /tmp/prova;
tar -zxf file.tgz
6) Entrare nella directory (seguendo l'esempio precedente),

Codice: Seleziona tutto

 cd lib/modules/fglrx/build_mod
7) Scaricare la patch che ho linkato precedentemente con:

Codice: Seleziona tutto

wget http://mlau.at/fglrx-833-2620-fixes.patch
8\) Patchare il file firegl_public.c come segue:

Codice: Seleziona tutto

patch firegl_public.c fglrx-833-2620-fixes.patch
9) Compilare il modulo con:

Codice: Seleziona tutto

sh make.sh
10) Copiare il modulo nell'albero /lib/modules/2.6.20/, ad esempio con:

Codice: Seleziona tutto

cp fglrx.ko /lib/modules/2.6.20/
11) Ricreare le dipendenze con:

Codice: Seleziona tutto

depmod
FINE

Spina

P.S. Vorrei creare uno slackbuild che parta dall'installer e crei il pacchetto per la nostra slackware, sia del modulo per il kernel, sia per X. L'idea sarebbe di fare due pacchetti diversi in modo che se uno cambia kernel, quello che gli serve e solo rifarsi il modulo. Mentre se cambia sistema X gli basta solo rifarsi il pacchetto per X. La cosa non sembra complessa, gli sviluppatori ci danno la possibilità di farci un nostro build ed eseguirlo tramite l'installer della ATI. Se qualcuno vuole collaborare, è sempre benvenuto.

Avatar utente
Vito
Staff
Staff
Messaggi: 4182
Iscritto il: mar 5 dic 2006, 17:28
Nome Cognome: Vito
Desktop: MacOS
Località: Monaco (DE)
Contatta:

Messaggio da Vito »

la patch vale anche per i driver 8.28.8 ???????
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]

"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

John-Cena ha scritto:la patch vale anche per i driver 8.28.8 ???????
Provala ;). Tanto se non funge, semplicemente non ti compila il modulo.

Fammi sapere,
Spina

Avatar utente
Vito
Staff
Staff
Messaggi: 4182
Iscritto il: mar 5 dic 2006, 17:28
Nome Cognome: Vito
Desktop: MacOS
Località: Monaco (DE)
Contatta:

Messaggio da Vito »

funziona tuto alla perfezione!
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]

"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]

Avatar utente
Luci0
Staff
Staff
Messaggi: 3591
Iscritto il: lun 27 giu 2005, 0:00
Nome Cognome: Gabriele Santanché
Slackware: 12.2 14.0
Kernel: 2.6.27.46- gen 3.2.29
Desktop: KDE 3.5.10 Xfce
Località: Forte dei Marmi
Contatta:

Messaggio da Luci0 »

Fate pure la patch lo slackbuild e il tgz etc. .. tanto il driver proprietario fa casino lo stesso !!! :-)

SpArDa
Linux 0.x
Linux 0.x
Messaggi: 17
Iscritto il: sab 7 ott 2006, 15:19

Messaggio da SpArDa »

Grazie 1000 spina, ora finalmente posso godermi il 3d sul kernel 2.6.20!

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

Luci0 ha scritto:Fate pure la patch lo slackbuild e il tgz etc. .. tanto il driver proprietario fa casino lo stesso !!! :-)
Ormai è come sparare sulla croce rossa :). Purtroppo la mia scheda non è supportata dai driver open source, altrimenti sai quanti sbattimenti in meno mi farei ;).
Non capisco perchè almeno il modulo del kernel non lo inglobano nei source. Tanto comunque i sorgenti del modulo sono già open, che gli costa cambiare il tipo di licenza e far si che possano essere rilasciati insieme al kernel.
Posso anche capire che i driver per X vogliano tenerli nascosti, ma quelli per il kernel. Vabbuò, noi poveri mortali ci arrangiamo come possiamo :(

Spina

barrett
Linux 0.x
Linux 0.x
Messaggi: 32
Iscritto il: dom 24 set 2006, 13:31

Messaggio da barrett »

preciso, pulito, splendido!

col 2.6.19.2 nn riuscivo, e allora ho preso il 2.6.20 e in 10 min ho risolto tutto :D

nuovamente grazie spina :D

Avatar utente
Vito
Staff
Staff
Messaggi: 4182
Iscritto il: mar 5 dic 2006, 17:28
Nome Cognome: Vito
Desktop: MacOS
Località: Monaco (DE)
Contatta:

Messaggio da Vito »

SpArDa ha scritto:Grazie 1000 spina, ora finalmente posso godermi il 3d sul kernel 2.6.20!
che 3D °_°
"Stat rosa pristina nomina, nomina nuda tenemus." [ Umberto Eco - Il nome della rosa]

"Faber est suae quisque fortunae ." [ Appio Claudio Cieco]

SpArDa
Linux 0.x
Linux 0.x
Messaggi: 17
Iscritto il: sab 7 ott 2006, 15:19

Messaggio da SpArDa »

Vabbè sempre meglio di niente... Comunque devo dire che sono migliorati ultimamente i driver ATI, fino a qualche mese fa con glxgears raggiungevo i 400 FPS, ora invece anche i 1500!

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

che sfiga a me non va; inoltre ho un paio di cose che non mi tornano:
nel punto 3 dici che la voce modulo è la seconda: a me risulta essere la terza(Kernel Module [spero sia stata una tua distrazione]); una volta eseguite le TRE patch suggerite nel post(http://www.slacky.it/forum/viewtopic.ph ... sc&start=0), e patchato il file firegl_public.c, eseguo make.sh, ma ho i seguenti errori:
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.20/build SUBDIRS=/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.20'
CC [M] /home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:542: warning: initialization from incompatible pointer type
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function `firegl_stub_open':
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:665: warning: assignment discards qualifiers from pointer target type
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3392:30: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function `__che_vm_map':
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3392: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3392: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3392: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3392: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3398:30: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3398: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3398: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3398: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3398: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3419:42: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3419: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3419: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3419: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3419: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3426:42: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3426: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3426: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3426: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3426: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3458:34: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3458: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3458: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3458: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3458: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3490:34: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3490: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3490: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3490: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3490: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3499:24: invalid suffix "n" on integer constant
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3499: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3499: error: syntax error before "if"
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3499: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:3499: error: syntax error at '#' token
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: At top level:
/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2403: warning: 'deferred_flush' defined but not used
make[2]: *** [/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/home/lenny/ati/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.20'
make: *** [kmod_build] Error 2
build failed with return value 2
ora non so se dovevo fare anche qualcos'altro prima di eseguire sh make.sh ma a quanto pare qualcosa che non va c'è...Spero che qualcuno mi illumini a riguardo. Non se ne può +, su questo forum il 30% dei post è per i problemi dei nuovi drivers ati....per ogni nuova release...

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio da targzeta »

lennynero ha scritto:...una volta eseguite le TRE patch...
Le patch servivano per le vecchie versioni dei driver. Con i driver 8.33.6 non c'è bisogno di fare tutte e tre le vecchie path, basta seguire quello che ho scritto in questo post.
Prova e poi fammi sapere,
Spina

Avatar utente
phobos3576
Staff
Staff
Messaggi: 2980
Iscritto il: dom 17 apr 2005, 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Messaggio da phobos3576 »

Ecco perché bisognerebbe (nei limiti del possibile) selezionare sempre hardware più che compatibile con Linux, in modo da premiare chi supporta adeguatamente il Pinguino; recentemente ho preso un nuovo PC e l'ho scelto accuratamente proprio in base alle caratteristiche hardware, con particolare attenzione alla scheda video (nVidia GeForce 7600 GS).

I driver saranno pure proprietari, ma bisogna riconoscere a nVidia un impegno veramente encomiabile; ad esempio, il programma di installazione vi informa eventualmente che non sono disponibili moduli precompilati per il vostro kernel e vi chiede se volete scaricarli da Internet o ricompilarli direttamente sul vostro PC!

Io scelgo sempre la ricompilazione e risultati sono veramente notevoli: glxgears va a 6200 FPS; Quake 3 Arena raggiunge punte di 700 FPS a 1280x1024 e 32 bpp, per non parlare poi di Google Earth che con le recenti schede nVidia dà veramente il massimo!!!

Ma soprattutto, stabilità eccezionale del server X e dei driver nVidia!
Ultima modifica di phobos3576 il dom 18 feb 2007, 15:22, modificato 1 volta in totale.

Avatar utente
lennynero
Linux 3.x
Linux 3.x
Messaggi: 641
Iscritto il: lun 3 mag 2004, 0:00
Nome Cognome: Luigi Picaro
Slackware: current-x64
Kernel: 6.13.1
Desktop: Xfce-4.20
Località: Salerno

Messaggio da lennynero »

ho provato eseguendo solo la patch, il make.sh funziona, dopo aver copiato fglrx.ko in /lib/modules/2.6.20 lancio depmod e e startx ma mi si blocca il sys...
inoltre vorrei chiedere qualche altra delucidazione sul xke utilizziamo il tgz...non si può applicare la patch al firegl_public.c dell'installer? e poi dare make e make_install?

Gregg
Linux 0.x
Linux 0.x
Messaggi: 9
Iscritto il: dom 18 feb 2007, 15:16

Messaggio da Gregg »

Salve, ho seguito esattamnete la guida, sembra che tutto sia andato a buon fine, ma secondo me non è cambiato nulla: continuo a vedere i filmati a scatti e gli screensaver opengl non usano l'hw.

Ho fatto in modo che il modulo fglrx vennnisse caricato all'avvio e facendo lsmod lo vedo caricato.
Con il comando fglrx info il risultato è

Codice: Seleziona tutto

#fglrxinfo
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.4.1)

Non so più a che santo votarmi, se qualche anima pia mi desse qualche selucidazione lo apprezzerei volentieri.
Grazie a tutti.

Rispondi