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 Tutorial – Lezione Successiva >>
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!
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
Il comando bash non è stato trovato, probabilmente il tuo programma è in un’altra directory, prova /sbin/bash o /usr/bin/bash
non funziona ma devo essere su root???? giusto???’
prova a scrivermi tutte e due le stringhe per intero cosi vedo se ho sbagliato io adesso a scrivere
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?
Ciao, l’errore è che non viene trovato il programma “env” nell’indirizzo, forse è in /sbin o altro indirizzo.
grazie per la veloce risposta, si appunto, ma come proseguo?
Stavo proprio adesso leggendo la posta, ecco perché ho risposto velocemente.
Adesso occorre vedere dove sta il programma “env”, di solito risiede in /bin o /sbin o /usr/bin o /usr/sbin
penso tu intendessi il programma login 😉 cmq ho provato anche in: /sbin/bash e /usr/bin/bash ma li mi da errore chroot cannot run command /usr/bin/bash: -login: no souch file or directory
Dall’errore è il programma “env” che manca.
Ok, ma sto tentando di continuo in /bin o /sbin o /usr/bin o /usr/sbin senzatrovarlo :S 🙁
RISOLTO
Errore mio di scrittura, chiedo scusa. e grazie per l’aiuto!