È possibile ottenere i sorgenti in ftp anonimo da
ftp.kernel.org
nella directory
/pub/linux/kernel/vx.y
, dove x.y
sono la versione
(eg 2.2) e, come menzionato in precedenza, quelli che finiscono con un
numero dispari sono le release di sviluppo e possono essere
instabili. Tipicamente il file si chiama linux-x.y.z.tar.gz
,
dove x.y.z
è il numero della versione. I siti solitamente
conservano anche una versione con suffisso .bz2
, che è stata
compressa con bzip2 (questi file saranno più piccoli e necessiteranno
di minor tempo per il trasferimento).
La cosa migliore è usare ftp.xx.kernel.org
dove xx
è il codice della propria nazione; ad esempio
ftp.it.kernel.org
per l'Italia e ftp.us.kernel.org
per gli Stati Uniti.
Si faccia il login (o si usi su
) come `root
', e si passi
(con cd
) in /usr/src
.
Se si sono installati i sorgenti del kernel quando si è installato per
la prima volta linux (come fanno molti), là ci sarà già una directory
chiamata `linux
', che contiene l'intero vecchio albero dei
sorgenti. Se si ha spazio su disco e si vuole andare sul sicuro, si
conservi quella directory. Una buona idea è di scoprire quale
versione gira nel proprio sistema e rinominare di conseguenza la
directory. Il comando `uname -r
' mostra la versione del
kernel corrente. Quindi, se `uname -r
' dice
`1.0.9
', si vorrà rinominare (con `mv
')
`linux
' in `linux-1.0.9
'. Se ci si sente abbastanza
temerari, semplicemente si cancelli l'intera directory. In ogni caso,
ci si assicuri che non esista una directory `linux
' in
/usr/src
prima di decomprimere il codice sorgente.
Ora, in /usr/src
, si decomprimano ("spacchettino") i sorgenti
con `tar zxpvf linux-x.y.z.tar.gz
' (se si ha semplicemente un
file .tar
senza .gz
alla fine, basta `tar xpvf
linux-x.y.z.tar
'). Il contenuto dei sorgenti scorrerà sullo
schermo. Al termine, ci sarà una nuova directory `linux
'
in /usr/src
. Si faccia cd
in linux
e si dia
un'occhiata al file README
.
Ci sarà una sezione etichettata `INSTALLING the kernel
'.
Si seguano le istruzioni quando appropriate: link simbolici da
sistemare, rimozione di vecchi file .o
, ecc.
Se si ha un file .bz2
e il programma bzip2 (si legga a
proposito a http://www.muraroa.demon.co.uk/
), si faccia questo:
bz2cat linux-x.y.z.tar.bz2 | tar xvf -
Nota: Alcune parti di questa sezione sono
reiterazioni/chiarificazioni di una sezione simile nel file
README
di Linus.
Il comando `make config
' lanciato in /usr/src/linux
avvia uno script di configurazione che fa molte domande. Richiede la
bash, e quindi si verifichi che bash sia /bin/bash
,
/bin/sh
oppure $BASH
.
Comunque, ci sono alcune alternative più carine a `make
config
' e molto facilmente le si troverà più facili e comode da
usare. `make menuconfig
' è probabilmente la più usata.
Qualsiasi si scelga, è meglio che per prima cosa si familiarizzi con
l'interfaccia poiché può capitare di doverci tornare prima di quanto
si pensi. Quelli che ``usano X'', possono provare `make
xconfig
' se hanno installato Tk (`click-o-rama' - Nat).
`make menuconfig
' è per quelli che hanno le (n)curses e
preferiscono un menù testuale. Queste interfacce hanno un vantaggio
piuttosto evidente: se ci si incasina e si fa una scelta sbagliata
durante la configurazione, è semplice tornare indietro e sistemarla.
Con `make menuconfig
' e `make xconfig
' le opzioni di
configurazione appariranno in gerarchie.
Alle domande si risponde tipicamente con `y
' (sì) o
`n
' (no). I device driver tipicamente hanno un'opzione
`m
', che significa ``modulo'', intendendo che il sistema lo
compilerà, ma non direttamente dentro al kernel ma piuttosto come
modulo caricabile. Un modo più comico per descriverla è come
``maybe'' (può essere). Alcune delle opzioni più ovvie e non critiche
non sono qui descritte e per una breve descrizione di alcune altre si
veda la sezione ``Altre opzioni di configurazione''.
Con `make menuconfig
', la barra spaziatrice attiva la selezione.
Nei kernel 2.0.x e successivi, c'è un'opzione `?', che fornisce una breve descrizione dei parametri di configurazione. Le informazioni probabilmente sono le più aggiornate. Qui di seguito un elenco di alcune importanti caratteristiche (tra parentesi la gerarchia alla quale appartengono) seguite da una breve spiegazione.
Emulazione matematica a livello kernel (Tipo di processore e caratteristiche)
Se non si ha un coprocessore matematico (si ha un semplice 386 o un
486SX), si deve rispondere `y
' a questa domanda. Se si ha
un coprocessore e si risponde comunque `y
', non ci si
preoccupi troppo: è comunque usato il coprocessore ed è ignorata
l'emulazione. Per qualsiasi macchina moderna, la risposta sarà
negativa, ma non ci si preoccupi se accidentalmente si risponde sì;
se non serve, non è usata.
Supporto per dischi Enhanced (MFM/RLL) e dischi/cdrom IDE (Dispositivi a Blocchi)
Probabilmente si ha bisogno di questo supporto; significa che il kernel supporterà i dischi fissi standard dei PC, che la maggior parte della gente ha. Questo driver non comprende i dischi SCSI; vengono dopo nella configurazione.
Poi verrà chiesto del supporto per ``old disk-only'' (solo dischi vecchi) e dei driver ``new IDE'' (nuovi IDE). Se ne scelga uno; la maggior differenza è che il vecchio driver supporta solo due dischi in una interfaccia, mentre il nuovo supporta una interfaccia secondaria e un lettore cdrom IDE/ATAPI. Il nuovo driver è 4k più grande del vecchio e si suppone sia pure ``migliorato'', intendendo che a parte contenere un numero diverso di bug, potrebbe migliorare le prestazioni dei dischi, specialmente se si ha dell'hardware recente (di tipo EIDE).
Supporto di rete (Impostazioni Generali)
All'inizio, conviene rispondere semplicemente `y
' se la
propria macchina è in una rete come Internet o si vuole usare SLIP,
PPP, term, ecc per avere l'accesso ad Internet. Comunque, poiché
molti pacchetti (come l'X window system) richiedono il supporto di
rete, si dovrebbe rispondere `y
' anche se la propria macchina
non risiede in una vera rete. Più tardi, verrà chiesto se si vuole il
supporto per il networking TCP/IP; ancora, si risponda `y
'
anche lì a meno che non si sia assolutamente sicuri.
IPC System V (Impostazioni Generali)
Una delle migliori definizioni di IPC (Interprocess Communication -
Comunicazione Interprocessi) è nel glossario del Perl book. Non è da
sorprendersi se alcuni programmatori Perl l'adoperano per permettere
ai processi di parlarsi l'un l'altro, come fanno molti altri programmi
(DOOM, fra gli altri), e quindi non è una buona idea rispondere
n
a meno che non si sappia esattamente quello che si sta
facendo.
(in older kernels: Use -m486 flag for 486-specific optimizations)
Famiglia del processore (Tipo di processore e caratteristiche)
(nei vecchi kernel: Uso il flag -m486 per ottimizzazioni specifiche per
il 486)
Tradizionalmente, si traduceva in alcune ottimizzazioni per un particolare processore; il kernel girava bene anche su altri chip, ma era un po' più grande. Comunque, nei nuovi kernel questo non è più vero, e quindi si può specificare il processore per il quale si sta compilando il kernel. Un kernel ``386'' funzionerà per tutte le macchine.
Supporto SCSI
Se si posseggono dispositivi SCSI, si risponda `y
'. Saranno
chieste ulteriori informazioni, come il supporto per CD-ROM, dischi e
quale tipo di adattatore SCSI si possiede. Si veda lo SCSI HOWTO per
maggiori dettagli.
Supporto dei dispositivi di rete
Se si ha una scheda di rete o si vuole usare SLIP, PPP o un
adattatore per porta parallela per connettersi ad Internet, si
risponda `y
'. Lo script di configurazione chiederà poi il
tipo di scheda che si possiede e quale protocollo usare.
Filesystem
Lo script di configurazione chiede se si vuole il supporto per i seguenti filesystem:
Standard (minix) - Le distribuzioni più nuove non creano filesystem minix e molti non lo usano più, ma può ancora essere una buona idea configurarlo. Alcuni programmi per la creazione di ``dischi di ripristino''(rescue disk) lo usano e molti floppy hanno ancora un filesystem minix, poiché minix è meno doloroso da usare su un floppy.
Second extended - Questo è il filesystem standard di Linux.
Sicuramente se ne ha uno di questo tipo e si deve rispondere `y
'.
msdos - Se si vogliono usare partizioni MS-DOS del disco fisso,
montare dischetti formattati in DOS, si risponda `y
'.
Sono disponibili diversi altri tipi di filesystem di altri sistemi operativi.
/proc - (un idea dei Bell Labs, penso). Uno non crea un filesystem
proc in un disco; è un interfaccia filesystem al kernel e ai processi.
Molti visualizzatori di processi (come `ps
') lo usano.
Qualche volta si provi `cat /proc/meminfo
' o `cat
/proc/devices
'. Alcune shell (rc, in particolare) usano
/proc/self/fd
(noto come /dev/fd
su altri sistemi)
per l'I/O. Si deve certamente rispondere `y
' a questa
domanda; molti strumenti importanti ne dipendono.
NFS - Se la propria macchina vive in una rete e si vogliono usare
filesystem su altri sistemi con NFS, si risponda `y
'.
ISO9660 - Presente nella maggior parte dei CD-ROM. Se si ha un
lettore CD-ROM e lo si vuole usare sotto Linux, si risponda `y
'.
Ok, si digiti `mount
'. L'output apparirà simile a questo:
blah# mount
/dev/hda1 on / type ext2 (defaults)
/dev/hda3 on /usr type ext2 (defaults)
none on /proc type proc (defaults)
/dev/fd0 on /mnt type msdos (defaults)
i guardi ogni riga; la parola dopo `type
' è il tipo di
filesystem. In questo esempio, i miei filesystem /
e
/usr
sono second extended, sto usando /proc
, e c'è
un dischetto montato usando il filesystem msdos (bleah).
Si può provare `cat /proc/filesystems
' se si ha
/proc
attualmente abilitato; elencherà i filesystem presenti
nel kernel corrente.
La configurazione di filesystem raramente usati e non critici può causare un ingrossamento del kernel; si veda la sezione sui moduli per un modo di evitarlo e la sezione ``Trabocchetti'' per capire perché non è desiderabile un kernel grosso.
Dispositivi a caratteri
Qui si abilita il driver per la propria stampante (parallela), per il
busmouse, per il mouse PS/2 (molti portatili usano il protocollo del
mouse PS/2 per le loro trackball), per alcuni dispositivi a nastro e
altri dispositivi ``a carattere'' di questo tipo. Si risponda
`y
' quando appropriato.
Nota: gpm
è un programma che permette l'uso di un mouse fuori
dall'ambiente X per il cut and paste ("taglia e incolla")
tra le console virtuali. È piuttosto carino se si ha un mouse
seriale, poiché coesiste bene con X, ma sono necessari alcuni altri
trucchi per gli altri tipi di mouse.
Audio
Se si desidera ardentemente di sentire biff
abbaiare, si
risponda `y
' e si potrà confessare tutto sulla propria
scheda audio al programma di configurazione (una nota sulla
configurazione della scheda audio: quando viene chiesto se si vuole
installare la versione completa del driver, si può rispondere
`n
' risparmiando un po' di memoria scegliendo solo le
caratteristiche che si giudicano necessarie).
Se si è seriamente interessati al supporto per la scheda audio, si dia
un'occhiata sia al driver libero a
http://www.linux.org.uk/OSS/
che all'Open Sound System
commerciale a http://www.opensound.com/
.
Qui non sono state elencate tutte le opzioni di configurazione perché
cambiano troppo spesso o sono piuttosto banali (per esempio, 3Com
3C509 support per compilare il device driver per questa particolare
scheda ethernet). Esista una lista esaustiva di tutte le opzioni (più
un metodo per metterle nello script Configure
) in un lavoro
avviato e mantenuto da Axel Boldt (boldt@math.ucsb.edu
) e nel
suo help in linea. È pure disponibile come un unico grosso file in
Documentation/Configure.help
nel proprio albero dei sorgenti
del kernel a partire dalla versione 2.0.
>Dal README di Linus:
i dettagli della configurazione ``kernel hacking'' solitamente risultano in un kernel più grosso è più lento (o entrambi) e possono pure rendere il kernel meno stabile configurando alcune routine che provano attivamente a rompere il cattivo codice per trovare i problemi del kernel (kmalloc()). Quindi probabilmente si dovrebbe rispondere `n' alla domanda nel caso di un kernel di ``produzione''.
Dopo aver finito la configurazione, un messaggio comunica che il
proprio kernel è stato configurato, e di ``controllare il
Makefile
di più alto livello per ulteriori configurazioni''
(``check the top-level Makefile
for additional
configuration''), ecc.
Quindi, si dia un'occhiata al Makefile
. Probabilmente non
sarà necessario modificarlo, ma non può far male guardarlo. Si
possono pure cambiare le sue opzioni con il comando `rdev
'
una volta installato il nuovo kernel. Se ci si perde guardando quel
file, non è da preoccuparsi.