Repository 32bit  Forum
Repository 64bit  Wiki

ATI Proprietary drivers. Ecco uno slackbuild.: differenze tra le versioni

Da Slacky.eu.
(Usanto la parola SlackBuild invece che builder e altro...)
Riga 2: Riga 2:
[[Category:Server X]]
[[Category:Server X]]
=Introduzione=
=Introduzione=
Questo wiki spiega come installare i driver propritari ATI con la distribuzione linux Slackware, creando, grazie ad un builder, dei pacchetti che possono essere
+
Questo wiki spiega come installare i driver propritari ATI con la distribuzione linux Slackware, creando, grazie ad uno SlackBuild, dei
installati tramite il comando '''installpkg'''.
+
pacchetti che possono essere installati tramite il comando '''installpkg'''.
Il wiki NON spiega come migliorare le prestazioni. In particolare fornisce solo una descrizione minimale di come impostare il server X.Org con l'unico scopo di far funzionare
+
Il wiki NON spiega come migliorare le prestazioni. In particolare fornisce solo una descrizione minimale di come impostare il server X.Org
i driver proprietari.
+
con l'unico scopo di far funzionare i driver proprietari (una descrizione su come configurare il server X.Org per ottenere prestazioni
  +
più elevate la potete trovare [[Installazione_driver_ATI_su_Slackware_GNU/Linux | qui]]).
Tutti i comandi che iniziano con un '#' devono essere eseguiti con i diritti dell'utente root, mentre quello che iniziano con '$' possono essere
+
Tutti i comandi che iniziano con un '#' devono essere eseguiti con i diritti dell'utente root, mentre quello che iniziano con '$' possono
eseguiti anche da un utente senza tali diritti.
+
essere eseguiti anche da un utente senza tali diritti.
=Come ottenere tutto il software necessario=
=Come ottenere tutto il software necessario=
I driver proprietari ATI possono essere scaricati dal sito ufficiale: http://ati.amd.com/support/driver.html
+
I driver proprietari ATI possono essere scaricati dal sito ufficiale: http://ati.amd.com/support/driver.html, dopo aver selezionato il
Dopo aver selezionato il sistema operativo Linux x86 (o Linux x86_64) e selezionato la propria scheda video, premendo il tasto "go" si arriva direttamente alla
+
sistema operativo Linux x86 (o Linux x86_64) e selezionato la propria scheda video, premendo il tasto "go" si arriva direttamente alla
pagina del download da cui bisognerà scaricare l'installer (che d'ora in poi chiameremo ''installer.run'').
pagina del download da cui bisognerà scaricare l'installer (che d'ora in poi chiameremo ''installer.run'').
Dato che i driver contengono anche un modulo del kernel che verrà compilato direttamente sul vostro sistema, è necessario avere anche i sorgenti del kernel
+
Dato che i driver contengono anche un modulo del kernel che verrà compilato direttamente sul vostro sistema, è necessario
attualmente installato sul sistema.
+
avere anche i sorgenti del kernel attualmente installato sul sistema.
'''NOTA:''' I driver per le architetture x86 e x86_64 sono equivalenti. L'installer infatti contiene i file per entrambe le architetture, sarà poi il processo
+
'''NOTA:''' I driver per le architetture x86 e x86_64 sono equivalenti. L'installer infatti contiene i file per entrambe
di compilazione e creazione dei pacchetti che sceglierà i file adeguati.
+
le architetture, sarà poi il processo di compilazione e creazione dei pacchetti che sceglierà i file adeguati.
  +
Questo vuol dire che lo SlackBuild andrà bene sia per la Slackware sia per le varie versioni porting a 64 bit
  +
