Newsgroup: it.comp.os.linux.iniziare
Titolo: compilazione kernel: riutilizzare .config

Salve a tutti.
Tempo fà ho compilato un vanilla 2.6.20.4 seguendo alcuni how-to.
Non sono un esperto, tutt'altro...ma mi è parso di capire che il
grosso dell'operazione sta nella configurazione che porta ad avere un
file "config.".
Mi trovo ora a voler compilare il kernel per un'altra distribuzione
sulla stessa macchina.
Premesso che non ho introdotto patch o altro, mi chiedevo se fosse
possibile trasportare, insieme ai sorgenti del kernel, anche quel file
.config già pronto, in modo da evitarmi il grosso del lavoro
saltandomi il "make menuconfig" e partendo subito dal build.
Preciso che l'ho compilato su fedora 4 (di suo viaggiava con un 2.6.11),
funziona a dovere mi pare.
Ora vorrei compilarlo per slackware 10.2 che ora gira con un 2.4.32.
Cosa mne pensate? si può fare?
ringrazio in anticipo   :-)

 ringrazio in anticipo   :-)
se la versione del kernel da compilare è la stessa non ci sono problemi!
-- 
DrBrex
Now Debianizzato!
Linux entropia 2.6.20-nb1 #1 PREEMPT i686 GNU/Linux
Il blog di tutti i Debianizzati:
Do it in the Debian way! - 
http://debianway.wordpress.com

 se la versione del kernel da compilare è la stessa non ci sono problemi!
Grazie, come immagginavo...
A presto.


Leggendo la guida:
http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html
nella sezione "backup .config", si consiglia di fare un backup appunto del
file di configurazione creato con uno dei tool a disposizione.
Da quello che ho capito il backup è necessario se si vuole salvare una
precedente configurazione, come nel mio caso, in quanto col comando successivo
questa viene cancellata.
Mi riferisco al comando 
$ make mrproper
che dovrebbe ripristinare l'albero dei sorgenti e preparare la directory
di lavoro.
Ho un dubbio sul procedimento da seguire per evitarmi il "make menuconfig".
Vi propongo la strada che seguirei io, e vi chiederei se poteste confermarmi
la correttezza.
ho copiato la directory contenete i sorgenti dalla partizione di fedora a 
quella di slackware. Si tratta della directory da dove avevo compilato i
sorgenti del kernel su fedora. Contiene i sorgenti, il file .config che mi 
interessa e poi non sò se viene creato anche qualcos'altro...
Bene ora questa directory l'ho messa in /usr/src della slack:
/usr/src/linux-2.6.20.4  (o qualcosa del genere)
adesso farei così:
1- copio il .config da qualche parte
2- make mrproper
3- vado a riprendere il .config che avevo spostato e lo ricopio nella dir
   di lavoro "/usr/src/linux-2.6.20.4"
A questo punto posso dare i seguenti comandi (cioè passare al build
del kernel)?
4- make clean
5- make bzImage
6- make modules
7- make modules_install
8- make /boot/initrd-2.6.20.4.img 2.6.20.4
9- cp arch/i386/boot/bzImage /boot/bzImage-2.6.20.4
10- cp System.map /boot/System.map-2.6.20.4
11- ln -s /boot/System.map-2.6.20.4 /boot/System.map
Fine.
Ho anche qualche dubbio sull'impostazione di LILO:
visto che su fedora c'è grub, non so bene come fare.
Sul mio sistema ho grub che gestisce il boot e quando scelgo slackware,
credo che il compito di avviarla passi a lilo che ho installato sul 
superblocco della partizione della slack.
In pratica ho impostato grub con l'opzione "chainloader +1" in modo
che se scelgo slack venga avviata colproprio boot loader cioè lilo.
Il problema è che se ora metto su un secondo kernel per slack avrei
due scelte da fare:  2.4.31 o il nuovo 2.6.20.4.
MA come faccio a scegliere una o l'altra visto che uso grub?
Potrei anche sostituire il 2.4 in lilo.conf con il 2.6, ma poi se qualcosa
non funzionasse dovrei ricorrere al cd per avviare la slack....
(non che sia un gran problema...ma se si può evitare...).
L'ho fatta lunga....
Spero nei vostri interventi. A presto!  :-P

 Spero nei vostri interventi. A presto!  :-P
