LKN: Procurarsi i Sorgenti del Kernel: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(→‎'''Quale ramo usare''': inserita immagine)
m (link)
 
(14 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
Questa pagina riguarda l'installazione dei driver ATI esclusivamente per la scheda ATI RADEON MOBILITY 9700.
{{LKN}}
L'installazione dei driver generici rilasciati dalla ATI e pacchettizzati per Debian si pu� trovare spiegata sul sito di [http://xoomer.virgilio.it/flavio.stanchina/debian/fglrx-installer.html Flavio Stanchina].
Da questo sito fate attenzione alle configurazioni del kernel richieste. E' necessario impostare correttamente alcune opzioni del file .config
affinch� i driver funzionino correttamente. Rimando quindi a questa pagina per queste spiegazioni.
I pacchetti di Flavio Stanchina tuttavia non sono adatti all'installazione della scheda video qu� discussa, pertanto di quella pagina prendete ad esempio soltanto la configurazione delle opzioni discusse del kernel.


Infatti la particolarit� della scheda che qu� trattiamo � dovuta al numero identificativo del chip, che, a quanto pare, sui portatili � differente da quello indicato dalla casa produttrice. Questo si verifica anche per altre schede video, per le quali cambiano i numeri ID che discuteremo in seguito, ma rimane la stessa la procedura di installazione.
Quando si compila un kernel personalizzato ci si vorrebbe servire dell'ultima versione stabile. Molte distribuzioni forniscono i loro pacchetti dei sorgenti del kernel, ma raramente questi sono i più recenti e aggiornati. I pacchetti ufficiali delle distribuzioni hanno il vantaggio di essere compatibili con il compilatore e gli altri strumenti forniti dalla distribuzione stessa (Il capitolo 2 mette in evidenza l'importanza di questa compatibilità), ma non è detto che permettano di avere le funzionalità o le prestazioni di cui si ha bisogno. Preparando l'ambiente con il kernel più recente e le ultime versioni del compilatore e degli altri programmi sarà possibile ottenere esattamente ciò che si vuole. Questo capitolo spiega quali sorgenti del kernel scaricare e dove trovarli.


=='''Quale ramo usare'''==
[[Immagine:kernel_releases.png|300px|thumb|Figura 3-1: Ciclo di sviluppo e rilascio del kernel]]


