Compilare il Kernel di Linux

Nella scorsa lezione del tutorial avevamo compilato ed installato la prima parte della distribuzione Linux LFS, questa volta vedremo come compilare il kernel. Eravamo rimasti ad avere un sistema LFS sul nostro hard disk virtuale, ma ora occorre inserire il kernel del sistema operativo, altrimenti il nostro Linux non potrà funzionare mai.
Vediamo come compilare ed installare il kernel di Linux. Innanzitutto scarichiamo l’ultima versione disponibile e stabile nella home del nuovo sistema, ovviamente il tutto da utente root della live:

logout
chown -R root /mnt/lfs
cd /mnt/lfs/home
wget www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.7.tar.bz2
tar -jxvf linux-2.6.32.7.tar.bz2

Una volta decompresso il pacchetto del kernel dobbiamo operare da chroot per compilare con gli strumenti all’interno del nuovo sistema e non della live.

chroot “/mnt/lfs” /usr/bin/env -i HOME=”/root” TERM=”$TERM” PS1=’\u:\w\$’  PATH=/bin:/sbin:/usr/bin:/usr/sbin /bin/bash –login +h

Ora siamo dentro il nostro nuovo sistema operativo come root, quindi possiamo iniziare a compilare. Andiamo in /home/linux-2.6.32.7 dove avevamo lasciato il pacchetto decompresso del nuovo kernel.

cd /home/linux-2.6.32.7
make mrproper
make menuconfig

Abbiamo pulito la directory del kernel ed avviato la configurazione dello stesso. Questo passo è importantissimo, perché dobbiamo decidere se alcuni driver delle nostre periferiche occorre compilarle all’interno del kernel o come moduli. Dovete conoscere bene l’hardware della vostra macchina per operare delle scelte mirate ed ottimizzare al massimo il boot del vostro sistema. Per ora ci limitiamo a lasciare tutto come sta e casomai se dovessimo inserire qualche caratteristica la configureremo come modulo, tanto è pur sempre un sistema provvisorio.
Dopo aver configurato il kernel usciamo e diamo il comando

make
make modules

Attesi i 20-30 minuti a seconda della velocità del nostro sistema, possiamo installare il kernel compilato.

make modules_install
make install

Non preoccupatevi se vi dice che non c’è lilo o grub, perché lo installeremo nel prossimo articolo.

<< Lezione Precedente – Inizio TutorialLezione Successiva >>

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in Linux e contrassegnata con , . Contrassegna il permalink.

15 risposte a Compilare il Kernel di Linux

  1. budweiser scrive:

    Ciao! mi interessa molto questa guida, non essendo un vero esperto di linux sto tentando questa impresa per puro interesse personale e spero proprio di riuscirci!

    Dunque la compilazione pare abbia funzionato…
    …ma al momento di dare questo comando:

    [code]
    chroot "/mnt/lfs" /usr/bin/env -i HOME="/root" TERM="$TERM" PS1='\u:\w\$'
    [/code]
    Ho questo risultato:

    [code]
    chroot: cannot run command '/usr/bin/env': Permission denied"
    [/code]

    Ovviamente agisco da root ma come mai non ho il permesso?

    Ho "googolato" ma non ho trovato spiegazione neanche sul sito di LFS.

    Grazie per l'attenzione.Ciao!

  2. Giampaolo Rossi scrive:

    Ciao, non mi sembra questione di permessi, quindi prova a fare queste 2 prove.
    Mettiamo che il tuo sistema sia in /mnt/lfs con la partizione montata, prova a dare questo comando chown -R root /mnt/lfs e se non funziona controlla che ci sia il file eseguibile dir /mnt/lfs/usr/bin/env a me pare proprio un errore di questo tipo. Fammi sapere.
    Sai che esiste un forum per questa ed altre delucidazioni in http://forum.rgpsoft.it
    Ciao

  3. Daniele scrive:

    Ciao scusami ho un problema.
    Io ho scaricato il kernel 2.6.39 da kernel.org (tramite wget)
    Ho seguito tutto alla lettera però sono rimasto bloccato in questo punto:
    Quando do make install compare questo errore:
    http://img42.imageshack.us/img42/6466/catturacyg.jpg

    Come risolvo il problema? Grazie mille

  4. federico scrive:

    ciao io avrei un problema
    quando faccio questo comando
    PATH=/bin:/sbin:/usr/bin:/usr/sbin /bin/bash –login +h
    mi da questo errore
    -bash: -login: command not found
    perche??? per piacere rispondi

  5. Elio scrive:

    Ciao, sto seguendo questa tua guida, ma mi sono fermato al passo: chroot “/mnt/lfs” /usr/bin/env -i HOME=”/root” TERM=”$TERM” PS1=’\u:\w\$’ PATH=/bin:/sbin:/usr/bin:/usr/sbin /bin/bash –login +h . avendo errore: /usr/bin/env: -login: no souch file or directory
    Ho tentato svariate volte:
    chroot “/mnt/lfs” /usr/bin/env -i HOME=”/root” TERM=”$TERM” PS1=’\u:\w\$’ PATH=/bin:/sbin:/usr/bin:/usr/bin/bash –login +h

    e

    chroot “/mnt/lfs” /usr/bin/env -i HOME=”/root” TERM=”$TERM” PS1=’\u:\w\$’ PATH=/bin:/sbin:/usr/bin:/sbin/bash –login +h

    Mi puoi aiutare? che cosa sbaglio?

I commenti sono chiusi.