Editing Slackware: ATI SlackBuild (ITA)

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
<!-- 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, dei
 +
pacchetti che possono essere installati tramite il comando '''installpkg'''.
  
= Introduzione =
+
Il wiki NON spiega come migliorare le prestazioni. In particolare fornisce solo una descrizione minimale di come impostare il server X.Org
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'''.
+
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]]).
  
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 [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 '$' possono
 +
essere eseguiti anche da un utente senza tali diritti.
  
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'''.
  
= ATI Proprietary Driver e ATI Catalyst =
+
Quando in questo articolo si parler&agrave; dei driver ''versione < 8.37.6'', ci si riferir&agrave; implicitamente ai
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'''.
+
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.
  
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://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&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.
  
= Come ottenere tutto il software necessario =
+
'''NOTA:''' I driver per le architetture x86 e x86_64 sono equivalenti. L'installer infatti contiene i file per entrambe  
L'installer pu&ograve; essere scaricato direttamente dal [http://support.amd.com/us/gpudownload/Pages/index.aspx sito ufficiale].
+
le architetture, sar&agrave; poi il processo di compilazione e creazione dei pacchetti che sceglier&agrave; i file adeguati.  
{{Warning|Attenzione|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) o successivi.}}
+
Questo vuol dire che lo SlackBuild andr&agrave; bene sia per la Slackware sia per le varie versioni porting a 64 bit
{{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 file adeguati.
+
(Slamd64, Bluewhite64, etc...).
Questo vuol dire che lo SlackBuild andr&agrave; bene sia per la Slackware sia la Slackware64, sia per le varie versioni porting a 64 bit (Slamd64, Bluewhite64, etc...).}}
 
  
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 in uso.
+
=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) o successivi.
  
= Come creare i pacchetti per la Slackware =
+
=Come creare i pacchetti per la Slackware=
== ATI Proprietary Driver o ATI Catalyst < 11.3 ==
+
La creazione dei pacchetti segue due strade differenti a seconda che si usino i driver ufficiali '''versione < 8.37.6''' oppure
Per questi driver lo SlackBuild produce due pacchetti (vedere [[#Cosa contengono i pacchetti creati?]]).
+
'''versione >= 8.37.6 o nuovi ATI Catalyst'''.
=== Versione dei driver < 8.37.6 (SlackBuild esterno) ===
+
La prima strada fa uso di quello che chiameremo '''SlackBuild esterno''' mentre la seconda di quello che chiameremo
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].
+
'''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.
  
