ATI Proprietary drivers. Ecco uno slackbuild.: differenze tra le versioni
Da Slacky.eu.
(Cambiato nick) |
|||
| (8 revisioni intermedie di un utente non mostrate) | |||
| Riga 1: | Riga 1: | ||
| − | <!--Per www.slacky.eu --> |
+ | Per questioni di manutenzione, il wiki è stato spostato [http://wiki.cchtml.com/index.php?title=Slackware:_SlackBuild_interno_(ITA) qui]. |
| − | [[Category:Server X]] |
||
| − | =Introduzione= |
||
| − | Questo mini howto spiega come installare i driver propritari ATI con la distribuzione linux Slackware, creando, grazie ad un builder, dei pacchetti che possono essere |
||
| − | installati tramite il comando '''installpkg'''. |
||
| − | L'howto 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 |
+ | [[Utente:targzeta|targzeta]] |
| − | i driver proprietari. |
||
| − | |||
| − | 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. |
||
| − | |||
| − | =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 del '''builder esterno''' mentre la seconda del '''builder 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 del ''builder 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 (builder esterno)== |
||
| − | Per questi tipi di driver ho creato un builder per 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 (builder interno)== |
||
| − | Per questi driver il builder è già all'interno dell'installer quindi basta eseguire: |
||
| − | |||
| − | # sh installer.run --buildpkg Slackware/All |
||
| − | |||
| − | =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 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 del kernel attualmente installato, basta lanciare l'installer con l'opzione ''Only_Module '' |
||
| − | |||
| − | Quindi per i driver < 8.37.6: |
||
| − | # sh installer.run --buildpkg custom-package/Only_Module |
||
| − | Per i driver >= 8.37.6: |
||
| − | # 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 i driver < 8.37.6: |
||
| − | # sh installer.run --buildpkg custom-package/Only_X |
||
| − | Per i driver >= 8.37.6: |
||
| − | # 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'''. Si deve tener presente però che 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 si installa il pacchetto |
||
| − | ''fglrx-x'' vengono sovrascritte le OpenGL Mesa. Per ripristinare la situazione si deve semplicemente reinstallare il pacchetto contenente le librerie Mesa, ovvero |
||
| − | il pacchetto: |
||
| − | x11 |
||
| − | e 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 |
||
| − | [http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/ati_to_gpl.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) il builder esterno |
||
| − | [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'' |
||
| − | * Lanciare l'installer in questo modo: |
||
| − | # sh installer.run --buildpkg custom-package/Slackware |
||
| − | Il builder 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 il builder esterno come descritto [[#Versione dei driver < 8.37.6 (builder 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 è: |
||
| − | # 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 è 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/ |
||
| − | |||
| − | =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. |
||
| − | |||
| − | Il '''builder esterno''' è sempre in fase di modifica, in effetti questo builder è 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 il '''builder interno''' contenuto nei driver fallisca laddove il '''builder esterno''' |
||
| − | [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 è testato il builder 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): |
||
| − | [[Utente:Spina|Spina]] 13:30, 27 Lug 2007 (CEST) |
||
Versione attuale delle 23:51, 2 ott 2012
Per questioni di manutenzione, il wiki è stato spostato qui.