ATI Proprietary drivers. Ecco uno slackbuild.: differenze tra le versioni
Da Slacky.eu.
(Usanto la parola SlackBuild invece che builder e altro...) |
(Cambiato nick) |
||
| (5 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 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 |
+ | [[Utente:targzeta|targzeta]] |
| − | 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 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 |
||
| − | [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à, 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.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 |
||
| − | 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 |
||
| − | [[#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 è: |
||
| − | # 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''' |
||
| − | [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 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): |
||
| − | [[Utente:Spina|Spina]] 00:37, 31 Lug 2007 (CEST) |
||
Versione attuale delle 23:51, 2 ott 2012
Per questioni di manutenzione, il wiki è stato spostato qui.