Per creare i pacchetti Slackware basta eseguire:
+
'''NOTA:''' L'uso dello ''SlackBuild esterno'' non &egrave; limitato alla versione dei ''driver < 8.37.6'' ma lo si pu&ograve;  usare
#> installpkg ati-slack-packager-1.1.9-noarch-1.tgz
+
  (e a volte vedremo che &egrave; l'unica alternativa) con tutte le versioni dei driver ATI.
  #> sh ati-driver-installer-<versione>-x86.x86_64.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 ati-driver-installer-<versione>-x86.x86_64.run --buildpkg Slackware/All
 
o, se i driver sono abbastanza recenti, basta un semplice:
 
#> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg
 
Oppure, per creare ed installare direttamente i pacchetti, si pu&ograve; usare (sempre con versioni recenti dei driver):
 
#> sh intaller.run --buildandinstallpkg
 
  
=== Cosa contengono i pacchetti creati? ===
+
==Versione dei driver < 8.37.6 (SlackBuild esterno)==
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.
+
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
  
==== Creare solo il pacchetto fglrx-module ====
+
Per creare i pacchetti slackware basta eseguire:
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''':
+
# installpkg ati-slack-packager-current-noarch-1.tgz
  #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg custom-package/Only_Module
+
# 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
 +
o, se i driver sono abbastanza recenti (non ricordo la versione esatta), basta un semplice:
 +
# sh installer.run --buildpkg
 +
Oppure, per creare ed installare direttamente i pacchetti, si può 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 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''':
 
Con lo '''SlackBuild interno''':
  #> sh ati-driver-installer-<versione>-x86.x86_64.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 lo '''SlackBuild esterno''':
 
Con lo '''SlackBuild esterno''':
  #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg custom-package/Only_X
+
  # sh installer.run --buildpkg custom-package/Only_X
 
Con lo '''SlackBuild interno''':
 
Con lo '''SlackBuild interno''':
  #> sh ati-driver-installer-<versione>-x86.x86_64.run --buildpkg Slackware/Only_X
+
  # sh installer.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 --buildpkg
 
Si 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 =
+
=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:
+
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"
 
  Section "Module"
Line 83: Line 110:
 
  Group 0
 
  Group 0
 
  Mode 0666
 
  Mode 0666
  EndSection
+
  EndSection  
  
{{Useful Information|Nota|Il comando:
+
=Verifica=
#> aticonfig --initial
 
pu&ograve; essere di aiuto. Eseguire '''aticonfig''' senza opzioni per maggiori informazioni}}
 
 
 
= Verifica =
 
 
Per verificare se i driver proprietari ATI sono stati correttamente installati si pu&ograve; eseguire il comando:
 
Per verificare se i driver proprietari ATI sono stati correttamente installati si pu&ograve; eseguire il comando:
  $> fglrxinfo
+
  $ fglrxinfo
 
Sulla mia macchina l'output &egrave;:
 
Sulla mia macchina l'output &egrave;:
 
  display: :0.0  screen: 0
 
  display: :0.0  screen: 0
Line 98: Line 121:
 
  OpenGL version string: 2.0.6650 (8.39.4)
 
  OpenGL version string: 2.0.6650 (8.39.4)
  
= Rimuovere i pacchetti installati =
+
=Rimuovere i pacchetti installati=
== ATI Proprietary Driver o ATI Catalyst < 11.3 ==
+
Per rimuovere i pacchetti installati si pu&ograve; tranquillamente usare l'utiliti '''removepkg'''. Ci sono per&ograve; aspetti che vanno  
Per rimuovere i pacchetti installati si pu&ograve; tranquillamente usare l'utility '''removepkg'''. Ci sono per&ograve; aspetti che vanno considerati:
+
considerati:
* La rimozione dei pacchetti non elimina i file di configurazione del driver fglrx, questi file sono situati nella directory ''/etc/ati''
+
*La rimozione dei pacchetti non elimina i file di configurazione del driver fglrx, questi file sono situati nella directory ''/etc/ati''
{{Be Careful|Occhio|La directory ''/etc/ati/custom-package'' se esiste, contiene lo '''SlackBuild esterno''' e quindi non va cancellata.}}
+
'''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:
 
*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
: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.
  
== ATI Catalyst >= 11.3 ==
+
=Problemi noti=
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:
+
==FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol 'paravirt_ops'==
#> aticonfig --uninstall
+
L'errore accade in fase di compilazione del modulo ed &egrave; dovuto al fatto che il kernel &egrave; stato compilato con l'opzione di  
oppure direttamente lo script:
+
paravirtualizzazione attiva. Questa opzione tra le altre cose, impedisce di caricare, e quindi di compilare, moduli che non hanno la  
#> /usr/share/ati/amd-uninstall.sh
+
licenza GPL. Visto che i driver ATI non hanno questo tipo di licenza, non vengono compilati.
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 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:
 
 
 
''/etc/ati/patch/patch-ATI_DRIVER_VERSION-KERNEL_VERSION''
 
 
 
dove:
 
 
 
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;:
 
#> patch -p0 < /etc/ati/patch/patch-8.56-2.6.27.6
 
 
 
== Alcune patch ==
 
Di seguito alcune patch note e come usarle:
 
 
 
=== ATI Catalyst 10.3, 10.4 e kernel == 2.6.33.x ===
 
Scaricate la [http://www.slacky.eu/~spina/fglrx/patch/fglrx_10.3-4_with_2.6.33.x.diff patch] nella directory ''/tmp'', quindi:
 
 
 
* Per i '''Catalyst 10.3''' fate:
 
#> mkdir -p /etc/ati/patch/
 
#> mv /tmp/fglrx_10.3-4_with_2.6.33.x.diff /etc/ati/patch/patch-8.712-$(uname -r)
 
#> sh ati-driver-installer-10-3-x86.x86_64.run --buildpkg
 
 
 
* Per i '''Catalyst 10.4''' fate:
 
#> mkdir -p /etc/ati/patch/
 
#> mv /tmp/fglrx_10.3-4_with_2.6.33.x.diff /etc/ati/patch/patch-8.723-$(uname -r)
 
#> sh ati-driver-installer-10-4-x86.x86_64.run --buildpkg
 
 
 
=== ATI Catalyst 10.4, 10.5 e kernel == 2.6.34 ===
 
Scaricate la [http://www.slacky.eu/~spina/fglrx/patch/fglrx_10.4-5_with_2.6.34.diff patch] nella directory ''/tmp'', quindi:
 
 
 
* Per i '''Catalyst 10.4''' fate:
 
#> mkdir -p /etc/ati/patch/
 
#> mv /tmp/fglrx_10.4-5_with_2.6.34.diff /etc/ati/patch/patch-8.723-$(uname -r)
 
#> sh ati-driver-installer-10-4-x86.x86_64.run --buildpkg
 
 
 
* Per i '''Catalyst 10.5''' fate:
 
#> mkdir -p /etc/ati/patch/
 
#> mv /tmp/fglrx_10.4-5_with_2.6.34.diff /etc/ati/patch/patch-8.732-$(uname -r)
 
#> sh ati-driver-installer-10-4-x86.x86_64.run --buildpkg
 
 
 
=== ATI Catalyst 10.9 e Slackware64 13.1 o current ===
 
Scaricate la [http://www.slacky.eu/~spina/fglrx/patch/fglrx_10.9_with_Slackware64-13.1.diff patch] nella directory ''/tmp'', quindi fate:
 
#> mkdir -p /etc/ati/patch/
 
#> mv /tmp/fglrx_10.9_with_Slackware64-13.1.diff /etc/ati/patch/patch-8.771-$(uname -r)
 
#> sh ati-driver-installer-10-9-x86.x86_64.run --buildpkg
 
ad un certo punto l'installazione chiede:
 
<PRE>
 
can't find file to patch at input line 4
 
Perhaps you should have used the -p or --strip option?
 
The text leading up to this was:
 
--------------------------
 
|diff -ru ./2.6.x/Makefile ../../../../../../fglrx-install.uZLF8t/common/lib/modules/fglrx/build_mod//2.6.x/Makefile
 
|--- ./2.6.x/Makefile  2010-09-01 16:05:31.000000000 +0200
 
|+++ ../../../../../../fglrx-install.uZLF8t/common/lib/modules/fglrx/build_mod//2.6.x/Makefile  2010-09-23 08:47:24.000000000 +0200
 
--------------------------
 
File to patch:
 
</PRE>
 
quindi inserire:
 
./2.6.x/Makefile
 
 
 
=== ATI Catalyst 10.10, 10.11 e kernel == 2.6.36.x ===
 
Scaricate la [http://www.slacky.eu/~spina/fglrx/patch/fglrx_10.10-11_with_2.6.36.x.diff patch] nella directory ''/tmp'', quindi:
 
* Per i '''Catalyst 10.10''' fate:
 
#> mkdir -p /etc/ati/patch/
 
#> mv /tmp/fglrx_10.10-11_with_2.6.36.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-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 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;:
 
Per ovviare al problema si pu&ograve;:
=== Disabilitare la paravirtualizzazione nel kernel ===
+
===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.
+
L'opzione di paravirtualizzazione si chiama '''CONFIG_PARAVIRT''' e generalmente si trova nel sottomen&ugrave;  
=== Patchare i driver ATI ===
+
'''Processor type and features''' del kernel.
Questa operazione &egrave; illegale poich&egrave; si deve modificare il tipo di licenza rilasciata dalla ATI in GPL. Ho scritto la patch:
+
===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] (md5sum: 4207f41a71035dc2eed3ea9346b881bb)
+
[http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/patch/ati_to_gpl.patch ati_to_gpl.patch] (md5sum: 4207f41a71035dc2eed3ea9346b881bb)
  
 
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.
 
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:
  
'''SlackBuild esterno''':
+
'''SlackBuild esterno'''
 
* Copiare la patch nella directory ''/etc/ati/custom-package/patch''
 
* Copiare la patch nella directory ''/etc/ati/custom-package/patch''
  
'''SlackBuild interno''' (solo con ATI Catalist > 8.11):
+
'''SlackBuild interno'''
 
* Copiare la patch nella directory ''/etc/ati/patch'' (se non esiste, va creata)
 
* 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&agrave; quindi cancellarla.
+
Lo SlackBuild noter&agrave; la presenza della patch e la applicher&agrave;. Per disinstallare la patch basterà quindi cancellarla.
  
== 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 &egrave; dovuto alla mancanza nel sistema del filesystem SHM (oggi chiamato tmpfs), ovvero il virtual memory filesystem. Per ovviare al problema si deve:
+
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:
 
* 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; '''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.
+
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 ==
+
==kernel includes at /lib/modules/`uname -r`/build/include do not match current kernel==
 
L'errore completo &egrave; qualcosa del genere:
 
L'errore completo &egrave; qualcosa del genere:
 
+
 
  Error:
 
  Error:
 
  kernel includes at /lib/modules/`uname -r`/build/include do not match current kernel.
 
  kernel includes at /lib/modules/`uname -r`/build/include do not match current kernel.
Line 267: Line 185:
 
  /lib/modules/`uname -r`/source
 
  /lib/modules/`uname -r`/source
 
  /lib/modules/`uname -r`/build
 
  /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:
+
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 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; accadere che si verifichi l'errore suddetto. Per ovviare basta fare quanto segue, dopo essersi assicurati che il pacchetto dei sorgenti &egrave; stato installato:
+
* 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
+
  # cd /usr/src/linux
  #> cp /boot/config .config
+
  # cp /boot/config .config
  #> make
+
  # 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).
 
: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.
+
==Logo nei driver 8.39.4==
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).
+
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]].
  
== Logo nei driver 8.39.4 ==
+
==amdcccle non parte con la slackware 12==
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]].
+
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.
  