Visto che non ho ricevuto nessun consiglio, rinnovo il mio invito
ad intervenire su una conferma circa i miei dubbi sulla compilazione
e una dritta anche sull'impostazione di lilo per la gestione della
scelta del kernel al boot.
Spero nel vostro aiuto perchè la situazione non è delle più canoniche
e se mi deste una mano sarei più sicuro di non fare pasticci....  ;-)
Come potete vedere dal post precedente, non è la prima volta che compilo
un kernel, ma in questo caso vorrei capire come evitarmi di dover 
ripetere il menuconfig dal momento che ho già il ".config"....
sarebbe tutto abbastanza chiaro se non fosse per quel "mproper" che a quanto
pare sovrascrive il mio .config che invece vorrei utilizzare per il
build del kernel.
Insomma ho rienuto opportuno rinnovare le mie richieste, visto che non
mi sembra di chiedere la pappa pronta. Poi capire come gestire insieme
lilo e grub non è un argomento dei più comuni (almeno dalle mie ricerche).
Quindi direi che l'argomento potrebbe essere d'aiuto ad altri che come me
vogliono provare più di una distro sulla stessa macchina contemporaneamente.
Saluti!!  :-P

    di lavoro "/usr/src/linux-2.6.20.4"
A questo punto io farei un make oldconfig, così eventuali differenze tra
i sorgenti dei due kernel vengono individuate e ti viene chiesto cosa
fare. Tuttavia se usi vanilla in entrambi i casi non ci sono differenze.
Ciao
-- 
Lorenzo `paulatz' Paulatto
Trieste
``Grandissima mi par l'inezia di coloro che vorrebbero che Iddio avesse
fatto l'universo più proporzionato alla piccola capacità del lor discorso.''
     --Galileo Galilei (Opere VII)

 
Grazie mille per la risposta!
scusa ma perchè due kernel?
il .config che ho in mano l'ho ottenuto configurando i sergenti del 
2.6.20.4
:
c'è solo un kernel, che però è stato configurato da fedora. Ora ho spostato i 
sorgenti dello stesso kernel su slackware dove vorrei fare il build con il
.config creato prima su fedora.
Su slackware al momento gira il kernel di default 2.4.31...
Il problema è che tra i comandi suggeriti dalla guida vi è mrproper che mi
sovrascrive il .config buono (sempre quello ottenuto su fedora).
La soluzione più ovvia e banale mi è sembrata quella di spostare il .conf 
temporanemente via dalla directory di lavoro (quella contente i sorgenti), 
dare quel mrproper ed infine rimettere al suo posto il .config (sempre quello 
buono).
Non capisco da dove saltano fuori due kernel e che senso ha dare 
oldconfig... :-o
Abbi pazienza....non sono espertissimo   ;-)

 ad intervenire su una conferma circa i miei dubbi sulla compilazione
]zac[
Personalmente ho deciso che la richiesta era troppo estesa, confusa,
prolissa, contorta (prego non offendersi).
Se il punto era si può recuperare il .config, la risposta è si, c'è anche il
comando per recupera la precedente configurazione.
Io per sicurezza, visto che la precedente configurazione non mi  è
sufficiente, copio il .config, poi, dopo aver azzerato la compilazioni lo
ricopio a mano.
In ogni caso il recupero del .config è saggio farlo solo per kernel di
uguale o leggermente superiore versione.
Poi di solito basta lanciare make mrproper, make, make modules_install e
make install (o simile) perché venga fatto tutto, compresa la
configurazione del boot loader.
Se il punto è avere più kernel, il problema non esiste, anche nel caso di un
bootloader che lancia un secondo booloader, semplicemente i kernel vanno
avviati dal proprio bootloader (bootloader/kernel/directory /boot di ogni
sistema viaggiano insieme e per conto proprio), sia che sia il primo che
sia il secondo.

 sia il secondo.
Ok, quindi quando avrò installato il nuovo kernel e configurato lilo in
modo da potere avviare a scelta col vecchio o col nuovo, al boot mi aspetto una situazione così:
1- parte grub: scelgo slackware
2- si avvia lilo: mi propone di scegliere il vecchio o il nuovo kernel
3- scelgo a mano o aspetto il timeout e si avvia slack
Funziona così?
Grazie mille della disponibilità. Saluti!!!  :-)

 Abbi pazienza....non sono espertissimo   ;-)
Serve in un altro caso: metti che su fedora hai compilato il kernel con
certe opzioni; dopodiché vuoi compilare il kernel di slackware con le
opzioni più simili possibili, però usando un altro set di sorgenti che
non sei sicuro al 100% siano uguali (magari la slack ha qualche patch in
meno...). In questo caso oldconfig usa i valori che trova nel vecchio
.config per generare la nuova configurazione e se trova qualche opzione
in più o in meno ti chiede cosa fare.