(Slamd64, Bluewhite64, etc...).
=Una nota IMPORTANTE=
=Una nota IMPORTANTE=
Se la versione dei driver che si è scaricata è minore della 8.37.6 allora dovete sapere fin d'ora che non funzioneranno con il server X.Org 7.2
+
Se la versione dei driver che si è scaricata è minore della 8.37.6 allora dovete sapere fin d'ora che non funzioneranno con
(o 1.3).
+
il server X.Org 7.2 (o 1.3).
=Come creare i pacchetti per la Slackware=
=Come creare i pacchetti per la Slackware=
La creazione dei pacchetti segue due strade differenti a seconda che si usino i driver ufficiali '''versione < 8.37.6''' oppure '''versione >= 8.37.6'''.
+
La creazione dei pacchetti segue due strade differenti a seconda che si usino i driver ufficiali '''versione < 8.37.6''' oppure
La prima strada fa uso dello '''SlackBuild esterno''' mentre la seconda dello '''SlackBuild interno'''.
+
'''versione >= 8.37.6'''.
In entrambi i casi verranno creati due pacchetti che potranno quindi essere installati tramite l'utiliti '''installpkg''' della Slackware. Quindi passiamo a vedere i due casi
+
La prima strada fa uso di quello che chiameremo '''SlackBuild esterno''' mentre la seconda di quello che chiameremo
ricordando che il programma che qui chiamiamo ''installer.run'' &egrave; l'installer che si &egrave; scaricato dal sito della ATI.
+
'''SlackBuild interno'''.
  +
In entrambi i casi verranno creati due pacchetti che potranno quindi essere installati tramite l'utiliti '''installpkg''' della Slackware.
  +
Quindi passiamo a vedere i due casi ricordando che il programma che qui chiamiamo ''installer.run'' &egrave; l'installer che si &egrave;
  +
scaricato dal sito della ATI.
'''NOTA:''' L'uso dello ''SlackBuild esterno'' non &egrave; limitato alla versione dei ''driver < 8.37.6'' ma lo si può usare (e a volte vedremo che &egrave;
+
'''NOTA:''' L'uso dello ''SlackBuild esterno'' non &egrave; limitato alla versione dei ''driver < 8.37.6'' ma lo si può usare
l'unica alternativa)
+
(e a volte vedremo che &egrave; l'unica alternativa) con tutte le versioni dei driver ATI.
con tutte le versioni dei driver ATI.
 
==Versione dei driver < 8.37.6 (SlackBuild esterno)==
==Versione dei driver < 8.37.6 (SlackBuild esterno)==
Per questi tipi di driver ho creato un builder per slackware di cui ho fatto un pacchetto che potete trovare alla pagina:
+
Per questi tipi di driver ho creato uno '''SlackBuild esterno''' per la slackware di cui ho fatto un pacchetto che potete trovare alla
http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz
+
pagina: http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz
Per creare i pacchetti slackware basta eseguire:
Per creare i pacchetti slackware basta eseguire:
Riga 45: Riga 45:
==Versione dei driver >= 8.37.6 (SlackBuild interno)==
==Versione dei driver >= 8.37.6 (SlackBuild interno)==
Per questi driver il builder &egrave; gi&agrave; all'interno dell'installer quindi basta eseguire:
+
Per questi driver lo SlackBuild l'ho inviato direttamente alla ATI che ha provveduto ad inserirlo all'interno dell'installer, quindi basta
  +
eseguire:
# sh installer.run --buildpkg Slackware/All
# sh installer.run --buildpkg Slackware/All
=Cosa contengono i pacchetti creati?=
=Cosa contengono i pacchetti creati?=
I due pacchetti creati dal builder, che chiameremo ''fglrx-module'' e ''fglrx-x'', contengono, rispettivamente, il modulo per il kernel attualmente installato sul sistema, e
+
I due pacchetti creati dallo SlackBuild, che chiameremo ''fglrx-module'' e ''fglrx-x'', contengono, rispettivamente, il modulo per il
i driver per la versione del server X.Org installata.
+
kernel attualmente installato sul sistema, e i driver per la versione del server X.Org installata.
In questo modo, se si aggiorna il kernel oppure il server X.Org si pu&ograve; creare solo il relativo pacchetto.
In questo modo, se si aggiorna il kernel oppure il server X.Org si pu&ograve; creare solo il relativo pacchetto.
==Creare solo il pacchetto fglrx-module==
==Creare solo il pacchetto fglrx-module==
Per creare solo il pacchetto contenente il modulo del kernel attualmente installato, basta lanciare l'installer con l'opzione ''Only_Module ''
+
Per creare solo il pacchetto contenente il modulo per il kernel attualmente installato, basta lanciare l'installer con l'opzione
  +
''Only_Module ''
Quindi per i driver < 8.37.6:
+
Quindi con lo '''SlackBuild esterno''':
# sh installer.run --buildpkg custom-package/Only_Module
# sh installer.run --buildpkg custom-package/Only_Module
Per i driver >= 8.37.6:
+
Con lo '''SlackBuild interno''':
# sh installer.run --buildpkg Slackware/Only_Module
# sh installer.run --buildpkg Slackware/Only_Module
==Creare solo il pacchetto fglrx-x==
==Creare solo il pacchetto fglrx-x==
Per creare solo il pacchetto contenente i driver per il server X.Org attualmente installato sul sistema, basta lanciare l'installer con l'opzione ''Only_X''
+
Per creare solo il pacchetto contenente i driver per il server X.Org attualmente installato sul sistema, basta lanciare l'installer con
  +
l'opzione ''Only_X''
Con i driver < 8.37.6:
+
Con lo '''SlackBuild esterno''':
# sh installer.run --buildpkg custom-package/Only_X
# sh installer.run --buildpkg custom-package/Only_X
Per i driver >= 8.37.6:
+
Con lo '''SlackBuild interno''':
# sh installer.run --buildpkg Slackware/Only_X
# sh installer.run --buildpkg Slackware/Only_X
=Configurazione minimale del server X.Org=
=Configurazione minimale del server X.Org=
Una volta installati i due pacchetti bisogna segnalare al server X.Org di usare i driver proprietari ATI, per fare questo bisogna controllare che il file
+
Una volta installati i due pacchetti bisogna segnalare al server X.Org di usare i driver proprietari ATI, per fare questo bisogna
xorg.conf, che generalmente &egrave; situato nella directory /etc/X11/, contenga le seguenti voci:
+
controllare che il file xorg.conf, che generalmente &egrave; situato nella directory /etc/X11/, contenga le seguenti voci:
Section "Module"
Section "Module"
Riga 102: Riga 102:
=Rimuovere i pacchetti installati=
=Rimuovere i pacchetti installati=
Per rimuovere i pacchetti installati si può tranquillamente usare l'utiliti '''removepkg'''. Ci sono per&ograve; aspetti che vanno considerati:
+
Per rimuovere i pacchetti installati si può tranquillamente usare l'utiliti '''removepkg'''. Ci sono per&ograve; aspetti che vanno
* La rimozione dei pacchetti non elimina i file di configurazione del driver fglrx, questi file sono situati nella directory ''/etc/ati''
+
considerati:
*Il pacchetto ''fglrx-x'' contiene le librerie OpenGL della ATI, e che queste librerie sono posizionate nella stessa directory di quelle Mesa, indi per cui quando
+
*La rimozione dei pacchetti non elimina i file di configurazione del driver fglrx, questi file sono situati nella directory ''/etc/ati''
: si installa il pacchetto ''fglrx-x'' vengono sovrascritte le OpenGL Mesa. Per ripristinare la situazione si deve semplicemente reinstallare il pacchetto
+
'''NOTA:''' La directory ''/etc/ati/custom-package'' se esiste, contiene lo SlackBuild esterno e quindi non va cancellata.
: contenente le librerie Mesa, ovvero il pacchetto:
+
*Il pacchetto ''fglrx-x'' contiene le librerie OpenGL della ATI, e queste librerie sono posizionate nella stessa directory di quelle Mesa, indi per cui quando si installa il pacchetto ''fglrx-x'' vengono sovrascritte le OpenGL Mesa. Per ripristinare la situazione si deve semplicemente reinstallare il pacchetto contenente queste librerie, ovvero il pacchetto:
:: x11
+
::x11
: e si usa la slackware 11, oppure:
+
:si usa la slackware 11, oppure:
:: mesa
+
::mesa
: se si usa la slackware 12.
+
:se si usa la slackware 12.
=Problemi noti=
=Problemi noti=
==FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'paravirt_ops'==
==FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'paravirt_ops'==
L'errore accade in fase di compilazione del modulo ed &egrave; dovuto al fatto che il kernel &egrave; stato compilato con l'opzione di
+
L'errore accade in fase di compilazione del modulo ed &egrave; dovuto al fatto che il kernel &egrave; stato compilato con l'opzione di
paravirtualizzazione attiva. Questa opzione tra le altre cose, impedisce di caricare, e quindi di compilare, moduli che non hanno la licenza GPL.
+
paravirtualizzazione attiva. Questa opzione tra le altre cose, impedisce di caricare, e quindi di compilare, moduli che non hanno la
Visto che i driver ATI non hanno questo tipo di licenza, non vengono compilati.
+
licenza GPL. Visto che i driver ATI non hanno questo tipo di licenza, non vengono compilati.
  +
Per ovviare al problema si può:
Per ovviare al problema si può:
===Disabilitare la paravirtualizzazione nel kernel ===
===Disabilitare la paravirtualizzazione nel kernel ===
L'opzione di paravirtualizzazione si chiama '''CONFIG_PARAVIRT''' e generalmente si trova nel sottomenù '''Processor type and features''' del kernel.
+
L'opzione di paravirtualizzazione si chiama '''CONFIG_PARAVIRT''' e generalmente si trova nel sottomenù '''Processor type and features'''
  +
del kernel.
===Patchare i driver ATI===
===Patchare i driver ATI===
Questa operazione &egrave; illegale poich&egrave; si deve modificare il tipo di licenza rilasciata dalla ATI in GPL. Ho scritto la patch
+
Questa operazione &egrave; illegale poich&egrave; si deve modificare il tipo di licenza rilasciata dalla ATI in GPL.
[http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/patch/ati_to_gpl.patch ati_to_gpl.patch] di cui non mi prendo nessuna responsabilit&agrave;,
+
Ho scritto la patch
io non la uso e ne sconsiglio l'uso preferendo l'alternativa di disabilitare la paravirtualizzazione del kernel.
+
[http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/patch/ati_to_gpl.patch ati_to_gpl.patch] di cui non mi prendo nessuna
  +
responsabilit&agrave;, io non la uso e ne sconsiglio l'uso preferendo l'alternativa di disabilitare la paravirtualizzazione del kernel.
Per usare questa patch bisogna:
Per usare questa patch bisogna:
* Scaricare e installare (tramite installpkg) lo SlackBuild esterno
+
* Scaricare e installare (tramite installpkg) lo SlackBuild esterno [http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz ati-slack-packager]
[http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz ati-slack-packager]
 
* Copiare la patch nella directory ''/etc/ati/custom-package/patch''
* Copiare la patch nella directory ''/etc/ati/custom-package/patch''
* Lanciare l'installer in questo modo:
* Lanciare l'installer in questo modo:
# sh installer.run --buildpkg custom-package/Slackware
# sh installer.run --buildpkg custom-package/Slackware
Lo SlackBuild esterno noter&agrave; la presenza della patch e la applicherà.
+
Lo SlackBuild esterno noter&agrave; la presenza della patch e la applicherà. Per disinstallare la patch basta cancellarla dalla directory
Per disinstallare la patch basta cancellarla dalla directory ''/etc/ati/custom-package/patch''.
+
''/etc/ati/custom-package/patch''.
==Using GLX_SGIX_pbuffer FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!==
==Using GLX_SGIX_pbuffer FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!==
Questo problema è dovuto alla mancanza nel sistema del filesystem SHM (oggi chiamato tmpfs), ovvero il virtual memory filesystem. Per ovviare al problema si deve
+
Questo problema è dovuto alla mancanza nel sistema del filesystem SHM (oggi chiamato tmpfs), ovvero il virtual memory filesystem. Per
  +
ovviare al problema si deve:
* Aggiungere al file ''/etc/fstab'' la seguente riga:
* Aggiungere al file ''/etc/fstab'' la seguente riga:
shm /dev/shm tmpfs defaults 0 0
shm /dev/shm tmpfs defaults 0 0
* Quindi montare il filesystem tramite:
* Quindi montare il filesystem tramite:
# mount /dev/shm
# mount /dev/shm
Ovviamente il kernel deve essero predisposto al "montaggio" di questo filesystem, in particolare l'opzione del kernel che deve essere abilitata &egrave;
+
Ovviamente il kernel deve essero predisposto al "montaggio" di questo filesystem, in particolare l'opzione del kernel che deve essere
'''CONFIG_TMPFS''' che generalmente &egrave; sistuata nel sottomen&ugrave; del kernel '''File systems --> Pseudo filesystems'''. C'&egrave; da dire
+
abilitata &egrave;
per&ograve; che tutti i kernel precompilati hanno generalmente questa opzione abilitata.
+
'''CONFIG_TMPFS''' che generalmente &egrave; sistuata nel sottomen&ugrave; del kernel '''File systems --> Pseudo filesystems'''.
  +
C'&egrave; da dire per&ograve; che tutti i kernel precompilati hanno generalmente questa opzione abilitata.
==Logo nei driver 8.39.4==
==Logo nei driver 8.39.4==
Questo "bug" nei driver 8.39.4 deriva dal fatto che gli sviluppatori ATI non aggiornano i packager mantainer prima della release ufficiale. Sarebbe carino se
+
Questo "bug" nei driver 8.39.4 deriva dal fatto che gli sviluppatori ATI non aggiornano i packager mantainer prima della release
facessero testare prima a noi le release ufficiali, in modo da certificare il corretto funzionamento degli script per creare i pacchetti.
+
ufficiale. Sarebbe carino se facessero testare prima a noi le release ufficiali, in modo da certificare il corretto funzionamento degli
Per risolvere il problema si deve usare lo SlackBuild esterno come descritto [[#Versione dei driver < 8.37.6 (SlackBuild esterno) | qui]].
+
script per creare i pacchetti. Per risolvere il problema si deve usare lo SlackBuild esterno come descritto
  +
[[#Versione dei driver < 8.37.6 (SlackBuild esterno) | qui]].
==amdcccle non parte con la slackware 12==
==amdcccle non parte con la slackware 12==
Molti utenti che utilizzano la versione del server X.Org 7.2 (o 1.3) non riescono a lanciare correttamente il Catalyst. Il comando per eseguire il Catalyst &egrave;:
+
Molti utenti che utilizzano la versione del server X.Org 7.2 (o 1.3) non riescono a lanciare correttamente il Catalyst.
  +
Il comando per eseguire il Catalyst &egrave;:
# amdcccle
# amdcccle
 
Per questo problema sembra non esserci ancora soluzione, ma stiamo lavorando per risolverlo.
Per questo problema sembra non esserci ancora soluzione, ma stiamo lavorando per risolverlo.
  +
=Link utili=
=Link utili=
La Homepage dello SlackBuild esterno per i driver ATI la trovate all'indirizzo:
La Homepage dello SlackBuild esterno per i driver ATI la trovate all'indirizzo:
Riga 164: Riga 164:
Un alternativa ai driver ufficiali ATI &egrave; data dal seguente sito:
Un alternativa ai driver ufficiali ATI &egrave; data dal seguente sito:
http://www.schneider-digital.de/
http://www.schneider-digital.de/
  +
  +
Una guida su come installare e configurare i driver Open Source ATI la trovate all'indirizzo:
  +
http://www.slacky.eu/wikislack/index.php?title=Installazione_driver_ATI_su_Slackware_GNU/Linux
=Conclusione=
=Conclusione=
I driver proprietari ATI per molti notebook e moderni PC fissi risultano essere quasi l'unica alternativa per l'uso dell'accelerazione 3d con linux.
+
I driver proprietari ATI per molti notebook e moderni PC fissi risultano essere quasi l'unica alternativa per l'uso dell'accelerazione
Purtroppo gli sviluppatori ATI non effettuano il back porting e quindi gli utenti che fanno uso dei driver precedenti alla versione 8.37.6 non potranno
+
3d con linux.
mai passare alla versione 7.2 (o 1.3) del server X.Org.
+
Purtroppo gli sviluppatori ATI non effettuano il back porting e quindi gli utenti che fanno uso dei driver precedenti alla versione 8.37.6
Si spera quindi che ben presto i driver Mesa possano essere usati anche per queste schede video.
+
non potranno mai passare alla versione 7.2 (o 1.3) del server X.Org. Si spera quindi che ben presto i driver Mesa possano essere usati
  +
anche per queste schede video.
Lo '''SlackBuild esterno''' &egrave; sempre in fase di modifica, in effetti questo builder &egrave; pensato per andar bene con tutte
+
Lo '''SlackBuild esterno''' &egrave; sempre in fase di modifica, in effetti questo SlackBuild &egrave; pensato per andar bene con tutte le
le versioni dei driver ATI, sia precedenti che successive alla 8.37.6. Molte patch infatti vengono applicate solo dopo la pubblicazione online dei driver ufficiali
+
versioni dei driver ATI, sia precedenti che successive alla 8.37.6. Molte patch infatti vengono applicate solo dopo la pubblicazione
e quindi pu&ograve; accadere che lo '''SlackBuild interno''' contenuto nei driver fallisca laddove lo '''SlackBuild esterno'''
+
online dei driver ufficiali e quindi pu&ograve; accadere che lo '''SlackBuild interno''' contenuto nei driver fallisca laddove lo
  +
'''SlackBuild esterno'''
[http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz ati-slack-packager] ha successo.
[http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz ati-slack-packager] ha successo.
Inoltre, dato che non si &egrave; testato il builder con tutte le versioni dei driver ATI e kernel possibili, pu&ograve; succedere che la compilazione del modulo
+
Inoltre, dato che non si &egrave; testato lo SlackBuild con tutte le versioni dei driver ATI e kernel possibili, pu&ograve; succedere che
non abbia successo. Se &egrave; il vostro caso, scrivetemi tranquillamente all'indirizzo '''spina80@freemail.it''' postandomi l'output dell'installer lanciato con
+
la compilazione del modulo non abbia successo. Se &egrave; il vostro caso, scrivetemi tranquillamente all'indirizzo
l'opzione ''Only_Module''.
+
'''spina80@freemail.it''' postandomi l'output dell'installer lanciato con l'opzione ''Only_Module''.
Autore (data dell'ultimo aggiornamento):
Autore (data dell'ultimo aggiornamento):
[[Utente:Spina|Spina]] 11:45, 28 Lug 2007 (CEST)
+
[[Utente:Spina|Spina]] 00:37, 31 Lug 2007 (CEST)

Versione delle 00:37, 31 lug 2007

Indice

Introduzione

Questo wiki spiega come installare i driver propritari ATI con la distribuzione linux Slackware, creando, grazie ad uno SlackBuild, dei pacchetti che possono essere installati tramite il comando installpkg.

Il wiki NON spiega come migliorare le prestazioni. In particolare fornisce solo una descrizione minimale di come impostare il server X.Org con l'unico scopo di far funzionare i driver proprietari (una descrizione su come configurare il server X.Org per ottenere prestazioni più elevate la potete trovare qui).

Tutti i comandi che iniziano con un '#' devono essere eseguiti con i diritti dell'utente root, mentre quello che iniziano con '$' possono essere eseguiti anche da un utente senza tali diritti.

Come ottenere tutto il software necessario

I driver proprietari ATI possono essere scaricati dal sito ufficiale: http://ati.amd.com/support/driver.html, dopo aver selezionato il sistema operativo Linux x86 (o Linux x86_64) e selezionato la propria scheda video, premendo il tasto "go" si arriva direttamente alla pagina del download da cui bisognerà scaricare l'installer (che d'ora in poi chiameremo installer.run). Dato che i driver contengono anche un modulo del kernel che verrà compilato direttamente sul vostro sistema, è necessario avere anche i sorgenti del kernel attualmente installato sul sistema.

NOTA: I driver per le architetture x86 e x86_64 sono equivalenti. L'installer infatti contiene i file per entrambe 
le architetture, sarà poi il processo di compilazione e creazione dei pacchetti che sceglierà i file  adeguati. 
Questo vuol dire che lo SlackBuild andrà bene sia per la Slackware sia per le varie versioni porting a 64 bit
(Slamd64, Bluewhite64, etc...).

Una nota IMPORTANTE

Se la versione dei driver che si è scaricata è minore della 8.37.6 allora dovete sapere fin d'ora che non funzioneranno con il server X.Org 7.2 (o 1.3).

Come creare i pacchetti per la Slackware

La creazione dei pacchetti segue due strade differenti a seconda che si usino i driver ufficiali versione < 8.37.6 oppure versione >= 8.37.6. La prima strada fa uso di quello che chiameremo SlackBuild esterno mentre la seconda di quello che chiameremo SlackBuild interno. In entrambi i casi verranno creati due pacchetti che potranno quindi essere installati tramite l'utiliti installpkg della Slackware. Quindi passiamo a vedere i due casi ricordando che il programma che qui chiamiamo installer.run è l'installer che si è scaricato dal sito della ATI.

NOTA: L'uso dello SlackBuild esterno non è limitato alla versione dei driver < 8.37.6 ma lo si può  usare 
(e a volte vedremo che è l'unica alternativa) con tutte le versioni dei driver ATI.


Versione dei driver < 8.37.6 (SlackBuild esterno)

Per questi tipi di driver ho creato uno SlackBuild esterno per la slackware di cui ho fatto un pacchetto che potete trovare alla pagina: http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati-slack-packager-current-noarch-1.tgz

Per creare i pacchetti slackware basta eseguire:

# installpkg ati-slack-packager-current-noarch-1.tgz
# sh installer.run --buildpkg custom-package/Slackware

Versione dei driver >= 8.37.6 (SlackBuild interno)

Per questi driver lo SlackBuild l'ho inviato direttamente alla ATI che ha provveduto ad inserirlo all'interno dell'installer, quindi basta eseguire:

# sh installer.run --buildpkg Slackware/All

Cosa contengono i pacchetti creati?

I due pacchetti creati dallo SlackBuild, che chiameremo fglrx-module e fglrx-x, contengono, rispettivamente, il modulo per il kernel attualmente installato sul sistema, e i driver per la versione del server X.Org installata. In questo modo, se si aggiorna il kernel oppure il server X.Org si può creare solo il relativo pacchetto.

Creare solo il pacchetto fglrx-module

Per creare solo il pacchetto contenente il modulo per il kernel attualmente installato, basta lanciare l'installer con l'opzione Only_Module

Quindi con lo SlackBuild esterno:

# sh installer.run --buildpkg custom-package/Only_Module

Con lo SlackBuild interno:

# sh installer.run --buildpkg Slackware/Only_Module

Creare solo il pacchetto fglrx-x

Per creare solo il pacchetto contenente i driver per il server X.Org attualmente installato sul sistema, basta lanciare l'installer con l'opzione Only_X

Con lo SlackBuild esterno:

# sh installer.run --buildpkg custom-package/Only_X

Con lo SlackBuild interno:

# sh installer.run --buildpkg Slackware/Only_X

Configurazione minimale del server X.Org

Una volta installati i due pacchetti bisogna segnalare al server X.Org di usare i driver proprietari ATI, per fare questo bisogna controllare che il file xorg.conf, che generalmente è situato nella directory /etc/X11/, contenga le seguenti voci:

Section "Module"
	....
	Load	"dri"
	Load	"glx"
	....
EndSection
Section "Device"
	....
	Driver	"fglrx"
	....
EndSection
Section "DRI"
	Group	0
	Mode	0666
EndSection 

Verifica

Per verificare se i driver proprietari ATI sono stati correttamente installati si può eseguire il comando:

$ fglrxinfo

Sulla mia macchina l'output è:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon X1400
OpenGL version string: 2.0.6650 (8.39.4)

Rimuovere i pacchetti installati

Per rimuovere i pacchetti installati si può tranquillamente usare l'utiliti removepkg. Ci sono però aspetti che vanno considerati:

  • La rimozione dei pacchetti non elimina i file di configurazione del driver fglrx, questi file sono situati nella directory /etc/ati
NOTA: La directory /etc/ati/custom-package se esiste, contiene lo SlackBuild esterno e quindi non va cancellata.
  • Il pacchetto fglrx-x contiene le librerie OpenGL della ATI, e queste librerie sono posizionate nella stessa directory di quelle Mesa, indi per cui quando si installa il pacchetto fglrx-x vengono sovrascritte le OpenGL Mesa. Per ripristinare la situazione si deve semplicemente reinstallare il pacchetto contenente queste librerie, ovvero il pacchetto:
x11
si usa la slackware 11, oppure:
mesa
se si usa la slackware 12.

Problemi noti

FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'paravirt_ops'

L'errore accade in fase di compilazione del modulo ed è dovuto al fatto che il kernel è stato compilato con l'opzione di paravirtualizzazione attiva. Questa opzione tra le altre cose, impedisce di caricare, e quindi di compilare, moduli che non hanno la licenza GPL. Visto che i driver ATI non hanno questo tipo di licenza, non vengono compilati.

Per ovviare al problema si può:

Disabilitare la paravirtualizzazione nel kernel

L'opzione di paravirtualizzazione si chiama CONFIG_PARAVIRT e generalmente si trova nel sottomenù Processor type and features del kernel.

Patchare i driver ATI

Questa operazione è illegale poichè si deve modificare il tipo di licenza rilasciata dalla ATI in GPL. Ho scritto la patch ati_to_gpl.patch di cui non mi prendo nessuna responsabilità, io non la uso e ne sconsiglio l'uso preferendo l'alternativa di disabilitare la paravirtualizzazione del kernel. Per usare questa patch bisogna:

  • Scaricare e installare (tramite installpkg) lo SlackBuild esterno ati-slack-packager
  • Copiare la patch nella directory /etc/ati/custom-package/patch
  • Lanciare l'installer in questo modo:
# sh installer.run --buildpkg custom-package/Slackware

Lo SlackBuild esterno noterà la presenza della patch e la applicherà. Per disinstallare la patch basta cancellarla dalla directory /etc/ati/custom-package/patch.

Using GLX_SGIX_pbuffer FGLTexMgr: open of shared memory object failed (Permission denied) __FGLTexMgrCreateObject: __FGLTexMgrSHMmalloc failed!!!

Questo problema è dovuto alla mancanza nel sistema del filesystem SHM (oggi chiamato tmpfs), ovvero il virtual memory filesystem. Per ovviare al problema si deve:

  • Aggiungere al file /etc/fstab la seguente riga:
shm                     /dev/shm                tmpfs           defaults                        0   0
  • Quindi montare il filesystem tramite:
# mount /dev/shm

Ovviamente il kernel deve essero predisposto al "montaggio" di questo filesystem, in particolare l'opzione del kernel che deve essere abilitata è CONFIG_TMPFS che generalmente è sistuata nel sottomenù del kernel File systems --> Pseudo filesystems. C'è da dire però che tutti i kernel precompilati hanno generalmente questa opzione abilitata.

Logo nei driver 8.39.4

Questo "bug" nei driver 8.39.4 deriva dal fatto che gli sviluppatori ATI non aggiornano i packager mantainer prima della release ufficiale. Sarebbe carino se facessero testare prima a noi le release ufficiali, in modo da certificare il corretto funzionamento degli script per creare i pacchetti. Per risolvere il problema si deve usare lo SlackBuild esterno come descritto qui.

amdcccle non parte con la slackware 12

Molti utenti che utilizzano la versione del server X.Org 7.2 (o 1.3) non riescono a lanciare correttamente il Catalyst. Il comando per eseguire il Catalyst è:

# amdcccle

Per questo problema sembra non esserci ancora soluzione, ma stiamo lavorando per risolverlo.

Link utili

La Homepage dello SlackBuild esterno per i driver ATI la trovate all'indirizzo: http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/sito/ati-slack-packager.html

La principale "non-ufficiale" fonte di informazione per quanto riguarda i driver proprietari ATI: http://wiki.cchtml.com/index.php/Main_Page

Il thread di discussione da cui è stato tratto questo articolo: http://www.slacky.eu/forum/viewtopic.php?t=18134&highlight=

Un alternativa ai driver ufficiali ATI è data dal seguente sito: http://www.schneider-digital.de/

Una guida su come installare e configurare i driver Open Source ATI la trovate all'indirizzo: http://www.slacky.eu/wikislack/index.php?title=Installazione_driver_ATI_su_Slackware_GNU/Linux

Conclusione

I driver proprietari ATI per molti notebook e moderni PC fissi risultano essere quasi l'unica alternativa per l'uso dell'accelerazione 3d con linux. Purtroppo gli sviluppatori ATI non effettuano il back porting e quindi gli utenti che fanno uso dei driver precedenti alla versione 8.37.6 non potranno mai passare alla versione 7.2 (o 1.3) del server X.Org. Si spera quindi che ben presto i driver Mesa possano essere usati anche per queste schede video.

Lo SlackBuild esterno è sempre in fase di modifica, in effetti questo SlackBuild è pensato per andar bene con tutte le versioni dei driver ATI, sia precedenti che successive alla 8.37.6. Molte patch infatti vengono applicate solo dopo la pubblicazione online dei driver ufficiali e quindi può accadere che lo SlackBuild interno contenuto nei driver fallisca laddove lo SlackBuild esterno ati-slack-packager ha successo. Inoltre, dato che non si è testato lo SlackBuild con tutte le versioni dei driver ATI e kernel possibili, può succedere che la compilazione del modulo non abbia successo. Se è il vostro caso, scrivetemi tranquillamente all'indirizzo spina80@freemail.it postandomi l'output dell'installer lanciato con l'opzione Only_Module.

Autore (data dell'ultimo aggiornamento): Spina 00:37, 31 Lug 2007 (CEST)

Strumenti personali
Namespace

Varianti