Per prima cosa � necessario scaricare i driver proprietari ATI da [http://www.ati.com/support/driver.html QUESTO] sito, facendo attenzione al fatto che per il momento sembra che solo la versione 8.12.10 funzioni in modo adeguato con Xfree (se questa versione non dovesse essere disponibile potete richiederla a me: [mailto:fartone@gmail.com]).
In passato il kernel Linux era diviso in 2 rami: quello di "sviluppo" e quello "stabile". Per distinguerli, il ramo di sviluppo era contrassegnato da un valore dispari nel secondo numero di release, quello stabile da un valore pari. Ad esempio, la 2.5.25 era una versione di sviluppo, mentre la 2.4.25 era la stabile.


Quando fu creata la serie 2.6, gli sviluppatori decisero di abbandonare questo metodo basato su due rami separati e annunciarono che tutti i rilasci della serie 2.6 del kernel sarebbero stati considerati "stabili", indipendentemente da quanto veloce fosse stato il processo di sviluppo. I pochi mesi a disposizione tra le versioni maggiori della serie 2.6 avrebbero lasciato agli sviluppatori il tempo necessario per aggiungere nuove funzioni e renderle stabili per il rilascio successivo. Assieme a questo fu creato un ramo "-stabile" del kernel per permettere eventuali correzioni dei bug e aggiornamenti di sicurezza per l'ultima versione, prima che quella nuova venga rilasciata.
Alcuni esempi, illustrati in [[:Immagine:kernel_releases.png|figura 3-1]], aiuteranno a chiarire tutto questo: il team del kernel rilascia la versione stabile 2.6.17; poi gli sviluppatori iniziano a lavorare su nuove caratteristiche e rilasciano la versione -rc del kernel in via di sviluppo, in modo che chi vuole possa aiutare nella fase di test e di debug dei cambiamenti. Quando tutti concordano sul fatto che la versione in via di sviluppo sia abbastanza stabile, questa viene rilasciata come 2.6.18. L'intero ciclo impiega solitamente due o tre mesi, dipendendo da svariati fattori.


Utilizzate:
Durante lo sviluppo di nuove funzioni vengono rilasciate la 2.6.17.2, la 2.6.17.3 e altre release stabili del kernel, contenenti correzioni di bug e aggiornamenti di sicurezza.
È consigliabile che chi intenda usare l'ultima versione del kernel per lavoro si serva di quella stabile. Chi invece intende aiutare gli sviluppatori, può testare le caratteristiche della generazione successiva del kernel e darne una valutazione. Per quanto concerne gli scopi di questo capitolo, si suppone che venga utilizzata la versione stabile.


# alien -d fglrx_4_3_0-8.12.10-1.i386.rpm
=='''Dove trovare i sorgenti del kernel'''==
Tutti i sorgenti del kernel Linux si possono trovare in ognuno dei siti kernel.org, una rete di mirror che permette a chiunque di trovare il server locale più vicino. Questo fa sì che i server principali possano rispondere più prontamente ai mirror e che gli utenti riescano a scaricare i file il più velocemente possibile.


per generare il pacchetto fglrx_4_3_0-8.12.10-1.i386.deb
La pagina principale di http://www.kernel.org riporta tutte le versioni correnti del kernel per ogni differente ramo, come mostrato in [[:Immagine:kernel.org.png|figura 3-2]].
Nel fare questo:
* non utilizzare l'opzione --scripts, in quanto questo causa problemi poich� installando il pacchetto il sistema cercher� di caricare in memoria il modulo fglrx saltando le fasi successive di questa guida che sono invece fondamentali;
* il numero 4_3_0 indica la versione di Xfree che si utilizza. Purtroppo io uso la 4.3 quindi non so dire se la procedura funziona con versioni pi� vecchie (per Xorg vedere in fondo alla guida).


[[Immagine:kernel.org.png|center|500px|thumb|Figura 3-2: Il sito ufficiale Kernel.org.]]


Installate il pacchetto creato con:
Per scaricare l'ultima versione stabile del kernel è sufficiente fare clic sulla lettera F nella riga corrispondente: così facendo si scaricherà l'intero albero dei sorgenti. Altrimenti è possibile accedere alla sottocartella relativa ad ogni versione della serie 2.6 tramite la pagina http://www.kernel.org/pub/linux/kernel/v2.6/, mostrata in [[:Immagine:Kernel.org.v2.6.png|figura 3-3]].


# dpkg -i fglrx_4_3_0-8.12.10-1.i386.deb
[[Immagine:Kernel.org.v2.6.png|center|500px|thumb|Figura 3-3: Directory dei sorgenti per il kernel 2.6]]


Scaricate il file [http://members.lycos.co.uk/wedge_antilles/fglrx_binary_edit.tar.bz2].
&Egrave; anche possibile scaricare i sorgenti del kernel tramite riga di comando, usando il programma <code>wget</code> o <code>curl</code>, normalmente presenti in ogni distribuzione Linux.
A questo punto scompattate (dove volete) il .tar.bz2, andate nella directory da voi scelta e date:


$ make
Per scaricare la versione 2.6.17.8 del kernel con <code>wget</code> il comando è:


{{ Warningbox | Per compilare questo file � necessario aver installato '''pciutils''' (semplicemente apt-get install pciutils)}}
<pre>$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz


Copiate l'eseguibile fglrx_binary_edit nella directory /lib/modules/fglrx/build_mod.


A questo punto date:
-> 'linux-2.6.17.8.tar.gz


# fglrx_binary_edit [first ID] [second ID]
Resolving www.kernel.org... 204.152.191.5, 204.152.191.37


dove [first ID] � l'ID della scheda con cui volete sostituire il vero ID della vostra scheda ([second ID]).
Connecting to www.kernel.org|204.152.191.5|:80... connected.


Attenzione: il [second ID] pu� essere letto utilizzando il comando
HTTP request sent, awaiting response... 200 OK
# lspci -n
e leggendo il numero in corrispondenza del bus id della scheda video identificabile con il comando:
# lspci -v |grep ATI
che dovrebbe essere 0000:01:00.0.


Lenght: 51,707,742 (49M) [application/x-gzip]


Nel caso della scheda in questione, si deve utilizzare:
100%[-------------------------------------->] 51,707,742 35.25k/s
# fglrx_binary_edit 4e50 4e52


(per le altre schede si pu� provare a vedere sul sito: [http://pciids.sourceforge.net/iii/?i=1002])
ETA 00:00
Questo comando modifica i valori dei chip nel file '''libfglrx_ip.a.GCC3''', che si trova appunto in questa cartella.


Se non c'� alcun output dal comando, allora vuol dire che tutto � andato a buon fine e potete proseguire.
18:02:48 (47.12 kB/s) - 'linux-2.6.17.8.tar.gz' saved [51707742/51707742]</pre>
Ora si devono dare i comandi:


# cd /lib/modules/fglrx/build_mod
Per scaricarla con <code>curl</code>:
# chmod +x make.sh
# ./make.sh


poi:
<pre>$ curl http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz \ -o linux-2.6.17.8.tar.gz</pre>


# cd ..
Il modo più semplice e veloce per scoprire quale sia l'ultima versione del kernel è usare le informazioni disponibili alla pagina http://www.kernel.org/kdist/finger_banner, come mostrato in [[:Immagine:Kernel.org.v2.6.png|figura 3-4]].
# rmmod radeon
# chmod +x make_install.sh
# ./make_install.sh


{{ Warningbox | Il comando "'''rmmod radeon'''" rimuove il modulo radeon nel caso lo abbiate caricato in memoria. Tale modulo infatti bloccherebbe la scheda video impedendovi di caricare poi il modulo fglrx.}}
[[Immagine:Kernel.org_finger_banner.png|center|500px|thumb|Figura 3-4: Ultima versione del kernel.]]


Al termine del make_install deve comparire "trying a sample load of the kernel module. done."
=='''Cosa fare con i sorgenti'''==
Una volta scaricati i sorgenti del kernel appropriati, dove è previsto che vengano messi? &Egrave; consigliabile creare una directory locale nella propria home chiamata linux per conservare tutti i file dei sorgenti del kernel:


<pre>$ mkdir ~/linux</pre>


Se tutto � andato a buon fine, potete provare a far ripartire il vostro server X utilizzando il driver fglrx, e magari utilizzare
Spostate il codice sorgente nella directory linux:
il comando:


# fglrxconfig
<pre>$ mv ~/linux-2.6.17.8.tar.gz ~/linux/</pre>


{{ Warningbox | Questo comando crea un file XFreeconfig-4 personalizzato sovrascrivendo il vostro XFreeconfig-4, quindi
ed entrate nella directory linux:
assicuratevi di averne una copia di backup.}}


Al momento (6 Settembre 2005) la ATI ha rilasciato un nuovo installer grafico *.run, simile a quello della nvidia. Non sperate di utilizzarlo, dato che presenta lo stesso problema del pacchetto rpm di cui si � parlato.
<pre>$ cd ~/linux
$ ls
linux-2.6.17.8.tar.gz</pre>


Per l'installazione dei driver su Xorg � necessario scaricare dallo stesso sito della ATI i driver relativi a Xorg, ed eseguire
Adesso che il codice sorgente si trova nella directory giusta, decomprimetelo:
lo stesso procedimento. Per me ha funzionato soltanto dopo aver installato il pacchetto libglu1-xorg, ma non so dire come e se questo sia legato all'installazione dei driver.


<pre>$ tar -xzvf linux-2.6.17.8.tar.gz</pre>


{{ Warningbox | Fate attenzione che nella configurazione del file xorg.conf o Xfreeconfig-4 deve essere specificata l'opzione di CHIP ID che nel caso qu� trattato consiste nell'inserire la scritta "ChipID 0x4E50" nel file di configurazione nel modo seguente: <br/>
Lo schermo si riempirà della lista dei file che verranno decompressi, e alla fine nella directory linux/ rimarrà:
: Section "Device"<br/>
:  Identifier "ATI"<br/>
:  Driver    "fglrx" <br/>
:   ChipID    0x4E50 <br/> }}


Si tenga presente che con l'opzione di "chip override" il driver fglrx non viene utilizzato a pieno, e di conseguenza il numero di fps che si ottiene � generalmente basso. Dopo la migrazione ad Xorg e kernel 2.6.12 il numero di fps � migliorato e ora ottengo circa 2000 fps con glxgear.
<pre>$ ls
linux-2.6.17.8.tar.gz
linux-2.6.17.8/</pre>




----
----
'''I NUOVI DRIVER ATI SUPPORTANO QUESTA SCHEDA VIDEO ANCHE SE NON � UFFICIALMENTE ELENCATA NELL'HARDWARE SUPPORTATO. RISULTATO FINALE � CHE QUESTA
This is an indipendent translation of the book [http://www.kroah.com/lkn/ Linux Kernel in a Nutshell] by [http://www.kroah.com/log/ Greg Kroah-Hartman]. This translation (like the original work) is available under the terms of [http://creativecommons.org/licenses/by-sa/2.5/ Creative Commons Attribution-ShareAlike 2.5].
GUIDA NON  OCCORRE PI�. '''
UN ULTIMA NOTAZIONE: SE USATE PER QUALCHE MOTIVO DEBIAN TESTING MA AVETE ANCORA XFREE (E NON XORG), RICORDATEVI DI  FAR GENERARE ALL'INSTALLER DEBIAN I PACCHETTI PER DEBIAN/STABLE, ALTRIMENTI IL DRIVER FGLRX NON VI FUNZIONER� ANCHE SE VIENE COMPILATO CORRETTAMENTE.'''
----
----
: [[Utente:Fart|Fart]]
 
[[Categoria:Hardware]]
 
[http://files.kroah.com/lkn/lkn_pdf/ch03.pdf ''Capitolo originale'']
 
[[Categoria:Documentazione tecnica]]
[[Categoria:Linux Kernel in a Nutshell]]

Versione attuale delle 12:38, 14 mag 2016

Linux Kernel in a Nutshell

Sommario

Parte I
Compilare il kernel
  1. Introduzione
  2. Requisiti
  3. Procurarsi i sorgenti
  4. Configurazione e compilazione
  5. Installazione e avvio
  6. Aggiornare il kernel
Parte II
Personalizzazioni principali
  1. Personalizzare un kernel
  2. Ricette per configurare un kernel
Parte III
Guide di riferimento per il kernel
  1. Guida di riferimento dei parametri di boot del kernel - parte1
  2. Guida di riferimento dei parametri di boot del kernel - parte2
  3. Guida di riferimento dei parametri di compilazione del kernel
  4. Guida di riferimento delle opzioni di configurazione del kernel - parte1
  5. Guida di riferimento delle opzioni di configurazione del kernel - parte2
Parte IV
Informazioni aggiuntive
  1. Programmi utili
  2. Bibliografia


Quando si compila un kernel personalizzato ci si vorrebbe servire dell'ultima versione stabile. Molte distribuzioni forniscono i loro pacchetti dei sorgenti del kernel, ma raramente questi sono i più recenti e aggiornati. I pacchetti ufficiali delle distribuzioni hanno il vantaggio di essere compatibili con il compilatore e gli altri strumenti forniti dalla distribuzione stessa (Il capitolo 2 mette in evidenza l'importanza di questa compatibilità), ma non è detto che permettano di avere le funzionalità o le prestazioni di cui si ha bisogno. Preparando l'ambiente con il kernel più recente e le ultime versioni del compilatore e degli altri programmi sarà possibile ottenere esattamente ciò che si vuole. Questo capitolo spiega quali sorgenti del kernel scaricare e dove trovarli.

Quale ramo usare

Figura 3-1: Ciclo di sviluppo e rilascio del kernel

In passato il kernel Linux era diviso in 2 rami: quello di "sviluppo" e quello "stabile". Per distinguerli, il ramo di sviluppo era contrassegnato da un valore dispari nel secondo numero di release, quello stabile da un valore pari. Ad esempio, la 2.5.25 era una versione di sviluppo, mentre la 2.4.25 era la stabile.

Quando fu creata la serie 2.6, gli sviluppatori decisero di abbandonare questo metodo basato su due rami separati e annunciarono che tutti i rilasci della serie 2.6 del kernel sarebbero stati considerati "stabili", indipendentemente da quanto veloce fosse stato il processo di sviluppo. I pochi mesi a disposizione tra le versioni maggiori della serie 2.6 avrebbero lasciato agli sviluppatori il tempo necessario per aggiungere nuove funzioni e renderle stabili per il rilascio successivo. Assieme a questo fu creato un ramo "-stabile" del kernel per permettere eventuali correzioni dei bug e aggiornamenti di sicurezza per l'ultima versione, prima che quella nuova venga rilasciata. Alcuni esempi, illustrati in figura 3-1, aiuteranno a chiarire tutto questo: il team del kernel rilascia la versione stabile 2.6.17; poi gli sviluppatori iniziano a lavorare su nuove caratteristiche e rilasciano la versione -rc del kernel in via di sviluppo, in modo che chi vuole possa aiutare nella fase di test e di debug dei cambiamenti. Quando tutti concordano sul fatto che la versione in via di sviluppo sia abbastanza stabile, questa viene rilasciata come 2.6.18. L'intero ciclo impiega solitamente due o tre mesi, dipendendo da svariati fattori.

Durante lo sviluppo di nuove funzioni vengono rilasciate la 2.6.17.2, la 2.6.17.3 e altre release stabili del kernel, contenenti correzioni di bug e aggiornamenti di sicurezza. È consigliabile che chi intenda usare l'ultima versione del kernel per lavoro si serva di quella stabile. Chi invece intende aiutare gli sviluppatori, può testare le caratteristiche della generazione successiva del kernel e darne una valutazione. Per quanto concerne gli scopi di questo capitolo, si suppone che venga utilizzata la versione stabile.

Dove trovare i sorgenti del kernel

Tutti i sorgenti del kernel Linux si possono trovare in ognuno dei siti kernel.org, una rete di mirror che permette a chiunque di trovare il server locale più vicino. Questo fa sì che i server principali possano rispondere più prontamente ai mirror e che gli utenti riescano a scaricare i file il più velocemente possibile.

La pagina principale di http://www.kernel.org riporta tutte le versioni correnti del kernel per ogni differente ramo, come mostrato in figura 3-2.

Figura 3-2: Il sito ufficiale Kernel.org.

Per scaricare l'ultima versione stabile del kernel è sufficiente fare clic sulla lettera F nella riga corrispondente: così facendo si scaricherà l'intero albero dei sorgenti. Altrimenti è possibile accedere alla sottocartella relativa ad ogni versione della serie 2.6 tramite la pagina http://www.kernel.org/pub/linux/kernel/v2.6/, mostrata in figura 3-3.

Figura 3-3: Directory dei sorgenti per il kernel 2.6

È anche possibile scaricare i sorgenti del kernel tramite riga di comando, usando il programma wget o curl, normalmente presenti in ogni distribuzione Linux.

Per scaricare la versione 2.6.17.8 del kernel con wget il comando è:

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz


	-> 'linux-2.6.17.8.tar.gz

Resolving www.kernel.org... 204.152.191.5, 204.152.191.37

Connecting to www.kernel.org|204.152.191.5|:80... connected.

HTTP request sent, awaiting response... 200 OK

Lenght: 51,707,742 (49M) [application/x-gzip]

100%[-------------------------------------->] 51,707,742	35.25k/s

ETA 00:00

18:02:48 (47.12 kB/s) - 'linux-2.6.17.8.tar.gz' saved [51707742/51707742]

Per scaricarla con curl:

$ curl http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.8.tar.gz \ -o linux-2.6.17.8.tar.gz

Il modo più semplice e veloce per scoprire quale sia l'ultima versione del kernel è usare le informazioni disponibili alla pagina http://www.kernel.org/kdist/finger_banner, come mostrato in figura 3-4.

Figura 3-4: Ultima versione del kernel.

Cosa fare con i sorgenti

Una volta scaricati i sorgenti del kernel appropriati, dove è previsto che vengano messi? È consigliabile creare una directory locale nella propria home chiamata linux per conservare tutti i file dei sorgenti del kernel:

$ mkdir ~/linux

Spostate il codice sorgente nella directory linux:

$ mv ~/linux-2.6.17.8.tar.gz ~/linux/

ed entrate nella directory linux:

$ cd ~/linux
$ ls
linux-2.6.17.8.tar.gz

Adesso che il codice sorgente si trova nella directory giusta, decomprimetelo:

$ tar -xzvf linux-2.6.17.8.tar.gz

Lo schermo si riempirà della lista dei file che verranno decompressi, e alla fine nella directory linux/ rimarrà:

$ ls
linux-2.6.17.8.tar.gz
linux-2.6.17.8/



This is an indipendent translation of the book Linux Kernel in a Nutshell by Greg Kroah-Hartman. This translation (like the original work) is available under the terms of Creative Commons Attribution-ShareAlike 2.5.



Capitolo originale