Repository 32bit  Forum
Repository 64bit  Wiki

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

Da Slacky.eu.
(Cambiato indirizzo email)
(Cambiato nick)
 
(Una revisione intermedia di un utente non mostrate)
Riga 1: Riga 1:
<!--Per http://www.slacky.eu/wikislack/index.php?title=ATI_Proprietary_drivers._Ecco_uno_slackbuild. -->
+
Per questioni di manutenzione, il wiki è stato spostato [http://wiki.cchtml.com/index.php?title=Slackware:_SlackBuild_interno_(ITA) qui].
[[Category:Server X]]
+
[[Utente:targzeta|targzeta]]
=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&ugrave; 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 eseguiti anche da un utente senza tali diritti.
 
 
=ATI Proprietary Driver e ATI Catalyst=
 
A partire dal 21 Novembre 2007 i driver ATI hanno cambiato nome e numero di versione. I nuovi driver, che prima venivano
 
indicati solo come '''ATI Proprietary Driver''', ora si chiamano '''ATI Catalyst'''. Non solo, il numero di versione
 
&egrave; passato da '''8.XX.X''' a '''7.XX'''.
 
 
Quando in questo articolo si parler&agrave; dei driver ''versione < 8.37.6'', ci si riferir&agrave; implicitamente ai
 
vecchi driver, ovvero agli ATI Proprietary Driver, i nuovi ATI Catalyst sono da considerarsi ''versione >= 8.37.6'',
 
anche se, ad esempio, hanno come numero di release 7.11.
 
 
=Come ottenere tutto il software necessario=
 
I driver proprietari ATI possono essere scaricati dal sito ufficiale: http://support.amd.com/us/gpudownload/Pages/index.aspx, 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&agrave; scaricare l'installer (che d'ora in poi chiameremo ''installer.run'').
 
Dato che i driver contengono anche un modulo del kernel che verr&agrave; compilato direttamente sul vostro sistema, &egrave; 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&agrave; poi il processo di compilazione e creazione dei pacchetti che sceglier&agrave; i file adeguati.
 
Questo vuol dire che lo SlackBuild andr&agrave; bene sia per la Slackware sia per le varie versioni porting a 64 bit
 
(Slamd64, Bluewhite64, etc...).
 
 
=Nota IMPORTANTE=
 
Se la versione dei driver che si &egrave; scaricata &egrave; 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 o nuovi ATI Catalyst'''.
 
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'' &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&ograve; usare
 
(e a volte vedremo che &egrave; 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 [http://www.slacky.eu/~spina/fglrx/ati-slack-packager-1.1.9-noarch-1.tgz qui].
 
 
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 o nuovi ATI Catalyst (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&ograve; 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 &egrave; 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&ograve; eseguire il comando:
 
$ fglrxinfo
 
Sulla mia macchina l'output &egrave;:
 
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&ograve; tranquillamente usare l'utiliti '''removepkg'''. Ci sono per&ograve; 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 &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. Visto che i driver ATI non hanno questo tipo di licenza, non vengono compilati.
 
 
Per ovviare al problema si pu&ograve;:
 
===Disabilitare la paravirtualizzazione nel kernel ===
 
L'opzione di paravirtualizzazione si chiama '''CONFIG_PARAVIRT''' e generalmente si trova nel sottomen&ugrave;
 
'''Processor type and features''' del kernel.
 
===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
 
[http://www.slacky.eu/~spina/fglrx/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:
 
* Scaricare e installare (tramite installpkg) lo SlackBuild esterno [http://www.slacky.eu/~spina/fglrx/ati-slack-packager-1.1.9-noarch-1.tgz 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&agrave; la presenza della patch e la applicher&agrave;. 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 &egrave; 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 &egrave;
 
'''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.
 
 
==kernel includes at /lib/modules/`uname -r`/build/include do not match current kernel==
 
L'errore completo &egrave; qualcosa del genere:
 
 
Error:
 
kernel includes at /lib/modules/`uname -r`/build/include do not match current kernel.
 
they are versioned as ""
 
instead of "`uname -r`".
 
you might need to adjust your symlinks:
 
- /usr/include
 
- /usr/src/linux
 
 
L'errore, se pur spiegato pu&ograve; non essere chiaro. In pratica deriva dal fatto che i link simbolici:
 
/lib/modules/`uname -r`/source
 
/lib/modules/`uname -r`/build
 
non puntano alla directory in cui sono inseriti i sorgenti del kernel attuale (che generalmente &egrave; /usr/src/linux-`uname -r`).
 
Accade a coloro che usano uno dei kernel contenuto nella Slackware, per cui cercher&ograve; di spiegarlo in termini di "pacchetti"
 
Slackware.
 
Questo pu&ograve; succedere:
 
* O perch&egrave; i sorgenti del kernel effettivamente non sono stati installati. In questo caso dovrebbe bastare installare il pacchetto dei sorgenti che si trova nella directory k/ della Slackware. Non &egrave; detto per&ograve; che il problema venga risolto, si veda il secondo motivo per cui sussiste l'errore.
 
* O perch&egrave; i sorgenti (se pur installati) non rispecchiano le impostazioni dell'attuale kernel. La nuova Slackware 12 ha al suo interno un p&ograve; di kernel precompilati (che vuol dire impostazioni differenti) mentre un solo pacchetto per i sorgenti (a meno di vedere nel ramo extra/). In particolare i sorgenti sono per un kernel SMP e quindi se si utilizza un kernel precompilato non SMP pu&ograve; accare che si verifichi l'errore suddetto. Per ovviare basta fare quanto segue, dopo essersi assicurati che il pacchetto dei sorgenti &egrave; stato installato:
 
# cd /usr/src/linux
 
# cp /boot/config .config
 
# make
 
:eseguendo il make, oltre a compilare il kernel e relativi moduli (che poi non useremo), si rigenerano alcuni file headers che rispecchiano la configurazione del kernel (per come impostata nel file .config).
 
 
==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
 
[[#Versione dei driver < 8.37.6 (SlackBuild esterno) | 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 &egrave;:
 
# amdcccle
 
Per questo problema sembra non esserci ancora soluzione, ma stiamo lavorando per risolverlo.
 
 
=Link utili=
 
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 &egrave; stato tratto questo articolo:
 
http://www.slacky.eu/forum/viewtopic.php?t=18134
 
 
Un alternativa ai driver ufficiali ATI &egrave; 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.
 
 
Dato che non si &egrave; testato lo SlackBuild con tutte le versioni dei driver ATI e kernel possibili, pu&ograve; succedere che
 
la compilazione del modulo non abbia successo. Se &egrave; il vostro caso, scrivetemi tranquillamente all'indirizzo
 
<tomasiATcliDITdiDOTunipiDOTit> postandomi l'output dell'installer lanciato con l'opzione ''Only_Module''.
 
 
Autore (data dell'ultimo aggiornamento):
 
 
[[Utente:Spina|spina]] 08:15, 28 ott 2010 (UTC)
 

Versione attuale delle 23:51, 2 ott 2012

Per questioni di manutenzione, il wiki è stato spostato qui.

targzeta

Strumenti personali
Namespace

Varianti