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