Changes

Jump to: navigation, search

Slackware: ATI SlackBuild (ITA)

1,560 bytes added, 11:24, 22 January 2012
m
Protected "Slackware: ATI SlackBuild (ITA)": Excessive vandalism ([edit=autoconfirmed] (expires 17:24, 5 February 2012 (UTC)) [move=autoconfirmed] (expires 17:24, 5 February 2012 (UTC)))
<!-- Per http://wiki.cchtml.com /index.php/Slackware:_ATI_SlackBuild_(ITA) -->
= Introduzione =
Questo wiki spiega come installare i driver propritari ATI con la distribuzione linux Slackware, creando, grazie ad uno SlackBuild, deipacchetti 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.Orgcon l'unico scopo di far funzionare i driver proprietari (una descrizione su come configurare il server X.Org per ottenere prestazionipi&ugrave; elevate la potete trovare [http://www.slacky.eu/wikislack/index.php?title=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 '$>' possonoessere 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 venivanoindicati 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 aivecchi 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 L'installer pu&ograve; essere scaricati scaricato direttamente dal sito ufficiale: [http://atisupport.amd.com/supportus/gpudownload/Pages/driverindex.aspx sito ufficiale].html, dopo aver selezionato ilsistema operativo Linux x86 (o Linux x86_64) e selezionato {{Warning|Attenzione|Se la propria scheda video, premendo il tasto "go" versione dei driver che si arriva direttamente allapagina del download da cui bisogner&agraveegrave; scaricata &egrave; scaricare l'installer (che minore della 8.37.6 allora dovete sapere fin d'ora in poi chiameremo ''installerche non funzioneranno con il server X.Org 7.2 (o 1.run''3)o successivi.}}Dato {{Helpful Hint|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 driver contengono anche un modulo del kernel file adeguati.Questo vuol dire che verrlo SlackBuild andr&agrave; compilato direttamente sul vostro sistemabene sia per la Slackware sia la Slackware64, sia per le varie versioni porting a 64 bit (Slamd64, Bluewhite64, &egrave; necessarioavere anche i sorgenti del kernel attualmente installato sul sistemaetc...).}}
'''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 Dato che sceglier&agrave; i file adeguati. Questo vuol dire driver contengono anche un modulo del kernel che lo SlackBuild andrverr&agrave; bene sia per la Slackware sia la Slackware64compilato direttamente sul vostro sistema, 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 conil server X.Org 7.2 (o 1.3) o successivinecessario avere anche i sorgenti del kernel attualmente in uso.
= 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 = ATI Proprietary Driver o nuovi ATI Catalyst'''< 11.3 ==La prima strada fa uso di quello che chiameremo '''SlackBuild esterno''' mentre la seconda di quello che chiameremo'''Per questi driver lo SlackBuild interno'''.In entrambi i casi verranno creati produce due pacchetti che potranno quindi essere installati tramite l'utiliti '''installpkg''' della Slackware.Quindi passiamo a (vedere [[#Cosa contengono i due casi ricordando che il programma che qui chiamiamo ''installerpacchetti creati?]]).run'' &egrave; l'installer che si &egrave;scaricato dal sito della 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 [http://www.slacky.eu/~spina/fglrx/ati-slack-packager-1.1.9-noarch-1.tgz questo pacchetto].
Per creare i pacchetti Slackware basta eseguire:
#> installpkg ati-slack-packager-current1.1.9-noarch-1.tgz #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg custom-package/Slackware
'''NOTA:''' L'uso dello '''SlackBuild esterno''' &egrave; limitato alla versione dei '''driver < 8.37.6''' visto che dai nuovi ''' Catalyst 8.11''' si possono passare delle patch a quello interno. === 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 bastaeseguire: #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg Slackware/Allo, se i driver sono abbastanza recenti (non ricordo la versione esatta), basta un semplice: #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkgOppure, per creare ed installare direttamente i pacchetti, si può pu&ograve; usare (sempre con versioni recenti dei driver):
#> sh intaller.run --buildandinstallpkg
=== Cosa contengono i pacchetti creati? ===I due pacchetti creati dallo SlackBuild, che chiameremo ''fglrx-module'' e ''fglrx-x'', contengono, rispettivamente, il modulo per ilkernel 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 ati-driver-installer-<versione>-x86.x86_64.run --buildpkg custom-package/Only_Module
Con lo '''SlackBuild interno''':
#> sh ati-driver-installer-<versione>-x86.x86_64.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 conl'opzione ''Only_X''.
Con lo '''SlackBuild esterno''':
#> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg custom-package/Only_X
Con lo '''SlackBuild interno''':
#> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg Slackware/Only_X == ATI Catalyst >= 11.3 ==A partire da questi driver lo '''SlackBuild interno''' produce un solo pacchetto, chiamato ''fglrx-<versione>-<architettura>-<release>.tgz'', che pu&ograve; essere creato con: #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkgSi pu&ograve; anche creare ed installare direttamente il pacchetto con: #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildandinstallpkg
= 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 bisognacontrollare che il file xorg.conf, che generalmente &egrave; situato nella directory /etc/X11/, contenga le seguenti voci:
Section "Module"
Mode 0666
EndSection
 
{{Useful Information|Nota|Il comando:
#> aticonfig --initial
pu&ograve; essere di aiuto. Eseguire '''aticonfig''' senza opzioni per maggiori informazioni}}
= Verifica =
= Rimuovere i pacchetti installati =
== ATI Proprietary Driver o ATI Catalyst < 11.3 ==Per rimuovere i pacchetti installati si pu&ograve; tranquillamente usare l'utiliti utility '''removepkg'''. Ci sono per&ograve; aspetti che vannoconsiderati:
* La rimozione dei pacchetti non elimina i file di configurazione del driver fglrx, questi file sono situati nella directory ''/etc/ati''
'''NOTA:''' {{Be Careful|Occhio|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
::mesa
:se si usa la Slackware 12.
 
== ATI Catalyst >= 11.3 ==
Durante l'installazione del pacchetto ''fglrx-<versione>-<architettura>-<release>.tgz'' alcune librerie che sarebbero sovrascritte vengono rinominate in FGL.renamed.nome_libreria. Per disinstallare il pacchetto in maniera "pulita" si dovrebbe eseguire il comando:
#> aticonfig --uninstall
oppure direttamente lo script:
#> /usr/share/ati/amd-uninstall.sh
o, ancora, con un qualsiasi installer >= 11.3, con:
#> ati-driver-installer-<versione>-x86.x86_64.run --uninstall
Dopo di ci&ograve; rimarr&agrave; solo la directory ''/etc/ati'' con i file di configurazione dei driver.
= Patchare i driver =
I driver ATI sono noti per essere sempre in ritardo rispetto all'aggiornamento del kernel linux. Spesso occorre quindi patchare i driver in modo tale che la creazione del modulo per il kernel abbia successo. A partire dagli ATI Catalist > 8.11 abbiamo ho inserito nello '''SlackBuild interno''' la possibilit&agrave; di patchare i driver ATI prima che lo SlackBuild stesso esegua la compilazione del modulo per il kernel.
Per fare questo basta creare (o scaricare da internet) una patch e dargli questo path:
ATI_DRIVER_VERSION deve essere uguale al risultato del comando:
$> sh ati-driver-installer-<versione>-x86.x86_64.run -i | head -n1 | cut -d'-' -f2
KERNEL_VERSION deve essere uguale al risultato del comando:
$> uname -r
se la directory ''/et/ati/patch'' non esiste, va ovviamente creata.
Quindi, ad esempio, se si il primo dei due comandi da come risultato '''8.56''' e il secondo '''2.6.27.6''', la patch va chiamata: ''/etc/ati/patch/patch-8.56-2.6.27.6''.
Lo '''SlackBuild interno''' automaticamente noter&agrave; la patch, e, se si &egrave; in possesso del programma '''patch''', eseguir&agrave;:
#> mv /tmp/fglrx_10.10-11_with_2.6.36.x.diff /etc/ati/patch/patch-8.791-$(uname -r)
#> sh ati-driver-installer-10-11-x86.x86_64.run --buildpkg
 
=== ATI Catalyst 10.10, 10.11 e 10.12 e kernel == 2.6.37.x ===
Scaricate la [http://www.slacky.eu/~spina/fglrx/patch/fglrx_10.10-12_with_2.6.37.x.diff patch] nella directory ''/tmp'', quindi:
* Per i '''Catalyst 10.10''' fate:
#> mkdir -p /etc/ati/patch/
#> mv /tmp/fglrx_10.10-12_with_2.6.37.x.diff /etc/ati/patch/patch-8.783-$(uname -r)
#> sh ati-driver-installer-10-10-x86.x86_64.run --buildpkg
 
* Per i '''Catalyst 10.11''' fate:
#> mkdir -p /etc/ati/patch/
#> mv /tmp/fglrx_10.10-12_with_2.6.37.x.diff /etc/ati/patch/patch-8.791-$(uname -r)
#> sh ati-driver-installer-10-11-x86.x86_64.run --buildpkg
 
* Per i '''Catalyst 10.12''' fate:
#> mkdir -p /etc/ati/patch/
#> mv /tmp/fglrx_10.10-12_with_2.6.37.x.diff /etc/ati/patch/patch-8.801-$(uname -r)
#> sh ati-driver-installer-10-12-x86.x86_64.run --buildpkg
= Problemi noti =
== error: implicit declaration of function 'lock_kernel' and error: implicit declaration of function 'unlock_kernel' ==
Dovete abilitare l'opzione '''Big Kernel Lock''' nella vostra configurazione del kernel. La voce si trova nel men&ugrave; '''Kernel hacking'''. Per controllare se questa opzione &egrave; abilitata potete fare:
$> zcat /proc/config.gz | grep BKL
CONFIG_BKL=y
 
== 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 diparavirtualizzazione attiva. Questa opzione tra le altre cose, impedisce di caricare, e quindi di compilare, moduli che non hanno lalicenza GPL. Visto che i driver ATI non hanno questo tipo di licenza, non vengono compilati.
Per ovviare al problema si pu&ograve;:
* Copiare la patch nella directory ''/etc/ati/patch'' (se non esiste, va creata)
Lo SlackBuild noter&agrave; la presenza della patch e la applicher&agrave;. Per disinstallare la patch basterà baster&agrave; quindi cancellarla.
== 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 essereabilitata &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 ==
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 accadere 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).
 
<<edit by 414N>>: Questo problema può presentarsi anche in caso di kernel ricompilati manualmente ai quali si è aggiunta una qualche tag in fase di configurazione.
Per risolvere è sufficiente un make prepare nella directory dei sorgenti del kernel in uso, in modo da avere gli header necessari allo script (make andrebbe a compilare tutto il kernel).
== Logo nei driver 8.39.4 ==
Un alternativa ai driver ufficiali ATI:
http://www.schneider-digitalx.deorg/wiki/radeon
Una guida su come installare e configurare i driver (open source e proprietary) ATI:
http://www.slacky.eu/wikislack/index.php?title=Installazione_driver_ATI_su_Slackware_GNU/Linux
= Conclusione Ringraziamenti =I driver proprietari ATI Ringrazio Ezio Ghibaudo e Federico Rota per molti notebook aver iniziato questo wiki e moderni PC fissi risultano essere quasi l'unica alternativa per l'uso dell'accelerazione 3d aiuto che mi hanno dato con linuxlo SlackBuild. Purtroppo gli sviluppatori ATI non effettuano il back porting e quindi Vorrei anche ringraziare tutti gli utenti che fanno uso dei driver precedenti alla versione 8della community [http://www.37slacky.6 non potranno mai passare alla versione 7.2 (o anche detto 1.3) o successive del server X.Org. Si spera quindi che ben presto eu Slacky] per i driver Mesa possano essere usati anche per queste schede video. Inoltre, pu&ograve; succedere che la compilazione del modulo non abbia successo. Se &egrave; il vostro caso, scrivetemi tranquillamente all'indirizzo '''tomasi@cliDOTdiDOTunipiDOTit''' postandomi l'output dell'installer lanciato con l'opzione ''Only_Module''feedback e consigli.
Ringrazio Ezio Ghibaudo e Federico Rota per aver iniziato questo wiki e per l'aiuto che mi hanno dato con lo SlackBuild.[[User:Spina|Spina]]

Navigation menu