Pagina 1 di 3
kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 16:36
da yepp
vi scrivo a proposito dei miei soliti problemi con la ricompilazione del kernel...
in giro per la rete, su s4d e anche in questo forum ci sono moltissimi consigli utili in caso di panic... solo che mi piacerebbe evitare di leggere panic e dover correre sul forum per vedere la soluzione.
oggi per esempio ho provato ad installare i driver della mia scheda wireless... ho trovato tutto sul sito della intel, scarico i nuovi moduli per il kernel, seguo la pocedura, make menuconfig, li trovo nella lista, li attivo, ricompilo tutto... riavvio e...... bam!! kernel panic!!
qui
viewtopic.php?f=2&t=23121 scopro la natura del mio problema... verifico ed effettivamente il mio kernel si era misteriosamente perso i moduli per leggere l'ext3 che guarda caso e' il mio filesystem...
oggi ho dovuto lasciare 10 euro al fioraio, non ero di buon umore e ho formattato...
ora vi chiedo delucidazioni sulla questione... per imparare dai prorpi sbagli...
per installare un nuovo kernel c'e' S4d che spiega l'installpkg kernel e come modificare lilo...
da qualche parte posso trovare una buona guida alla compilazione del kernel... make menuconfig - make dep - make clean - make bzImage - make modules - make modules_install - make install - aggiorno lilo e tutto quanto...
ma visto che il bamm!! e' sempre dietro l'angolo vorrei sapere: esiste una procedura di rollback in caso di errore?? come posso salvare il mio kernel attuale e stabile in modo tale da reinstallarlo in caso di panic?? cioe', e' possibile una cosa tipo salvare il file xorg.conf con un altro nome e poi ripristinarlo in caso di errore??
ho letto che si puo' installare una versione del kernel su un disco/chiavetta per fare delle prove... confermate??
le altre mille domande per ora me le tengo per me!!
grazie a tutti quelli che avranno voglia di rispondere...
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 16:39
da JohnnyMnemonic
Semplicemente ti tieni un kernel funzionante e uno di test impostati su lilo, così se quello di test ha problemi riavvi con quello funzionante
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 16:46
da yepp
perfetto... in termini di file pero' stiamo parlando di cosa?? ... tutta la directory /usr/src/linux-2.6.21.5 ??
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 16:50
da JohnnyMnemonic
No, i file config-versione, System.map-versione e vmlinuz-versione che trovi in boot, ti basta mantenere una voce in lilo per il kernel vecchio
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 16:58
da eth0
Ciao ,
non c'è bisogno che ti tieni tutta la directory "
/usr/src/linux-2.6.x"; una volta che hai terminato la configurazione del kernel ("
make menuconfig") esci dal programma dicendogli di salvare le tue impostazioni e ti trovi un file nominato "
.config" che il programma ti crea. Quel file è la configurazione del kernel che hai fatto...
Puoi salvarlo in un posto sicuro e, se vedi che il kernel che hai creato non funziona, puoi sempre riprendere dal punto in cui eri arrivato e cambiare ciò che avevi sbagliato semplicemente rientrando nella directory dei sorgenti e rilanciare un bel:
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 17:06
da yepp
benissimo...
in sostanza io mi prendo questi 3 file...
config -> config-huge-smp-2.6.21.5-smp
system.map-huge-smp-2.6.21.5-smp
vmlinuz -> vmlinuz-huge-smp-2.6.21.5-smp
che dovrebbero essere quelli che sto usando... e me li metto da parte.
e poi /etc/lilo.conf deve avere una voce cosi'...
Codice: Seleziona tutto
boot=/dev/sda //che non so a cosa serve
(...)
image=/boot/vmlinuz //che credo sia il nome dell'immagine del kernel presa direttamente dal file
label=linux
initrd= //mi pare di aver capito che con un kernel huge non serve
read-only
root=/dev/sda1 //questo e' il disco che ospita il sistema operativo.
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 17:08
da yepp
eth0 ha scritto:Ciao ,
non c'è bisogno che ti tieni tutta la directory "
/usr/src/linux-2.6.x"; una volta che hai terminato la configurazione del kernel ("
make menuconfig") esci dal programma dicendogli di salvare le tue impostazioni e ti trovi un file nominato "
.config" che il programma ti crea. Quel file è la configurazione del kernel che hai fatto...
Puoi salvarlo in un posto sicuro e, se vedi che il kernel che hai creato non funziona, puoi sempre riprendere dal punto in cui eri arrivato e cambiare ciò che avevi sbagliato semplicemente rientrando nella directory dei sorgenti e rilanciare un bel:
ok... ma per "non funziona" intendi un kernel panic??
perche' potrei tornare in quel punto solo usando il dvd di slackware per tornare alla configurazione del kernel...
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 17:14
da JohnnyMnemonic
Con uname -sr sai che kernel stai usando in questo momento e così sai che file mantenere, poi aggiungi blocchi a lilo.conf per ogni kernel aggiuntivo che vuoi provare, secondo lo schema che hai postato prima
image=/boot/vmlinuz //che credo sia il nome dell'immagine del kernel presa direttamente dal file
label=linux
initrd= //mi pare di aver capito che con un kernel huge non serve
read-only
root=/dev/sda1 //questo e' il disco che ospita il sistema operativo.
Attenzione però a tenere i file e non i collegamenti simbolici
config -> config-huge-smp-2.6.21.5-smp
system.map-huge-smp-2.6.21.5-smp
vmlinuz -> vmlinuz-huge-smp-2.6.21.5-smp
Quelli a sinistra sono i collegamenti simbolici ai file che servono a te (quelli a destra)
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 17:21
da conraid
Guarda, è la stessa cosa che faccio io da sempre.
Mi tengo il kernel di default della Slackware sempre disponibile, ora uso huge e poi mi compilo i miei kernel
yepp ha scritto:benissimo...
in sostanza io mi prendo questi 3 file...
config -> config-huge-smp-2.6.21.5-smp
system.map-huge-smp-2.6.21.5-smp
vmlinuz -> vmlinuz-huge-smp-2.6.21.5-smp
che dovrebbero essere quelli che sto usando... e me li metto da parte.
No, non li metti da nessuna parte, li lasci dove sono
yepp ha scritto:
e poi /etc/lilo.conf deve avere una voce cosi'...
Codice: Seleziona tutto
boot=/dev/sda //che non so a cosa serve
(...)
image=/boot/vmlinuz //che credo sia il nome dell'immagine del kernel presa direttamente dal file
label=linux
initrd= //mi pare di aver capito che con un kernel huge non serve
read-only
root=/dev/sda1 //questo e' il disco che ospita il sistema operativo.
Puoi fare così, ma meglio sarebbe fare una cosa simile
Codice: Seleziona tutto
image=/boot/vmlinuz-huge-smp-2.6.21.5-smp
label=huge
read-only
root=/dev/sda1
Per le domande:
boot=/dev/sda è dove vuoi installare LILO, in questo caso nel MBR dell'hard disk /dev/sda
Se vuoi metterlo in un floppy per esempio ci metti
Una volta era comodo per avere sempre un avvio di emergenza
initrd= ti serve se nel kernel non compili il tuo chipset ed il tuo filesystem. In huge non serve, e spero nemmeno se lo compilo da solo
root=/dev/sda1 Non è il disco che ospita il sistema operativo, ma la partizione dove c'è root, cioè quella che hai montato come
/
Tanto per farti vedere un esempio io sulla current ho
Codice: Seleziona tutto
blank@slack:/boot$ ls -l
totale 8434
lrwxrwxrwx 1 root root 37 2007-12-15 11:56 README.initrd -> /usr/doc/mkinitrd-1.3.0/README.initrd
lrwxrwxrwx 1 root root 19 2008-02-12 12:20 System.map -> System.map-2.6.24.2
-rw-r--r-- 1 root root 888974 2008-02-11 13:45 System.map-2.6.24.2
-rw-r--r-- 1 root root 1297375 2008-02-11 22:49 System.map-huge-2.6.23.16
-rw-r--r-- 1 root root 512 2007-04-06 16:43 boot.0300
-rw-r--r-- 1 root root 179 2008-02-12 12:22 boot_message.txt
lrwxrwxrwx 1 root root 15 2008-02-12 12:20 config -> config-2.6.24.2
-rw-r--r-- 1 root root 42957 2008-01-27 19:39 config-2.6.24.2
-rw-r--r-- 1 root root 77510 2008-02-11 22:49 config-huge-2.6.23.16
-rw-r--r-- 1 root root 5040 2007-06-10 08:09 diag1.img
drwx------ 2 root root 12288 2007-04-06 16:13 lost+found
-rw------- 1 root root 80384 2008-02-12 12:22 map
lrwxrwxrwx 1 root root 22 2008-02-12 12:21 vmlinuz -> vmlinuz-2.6.24.2
-rw-r--r-- 1 root root 1744152 2008-02-11 13:45 vmlinuz-2.6.24.2
-rw-r--r-- 1 root root 4441592 2008-02-11 22:49 vmlinuz-huge-2.6.23.16
Codice: Seleziona tutto
# Start LILO global section
boot = /dev/hda
message = /boot/boot_message.txt
prompt
timeout = 200
vga = normal
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz-2.6.24.2
root = /dev/hdc2
label = Linux-2.6.24.2
read-only
# Linux bootable partition config ends
# Linux bootable partition config begins
image = /boot/vmlinuz-huge-2.6.23.16
root = /dev/hdc2
label = Slackware
read-only
# Linux bootable partition config ends
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 17:57
da yepp
[-o< ... aaah, quanta chiarezza tutta insieme!!
che meraviglia... vi ringrazio tantissimo!!
ora signori mettero' alla prova la vostra pazienza con alcune domande...
archiviata la questione "salvataggio delle cose che funzionano" veniamo a come "non rompere le cose che funzionano" ...
per configurare un kernel... diciamo che voglio aggiungere dei moduli che ho preventivamente installato...
io farei così...
Codice: Seleziona tutto
cd /usr/linux-versione
make menuconfig
... faccio le cose brutte che devo fare con Y - M
esc-esc salvo ed esco.
// ora la compilazione vera e propria
make dep
make clean
make bzImage
make modules
make modules_install
make install
//ora scende un sottile velo di oscurita' con questo copia e questo link
cp arch/i386/boot/bzImage /boot/vmlinuz-versione
ln -s /boot/vmlinuz /boot/vmlinux-versione
per chiarire... quando ho modificato le opzioni del kernel, ho modificato il mio kernel corrente?? quando modifico delle opzioni e poi salvo, posso ragionevolmente pensare che le cose che non ho toccato siano rimaste come sono?? (come e' stato possibile persdersi i moduli del ext3??)
nella directory /boot non succede nulla finche' io non ci copio i file??
grazie a tutti intanto...
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 18:03
da conraid
yepp ha scritto:
Codice: Seleziona tutto
cd /usr/linux-versione
make menuconfig
... faccio le cose brutte che devo fare con Y - M
esc-esc salvo ed esco.
// ora la compilazione vera e propria
make
make modules_install
Basta quello di cui sopra, e in /boot non ci va niente. Copi dopo i file a mano
se fai make install invece ci metti roba e cambi le impostazioni, non farlo
Ma non capisco la parte che viene prima.
Tu ricompili un kernel nuovo, per usare le vecchie impostazioni prendi il vecchio config e dai "make oldconfig" prima di "make menuconfig"
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 18:22
da yepp
conraid ha scritto:yepp ha scritto:
Codice: Seleziona tutto
cd /usr/linux-versione
make menuconfig
... faccio le cose brutte che devo fare con Y - M
esc-esc salvo ed esco.
// ora la compilazione vera e propria
make
make modules_install
Basta quello di cui sopra, e in /boot non ci va niente. Copi dopo i file a mano
se fai make install invece ci metti roba e cambi le impostazioni, non farlo
se tu mi dici di non farlo, io non lo faccio... zaaap, dimenticato!!
lo avevo letto su un una vecchia guida di linux...
Ma non capisco la parte che viene prima.
Tu ricompili un kernel nuovo, per usare le vecchie impostazioni prendi il vecchio config e dai "make oldconfig" prima di "make menuconfig"
ecco, forse non ho capito bene la funzione di questo config... il kernel contiene tutti i moduli e l'interfacciamento con l'hardware... ma il file config a cosa serve?? e' lui che dice cosa e' modulare e cosa e' installato??
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 18:26
da aleph
JohnnyMnemonic ha scritto:Semplicemente ti tieni un kernel funzionante e uno di test impostati su lilo, così se quello di test ha problemi riavvi con quello funzionante
arch questo lo fa di default

(e torna utile aggiornando il kernel con pacman

) . .
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 18:33
da conraid
yepp ha scritto:
ecco, forse non ho capito bene la funzione di questo config... il kernel contiene tutti i moduli e l'interfacciamento con l'hardware... ma il file config a cosa serve?? e' lui che dice cosa e' modulare e cosa e' installato??
E' lui che dice cosa è modulare o cosa è incluso nel kernel. E cosa non c'è.
Installato è un termine improprio in questo caso
Re: kernel... un po' ti odio...
Inviato: gio 14 feb 2008, 18:50
da yepp
ora capisco...
quindi make menuconfig va a modificare il file config (ovviamente relativo a quella versione) in questo caso il config-huge-smp-2.6.21.5-smp
se ad esempio io faccio una modifica con make menuconfig e poi la volessi annullare, basta fare make oldconfig...
se invece sono in kernel panic per una modifica fatta al kernel allora in quel caso, come detto prima, vado su lilo a modificare i suoi parametri, lo faccio "puntare" ad un kernel stabile e poi comunque ripristino il file config.
scusa se ripeto di continuo... ma ci sono rimasto molto male all'ultimo panic e voglio essere sicuro di aver capito tutte le procedure, per non scrivere comandi senza sapere cosa fanno. grazie.