== amdcccle non parte con la Slackware 12 ==
+
=Link utili=
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;:
+
La Homepage dello SlackBuild esterno per i driver ATI la trovate all'indirizzo:
#> amdcccle
+
http://www.cli.di.unipi.it/~tomasi/ati-slack-packager/sito/ati-slack-packager.html
Per questo problema sembra non esserci ancora soluzione, ma stiamo lavorando per risolverlo.
+
 
 +
La principale "non-ufficiale" fonte di informazione per quanto riguarda i driver proprietari ATI:
 +
http://wiki.cchtml.com/index.php/Main_Page
  
= Link utili =
 
 
Il thread di discussione da cui &egrave; stato tratto questo articolo:
 
Il thread di discussione da cui &egrave; stato tratto questo articolo:
 
http://www.slacky.eu/forum/viewtopic.php?t=18134&highlight=
 
http://www.slacky.eu/forum/viewtopic.php?t=18134&highlight=
  
Un alternativa ai driver ufficiali ATI:
+
Un alternativa ai driver ufficiali ATI &egrave; data dal seguente sito:
http://www.x.org/wiki/radeon
+
http://www.schneider-digital.de/
  
Una guida su come installare e configurare i driver (open source e proprietary) ATI:
+
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
 
http://www.slacky.eu/wikislack/index.php?title=Installazione_driver_ATI_su_Slackware_GNU/Linux
  
= Ringraziamenti =
+
=Conclusione=
Ringrazio Ezio Ghibaudo e Federico Rota per aver iniziato questo wiki e per l'aiuto che mi hanno dato con lo SlackBuild. Vorrei anche ringraziare tutti gli utenti della community [http://www.slacky.eu Slacky] per i feedback e consigli.
+
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) o successive 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; '''deprecato''' avendo aggiunto allo '''SlackBuild interno''' la possibilit&agrave; di patchare i driver.
 +
 
 +
Inoltre, 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
 +
'''spina80@freemail.it''' postandomi l'output dell'installer lanciato con l'opzione ''Only_Module''.
  
[[User:Spina|Spina]]
+
Autore (data dell'ultimo aggiornamento):
 +
[[Utente:Spina|Spina]] 08:43, 19 Dic 2007 (CET)

Please note that all contributions to cchtml.com are considered to be released under the Public Domain (see cchtml.com:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)