[Primipassi] Kernel

Marco Ermini flug@markoer.org
Mer 16 Gen 2002 12:23:12 CET


On Wed, 16 Jan 2002 00:41:02 +0100, "linux.4ever@email.it"
<linux.4ever@email.it> wrote:

> > Vorrei cominciare a capire come fare per ricompilare il Kernel ... se
> > possibile evitando danni catastrofici!!
> > Ovviamente innanzitutto mi servono i file sorgenti.... ma questi file
> > fanno parte della distribuzione (Red Hat 7.2) o li devo scaricare da
> > Internet? E una volta ottenuti i files che devo fare?
> > Ciao a tutti
> 
> Dovrebbero esserci ma ti consiglio di scaricareli o trovare un cdrom che
> li contiene, visto che escono continuamente aggiornamenti e la versione
> del cd non é mai l'ultima uscita.
> Il sito da cui puoi scaricarli é 
> http://www.kernel.org
> ma se cerchi il server ftp vai direttamente a 
> ftp://ftp.kernel.org/pub/linux/kernel/v2.2/
> ftp://ftp.kernel.org/pub/linux/kernel/v2.4/
> ovviamente il v2.2 é per scaricare la versione 2.2 del kernel e il v2.4
> per la più nuova versione 2.4

Esiste anche la versione 2.5 ma la sconsiglio.

Io consiglio ad i neofiti di prendere il kernel fatto direttamente da RedHat
perche' e' altamente consigliabile (contiene anche diverse patch che non
sempre trovano la strada, per vari motivi, nelle versioni stream-line del
kernel).

Consiglierei anche un mirror che in genere per le connettivita' italiane
(tranne forse quelle universitarie) e' molto valido, via http perche' e' piu'
veloce che via ftp,
http://www.mirror.ac.uk/sites/ftp.redhat.com/pub/redhat/linux/rawhide/i386/rawhide/RPMS
Pesca la versione 2.4.17 in formato .rpm oppure .src.rpm se vuoi ricompilarlo
(ma non c'e' bisogno in genere perche' e' gia' in formato pentium o pentium
II/III).


> Dopo devi decomprimere i sorgenti in /usr/src/linux-versionedelkernel/
> (es. /usr/src/linux-2.4.17/ per l'ultimissima)

No, e' *da evitare* la directory /usr/src/linux. Fatti un'altra directory, es.
/usr/src/prove/linux. In /usr/src/linux Linux cerca degli header che devono
essere coerenti con la versione di glibc del sistema. Quindi, *non* toccare
gli header che sono in /usr/src/linux (non toccare quella directory e basta!)
e fatti una sottodirectory se vuoi "giocare" col kernel.


> se prendi il file .tgz il comando da usare é:
> tar -xvfz nomefile -C /usr/src/linux-versionedelkernel/

E' stupido prendere la versione .tar.gz quando puoi prendere la .tar.bz2 che
e' molto piu' piccola. Inoltre, hai sbagliato la sequenza dei parametri
perche' la "f" deve essere l'ultimo parametro in quanto indica il nome del
file e deve essere subito prima di "nomefile". Inoltre non si deve mettere il
- nei parametri del tar da specifiche POSIX, anche se e' supportato per
compatibilita' all'indietro. Si deve fare tar xvzf nomefile.tar.gz. Per
decomprimere un file .tar.bz2 la sintassi e' tar Ixvf oppure tar jxvf se il
tar e' piu' "evoluto" (RedHat 7.x).


> Per cominciare a ricompilarli ti consiglio di usare il comando da una
> shell sotto X "make xconfig" (in alternativa potresti usare "make menu
> config" ma é meno user-friendly)

make "menuconfig" e' tutto attaccato. E' assolutamente userfriendly quanto
xconfig, anzi e' molto piu' decente IMHO di quelle finestre brain-damaged di
xconfig ;-)


> Scegli ATTENTAMENTE LE OPZIONI da inserire nel kernel e gli eventuali
> moduli, dopo di che salva il tutto e dai il comando "make dep" seguito
> da "make bzImage" (occhio alla i é MAIUSCOLA!!) e se hai messo dei
> moduli anche i comandi "make modules" e "make modules_install"

Prima di fare tutto questo ovviamente mi leggerei un po' di documentazione,
altrimenti non avrai la minima idea di cosa stai facendo e di cosa attivare e
disattivare


> Ora avrai il kernel compilato in
> /usr/src/linux-versionedelkernel/arch/i386/boot/ e si chiamerà proprio
> bzImage
> Non avrai che da copiarlo in /boot (cp
> /usr/src/linux-versionedelkernel/arch/i386/boot/bzImage
> /boot/newkernel)e modificare il lilo.conf aggiungendo una riga dove
> copierai esattamente tutte le impostazioni del kernel che hai
> attualmente tranne il nome che sarà "newkernel" salvalo e dai il comando
> "lilo" e il tuo kernel sarà pronto per l'avvio.

Hai dimenticato di copiare il file /usr/src/linux/System.map in
/boot/System.map-versionekernel. Altrimenti non ti funzionera' tutto al 100% e
specialmente i moduli potranno darti problemi


[...]
> In bocca al ...pinguino e non preoccuparti perché é molto più semplice
> di come sembra!

Cosi' sembra, in realta', e' tutto molto piu' "complesso" di quello che appare
dopo che ci sei riuscito


ciao

---
Marco Ermini
http://www.markoer.org - ICQ UIN 50825709 - GPG KEY 0x64ABF7C6
Perche' perdere tempo ad imparare quando l'ignoranza e' istantanea? (Hobbes)
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        non disponibile
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: non disponibile
URL:         <http://lists.linux.it/pipermail/primipassi/attachments/20020116/a65a7a44/attachment.pgp>


Maggiori informazioni sulla lista primipassi