Compilare il Kernel di Linux

In questa lezione dedicata al corso su come creare un sistema Linux, vedremo come va fatta la compilazione del kernel, analizzeremo i comandi da impartire per avere un nocciolo adatto al nostro sistema operativo.

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 >>

13 commenti

  1. 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. 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

  3. 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.

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Modifica preferenze cookie