Old:Debian: accelerare GTK con Cairo e Glitz: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(12 versioni intermedie di 4 utenti non mostrate)
Riga 1: Riga 1:
L' installazione dei drivers per le schede di rete Intel� PRO/Wireless 2200BG, tra le pi� diffuse e comuni per l' architettura Centrino, � abbastanza semplice in Debian GNU/Linux.
{{Old}}
 
[[Immagine:174518070_346f29043a_o.jpg|thumb|Screenshot di Gnome #2]]
=Introduzione=
Questa guida spiega come abilitare Cairo e GLitz in Debian Etch (testing) in modo da accelerare notevolmente le prestazioni delle librerie GTK e dell'ambiente Gnome.
 
Essendo necessaria l'installazione di pacchetti provenienti dal ramo ''experimental'', potrebbe essere utile configurare la vostra Debian-box per l'utilizzo di repository misti. A questo scopo vi consiglio la lettura di [[APT uso avanzato: mixare releases diverse]].
 
Il software utilizzato è altamente sperimentale, per cui ne sconsiglio l' utilizzo ai deboli di cuore.
 
Non mi resta che augurarvi buona lettura & happy Debian!


=Prerequisiti=
=Prerequisiti=
Prima di seguire quanto riportato nella guida, assicuriamoci di avere a nostra disposizioni gli headers per il nostro kernel. Se abbiamo compilato noi stessi il kernel, allora possiamo essere tranquilli, ma se stiamo usando un kernel precompilato (ad esempio quello installato durante il setup di Debian, oppure scaricato tramite APT) allora dobbiamo necessariamente scaricare il pacchetto Debian contenente gli headers.
Prendendo come esempio una installazione standard di Debian Sarge, ecco come dobbiamo procedere:
<pre>$ uname -r
2.6.8-2-386</pre>
questo significa che dobbiamo procurarci gli headers relativi a questa release del kernel:
<pre>$ apt-cache search headers 2.6.8-2-386
kernel-headers-2.6.8-2-386 - Linux kernel headers 2.6.8 on 386</pre>
A questo punto sufficiente installare il pacchetto:
<pre># apt-get install kernel-headers-2.6.8-2-386</pre>
e il gioco fatto.


=Scaricare i sorgenti del driver=
==Repository==
Questo passo si esaurisce con l' usare APT per scaricare i drivers:
 
<pre>$ apt-cache search ipw module
Dato che dovremo utilizzare alcuni pacchetti sorgenti ed altri provenienti da experimental, è necessario aggiungere (se non presenti) i seguenti repository al nostro file <code>'''/etc/apt/sources.list'''</code>:
bsign - Corruption & intrusion detection using embedded hashes
 
ipw2100-source - source for the ipw2100 driver
<pre>deb-src http://debian.fastweb.it/debian/ testing main non-free contrib
ipw2200-source - Source for the ipw2200 driver
deb http://debian.fastweb.it/debian/ ../project/experimental main contrib non-free</pre>
ipw2200-modules-2.6.8-2-386 - ipw2200 modules for Linux (kernel 2.6.8-2-386).
 
Una volta inseriti i repository, aggiorniamo il database dei pacchetti:
 
<pre># apt-get update</pre>
 
==Strumenti CVS==
 
Utilizzeremo codice proveniente dall'archivio di sviluppo del tema GTK Clearlooks, per cui abbiamo bisogno dei relativi strumenti. Installiamoli:
 
<pre># apt-get install cvs</pre>
 
==Checkinstall==
 
Un altro strumento utile al momento di installare programmi compilati da codice sorgente è checkinstall. Installiamolo:
 
<pre># apt-get install checkinstall</pre>
 
==Libtool==
 
È necessario anche installare '''libtool''':
 
<pre># apt-get install libtool</pre>
 
=Ricompilare Cairo=
 
Le librerie Cairo fornite da Debian non sono compilate per supportare Glitz. Dobbiamo quindi ricompilarle abilitandolo.
 
Per prima cosa creiamo una cartella di lavoro:
 
<pre>$ mkdir src</pre>
 
Ora scarichiamo il pacchetto sorgente delle librerie e le relative dipendenze:
 
<pre>$ apt-get source libcairo2
# sudo apt-get build-dep libcairo2</pre>
 
Ora abilitiamo il supporto a Glitz editando il file <code>'''rules'''</code> all'interno di <code>libcairo-1.0.0/debian</code>. Dobbiamo andare alla sezione <code>'''DEB_CONFIGURE_USER_FLAGS= \'''</code> del file e modificare la direttiva <code>--disable-glitz</code> in <code>--enable-glitz</code>.
 
Fatto questo passiamo alla compilazione vera e propria del pacchetto, che può essere fatta in vari modi:
* primo metodo ''(lanciato all'interno di <code>~/src/libcairo-1.0.0</code> )'': <pre># debian/rules binary</pre>
* secondo metodo ''(lanciato all'interno di <code>~/src</code>)'': <pre># apt-get source libcairo2 --compile</pre>
 
Quale che sia il metodo da noi scelto, ci ritroveremo con 3 pacchetti debian pronti per essere installati. Si tratta dei pacchetti <code> libcairo2_1.0.0-3_i386.deb libcairo2-dev_1.0.0-3_i386.deb libcairo2-doc_1.0.0-3_all.deb </code> che possiamo tranquillamente installare con il comando:
 
<pre># dpkg -i *.deb</pre>
 
==Compilare Clearlooks==
 
Ora che abbiamo preparato Cairo con il supporto Glitz, possiamo procedere alla compilazione del motore GTK ClearLooks. Questo motore ci permetterà di rendere estremamente veloci le nostre applicazioni basate su GTK, compreso il desktop environment Gnome. Utilizzeremo la versione cvs dell'engine.
 
===Aggiornare GTK===
 
Per compilare clearlooks avremo bisogno delle librerie di sviluppo GTK+. Le versioni presenti in testing e unstable non sono abbastanza recenti, per cui dovremo installare la versione experimental:
 
<pre>apt-get install -t experimental libgtk2.0-dev</pre>
 
===Scaricare i sorgenti===
 
Scarichiamo i sorgenti di clearlooks tramite cvs:
 
<pre>$ export CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome'
[INVIO]
$ cvs login
[INVIO]
$ cvs -z3 checkout gtk-engines
[INVIO]</pre>
 
Ora rinominiamo la directory appena creata da <code>clearlooks-cairo</code> a <code>clearlooks-cairo-0.1</code>, spostiamoci nella directory appena rinominata e compiliamo il motore nel modo seguente:
 
<pre>./autogen.sh --prefix=/usr --enable-animation
make
</pre>
</pre>
In questo caso ci interessano i sorgenti dei drivers, per cui:
<pre># apt-get install ipw2200-source</pre>
che scarica la documentazione relativa alla compilazione dei drivers, oltre a un archivio contente i sorgenti veri e propri (in /usr/src).


=Compilare i drivers=
Prima di passare alla disinstallazione vera e propria potrebbe essere necessario rimuovere (se presente) il pacchetto <code>'''automake1.9'''</code>:
Logghiamoci come root e spostiamoci in /usr/src
 
<pre>$ su
<pre># apt-get remove automake1.9</pre>
Password:
 
# cd /usr/src/</pre>
oppure semplicemente installare <code>'''automake1.7'''</code>:
Ora scompattiamo i sorgenti dei drivers:
 
<pre># tar xzvf ipw2200-source.tar.gz</pre>
<pre># apt-get install automake1.7</pre>
A questo punto possiamo procedere in due modi.
 
Ora possiamo installare il motore usando il comando (da lanciare nella directory da cui abbiamo lanciato il make):
 
<pre># checkinstall</pre>
Dovremo rispondere ad un paio di banali domande poste da checkinstall, dopodichè il pacchetto sarà installato e pronto per essere utilizzato attraverso il theme manager di Gnome.
 
==Avvertenze==
 
Quando selezioniamo il motore  ''clearlooks-cairo'' nel theme manager di Gnome, quest'ultimo potrebbe andare in blocco.
 
Nessuna paura: attendiamo il freeze e quindi riavviamo il server X con la combinazione di tasti: CTRL+ALT+BACKSPACE. Quando rientreremo in Gnome potremo constatare la velocità del nuovo motore.
 
=Configurare Xorg=
 
Passiamo adesso a configurare Xorg in modo da rendere il nostro Desktop '''davvero''' accattivante.
 
Apriamo il file <code>'''/etc/X11/xorg.conf'''</code> come utente root e creiamo questa nuova sezione (anche al termine del file):
 
<pre>Section "Extensions"
        Option "Composite" "Enable"
        Option "RENDER" "Enable"
EndSection</pre>
 
=Configurare Gnome=
 
A questo punto scarichiamo il tema [http://www.gnome-look.org/content/show.php?content=28351 Compocity] di [http://pollycoke.wordpress.com felipe] e installiamolo.
 
Visto così non è molto bello, ma ora vedremo come renderlo davvero magnifico. Quello che ci serve è il programma <code>'''xcompmgr'''</code>.
 
Aggiorniamo il database dei pacchetti e installiamo il programma con:


==Usare module-assistant==
<pre># apt-get update
Se intendiamo avvalerci dell' utility [[Pagina_di_manuale_di_module-assistant |module-assistant]], a questo punto non dobbiamo fare altro che digitare il comando:
# apt-get install xcompmgr</pre>
<pre># module-assistant a-i ipw2200</pre>
 
ed il gioco � fatto.
Ora dobbiamo fare in modo che il programma (con i relativi parametri) venga eseguito ad ogni sessione di Gnome. Per fare questo lanciamo il gestore delle sessioni:
==Compilare il driver manualmente==
 
Se vogliamo compilare il driver manualmente, � sufficiente:
<pre>$ gnome-session-properties</pre>
<pre>$ cd modules/ipw2200
 
$ fakeroot debian/rules binary-modules KSRC=/usr/src/kernel-headers-$VERSION KVERS=$VERSION
selezioniamo il menu "Programmi d'avvio" e quindi premiamo il pulsante "Aggiungi"
</pre>
 
dove $VERSION � il numero di versione del kernel che '''deve essere esattamente identico''' all' output che abbiamo ottenuto usando ''uname -r''.
[[Immagine:Screen.jpg|thumb|Screenshot di Gnome #2]]
Una volta compilato il driver, installiamo il driver usando '''dpkg -i nome_pacchetto_del_driver.deb'''.
 
Come programma da avviare digitiamo <code>'''xcompmgr -cf'''</code> (le opzioni sono moltissime, vi rimando alla pagina man di xcompmgr) e nella casella <code>''ordine''</code> impostiamo il valore <code>'''10'''</code> quindi salviamo e usciamo.
 
Ora riavviamo il server X con la combinazione di tasti CTRL+ALT+BACKSPACE e quando ci loggheremo nuovamente, potremo goderci tutta la potenza dei nuovi standard di FreeDesktop.
 
=Impedire l'aggiornamento automatico dei pacchetti=


=Nota per i kernels 2.6.x=
Dato che le librerie Cairo standard di Debian non sono compilate con supporto a Glitz, ogni qual volta effettueremo un upgrade del sistema che prevede l'aggiornamento di queste librerie esse sovrascriveranno quelle da noi ricompilate. In questo modo perderemo ben presto i vantaggi dati dalla ricompilazione. Stesso discorso per il pacchetto <code>'''gtk-engines'''</code>.
Prima di poter usare il nostro driver appena compilato, dobbiamo procurarci il firmware che dovr� essere caricato da hotplug. Il firmware pu� essere scaricato dal sito [http://ipw2200.sourceforge.net/firmware.php IPW2200] e deve essere quello adatto alla versione del modulo da noi compilata. Ad esempio,
<pre>$ ls /usr/src |grep deb
ipw2200-modules-2.6.8-2-386_1.0.3-1+2.6.8-16_i386.deb</pre>
ci dice che la versione del nostro modulo � la 1.0.3-1, per cui dalla pagina dei downloads di [http://ipw2200.sourceforge.net/firmware.php IPW2200] sceglieremo senza dubbio [http://ipw2200.sourceforge.net/firmware.php?fid=4 Versions v0.19-v1.0.3].
Otterremo un archivio da scompattare
<pre>$ tar xzvf ipw2200-fw-2.2.tgz</pre>


A questo punto dobbiamo semplicemente copiare i files ''ipw-2.2-*.fw'' all' interno della directory '/usr/lib/hotplug/firmware'', ricordandoci di compiere questa operazione dopo esserci loggati come utente root.
La maniera migliore per evitare questo problema consiste nell'istruire APT affinché non aggiorni automaticamente i pacchetti interessati, lasciando a noi la libertà di scaricare i sorgenti aggiornati e provvedere alla ricompilazione manuale. Questo procedimento tecnicamente si chiama '''holding''' di un pacchetto e viene spiegato nella mia guida [[Impedire l'aggiornamento di un pacchetto]].
Nel caso il comando ''dmesg'' rilevi un errore del tipo ''Unable to load firmware'', relativo al modulo ipw2200, si deve scompattare il firmware all'interno della directory ''/lib/firmware''.


----
{{Autori
Autore: [[Utente:Keltik|keltik]] 13:50, Set 12, 2005 (EDT)
|Autore=[[Utente:Keltik|keltik]] 10:38, Nov 8, 2005 (EST)
[[Categoria:Hardware]][[Categoria:Wireless]]
|Estesa_da=
:[[Utente:Keltik|keltik]] 03:53, 12 Lug 2006 (EDT)
}}

Versione attuale delle 11:33, 29 mag 2016

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.



Screenshot di Gnome #2

Introduzione

Questa guida spiega come abilitare Cairo e GLitz in Debian Etch (testing) in modo da accelerare notevolmente le prestazioni delle librerie GTK e dell'ambiente Gnome.

Essendo necessaria l'installazione di pacchetti provenienti dal ramo experimental, potrebbe essere utile configurare la vostra Debian-box per l'utilizzo di repository misti. A questo scopo vi consiglio la lettura di APT uso avanzato: mixare releases diverse.

Il software utilizzato è altamente sperimentale, per cui ne sconsiglio l' utilizzo ai deboli di cuore.

Non mi resta che augurarvi buona lettura & happy Debian!

Prerequisiti

Repository

Dato che dovremo utilizzare alcuni pacchetti sorgenti ed altri provenienti da experimental, è necessario aggiungere (se non presenti) i seguenti repository al nostro file /etc/apt/sources.list:

deb-src http://debian.fastweb.it/debian/ testing main non-free contrib
deb http://debian.fastweb.it/debian/ ../project/experimental main contrib non-free

Una volta inseriti i repository, aggiorniamo il database dei pacchetti:

# apt-get update

Strumenti CVS

Utilizzeremo codice proveniente dall'archivio di sviluppo del tema GTK Clearlooks, per cui abbiamo bisogno dei relativi strumenti. Installiamoli:

# apt-get install cvs

Checkinstall

Un altro strumento utile al momento di installare programmi compilati da codice sorgente è checkinstall. Installiamolo:

# apt-get install checkinstall

Libtool

È necessario anche installare libtool:

# apt-get install libtool

Ricompilare Cairo

Le librerie Cairo fornite da Debian non sono compilate per supportare Glitz. Dobbiamo quindi ricompilarle abilitandolo.

Per prima cosa creiamo una cartella di lavoro:

$ mkdir src

Ora scarichiamo il pacchetto sorgente delle librerie e le relative dipendenze:

$ apt-get source libcairo2
# sudo apt-get build-dep libcairo2

Ora abilitiamo il supporto a Glitz editando il file rules all'interno di libcairo-1.0.0/debian. Dobbiamo andare alla sezione DEB_CONFIGURE_USER_FLAGS= \ del file e modificare la direttiva --disable-glitz in --enable-glitz.

Fatto questo passiamo alla compilazione vera e propria del pacchetto, che può essere fatta in vari modi:

  • primo metodo (lanciato all'interno di ~/src/libcairo-1.0.0 ):
    # debian/rules binary
  • secondo metodo (lanciato all'interno di ~/src):
    # apt-get source libcairo2 --compile

Quale che sia il metodo da noi scelto, ci ritroveremo con 3 pacchetti debian pronti per essere installati. Si tratta dei pacchetti libcairo2_1.0.0-3_i386.deb libcairo2-dev_1.0.0-3_i386.deb libcairo2-doc_1.0.0-3_all.deb che possiamo tranquillamente installare con il comando:

# dpkg -i *.deb

Compilare Clearlooks

Ora che abbiamo preparato Cairo con il supporto Glitz, possiamo procedere alla compilazione del motore GTK ClearLooks. Questo motore ci permetterà di rendere estremamente veloci le nostre applicazioni basate su GTK, compreso il desktop environment Gnome. Utilizzeremo la versione cvs dell'engine.

Aggiornare GTK

Per compilare clearlooks avremo bisogno delle librerie di sviluppo GTK+. Le versioni presenti in testing e unstable non sono abbastanza recenti, per cui dovremo installare la versione experimental:

apt-get install -t experimental libgtk2.0-dev

Scaricare i sorgenti

Scarichiamo i sorgenti di clearlooks tramite cvs:

$ export CVSROOT=':pserver:anonymous@anoncvs.gnome.org:/cvs/gnome'
[INVIO]
$ cvs login
[INVIO]
$ cvs -z3 checkout gtk-engines
[INVIO]

Ora rinominiamo la directory appena creata da clearlooks-cairo a clearlooks-cairo-0.1, spostiamoci nella directory appena rinominata e compiliamo il motore nel modo seguente:

./autogen.sh --prefix=/usr --enable-animation
make

Prima di passare alla disinstallazione vera e propria potrebbe essere necessario rimuovere (se presente) il pacchetto automake1.9:

# apt-get remove automake1.9

oppure semplicemente installare automake1.7:

# apt-get install automake1.7

Ora possiamo installare il motore usando il comando (da lanciare nella directory da cui abbiamo lanciato il make):

# checkinstall

Dovremo rispondere ad un paio di banali domande poste da checkinstall, dopodichè il pacchetto sarà installato e pronto per essere utilizzato attraverso il theme manager di Gnome.

Avvertenze

Quando selezioniamo il motore clearlooks-cairo nel theme manager di Gnome, quest'ultimo potrebbe andare in blocco.

Nessuna paura: attendiamo il freeze e quindi riavviamo il server X con la combinazione di tasti: CTRL+ALT+BACKSPACE. Quando rientreremo in Gnome potremo constatare la velocità del nuovo motore.

Configurare Xorg

Passiamo adesso a configurare Xorg in modo da rendere il nostro Desktop davvero accattivante.

Apriamo il file /etc/X11/xorg.conf come utente root e creiamo questa nuova sezione (anche al termine del file):

Section "Extensions"
        Option "Composite" "Enable"
        Option "RENDER" "Enable"
EndSection

Configurare Gnome

A questo punto scarichiamo il tema Compocity di felipe e installiamolo.

Visto così non è molto bello, ma ora vedremo come renderlo davvero magnifico. Quello che ci serve è il programma xcompmgr.

Aggiorniamo il database dei pacchetti e installiamo il programma con:

# apt-get update
# apt-get install xcompmgr

Ora dobbiamo fare in modo che il programma (con i relativi parametri) venga eseguito ad ogni sessione di Gnome. Per fare questo lanciamo il gestore delle sessioni:

$ gnome-session-properties

selezioniamo il menu "Programmi d'avvio" e quindi premiamo il pulsante "Aggiungi"

Screenshot di Gnome #2

Come programma da avviare digitiamo xcompmgr -cf (le opzioni sono moltissime, vi rimando alla pagina man di xcompmgr) e nella casella ordine impostiamo il valore 10 quindi salviamo e usciamo.

Ora riavviamo il server X con la combinazione di tasti CTRL+ALT+BACKSPACE e quando ci loggheremo nuovamente, potremo goderci tutta la potenza dei nuovi standard di FreeDesktop.

Impedire l'aggiornamento automatico dei pacchetti

Dato che le librerie Cairo standard di Debian non sono compilate con supporto a Glitz, ogni qual volta effettueremo un upgrade del sistema che prevede l'aggiornamento di queste librerie esse sovrascriveranno quelle da noi ricompilate. In questo modo perderemo ben presto i vantaggi dati dalla ricompilazione. Stesso discorso per il pacchetto gtk-engines.

La maniera migliore per evitare questo problema consiste nell'istruire APT affinché non aggiorni automaticamente i pacchetti interessati, lasciando a noi la libertà di scaricare i sorgenti aggiornati e provvedere alla ricompilazione manuale. Questo procedimento tecnicamente si chiama holding di un pacchetto e viene spiegato nella mia guida Impedire l'aggiornamento di un pacchetto.




Guida scritta da: keltik 10:38, Nov 8, 2005 (EST) Swirl-auth20.png Debianized 20%
Estesa da:
keltik 03:53, 12 Lug 2006 (EDT)
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized