PDA

Visualizza la versione completa : [ricompilazione kernel] help!!!


citrus
09-06-2004, 11:38
ciao a tutti....
sono alla mia prima ricompilazione ed ho qualche problema.
(Suse 8.2 Pro, sto cercando di mettere il kernel 2.6.6)
praticamente, dopo varie peripezie sono riuscito a configurare il kernel e a farne un immagine con il comando "make bzImage".
A questo punto lancio il comando "make install" ma non ha successo perch non trova il file di configurazione di lilo (infatti il bootloader grub).
Allora seguendo le indicazioni della guida di html.it copio il file bzImage nella directory boot e lo rinomino Vmlinuz (avendo prima mantenuto il vecchio kernel con il nome di Vmlinuz_old). stessa cosa per il file system.map (che no ho assolutamente idea a che cosa serva).
Cmq sia...
fatto questo entro nel file di configurazione di grub (menu.list), copio esattamente le tre righe per l'avvio del vecchio kernel, cambio l'etichetta e il nome del file del kernel in modo da poter scegliere con quale kernel avviare.
Fin qui sembra andare tutto bene....
E invece quando riavvio con il nuovo kernel mi dice che non trova la partizione di root
"please append a correct "root=" boot option"!
quello che no capisco che la stessa della versione con il vecchio kernel.. ho cambiato solo l'etichetta e il nome del file contenente l'immagine del kernel......
perch mi da questo errore?
cosa devo fare?

grazie mille
citrus
:D

andy caps
09-06-2004, 13:15
probabilmente non ti ha creato initdr

installa mkinitdr e poi lancialo nella dei del kernel

la suse come mandrake preferisce avere tutto disponibile
se ricompili il kernel compilalo con

make all
make modules_install
make install


ti dovrebbe creare anche initrd altrienti prima del make install dai un mkinitrd

poi prima di riavviare controlla grub.conf e guarda che corrisponda hai file che hai in /boot

citrus
09-06-2004, 13:31
grazie ci provo subito...
ma cosa sarebbe scusa initrd?

andy caps
09-06-2004, 13:46
serve a dare le istruzioni di boot per molte distro' rpmbased come la suse

poi lo devi aggiungere anche a grub.conf probabilmente :bh: io grub non lo uso mai
guarda la configurazione esistente e quello che c' in /boot

citrus
09-06-2004, 14:04
quello che non capisco che io ho praticamente sostituito il vmlinuz con quello ricompilato da me...
di grub praticamente non ho toccato nulla.. ho solo aggiuto il "link" al vechio kernel...
quindi dipenderebbe proprio dall'immagine del kernel che ho creato giusto?
quindi se le cose stanno cos qui dentro che dovrebbe trovarsi il file initrd?

poi un altra cosa...
se non do il comando "make bzImage" ma semplicemente "make all" mi crea cmq un immagine che io poi posso spstare in /boot?
perch il "make install" non mi funziona per via di lilo.....

andy caps
09-06-2004, 14:16
vmlinuz era meglio se non lo toccavi

se dai il make install ti crea il vmlinux-2.6.xxxxx
che puoi usare come immagine del kernel aggiuntiva senza andare a toccare quella esistente
probabilmente suse ti crea anche un vmlinux.old e fa un similink da vmlinuz all'immagine nuova

il problema puo essere anche il kernel compilato male che non permette il boot

andy caps
09-06-2004, 14:20
make all si preoccupa di tutto non devi dare make bzImage
quello va usato con i kernel 2.4.xx

make crea il bzImage da solo

citrus
09-06-2004, 15:18
Originariamente inviato da andy caps
vmlinuz era meglio se non lo toccavi
se dai il make install ti crea il vmlinux-2.6.xxxxx che puoi usare come immagine del kernel aggiuntiva senza andare a toccare quella esistente probabilmente suse ti crea anche un vmlinux.old e fa un similink da vmlinuz all'immagine nuova

no, ho controlato e non crea link... o magari lo creerebbe se andasse a buon fine il "make install", cosa che per non avviene quindi mi tocca fare a mano lo spostamento...
per il vmlinuz ho creato una copia prima di sovrascriverlo a cui punta un secondo (come si dice?)... boot, quindi anche quando il 2.6 mi da problemi avvio con il 2.4.

cmq sia ho provato a fare come dici tu, ovvero do prima il "make all" poi compilo i moduli, poi do un "mkinitrd" ed infine il benedetto "make install" che sempre per via di lilo non funziona...
quindi ho preso il bzImage e lo copiato nella cartella /boot rinominandolo con vmlinuz.. ora dovrebbe essere tutt'apposto ma ancora mi da lo stesso problema di prima all'avvio...
quello che mi chiedo : se il file initrd serve al kernel per creare il mount su root (giusto?), allora non dovrebbe stare all'interno dell'immagine (bzImage)?
quindi in teoria non dovrei dare l'"initrd" prima del "make all"?
...


Originariamente inviato da andy caps
il problema puo essere anche il kernel compilato male che non permette il boot

Se cos fosse cosa potrei fare?
Io non ho praticamente toccato nulla della configurazione del kernel.. ho solo aggiunto il supporto ai dischi sata, nient'altro.
Se la compilazione non riesce non credo dipenda da me (spero) giusto?

...
ps:
sto ragionando a spanne quindi se dico cavolate ti prego di correggermi....
grazie di nuovo
citrus

citrus
09-06-2004, 15:32
ecco...
avevi ragione... il make install prima di non riuscire a creare il link alla nuova immagine riuscito per a sovrascrivere quella di prima su vmlinuz_old che conteneva il kernel funzionante di cui avevo fatto backup....
ora praticamente non ho pi il 2.4 e non riesco nemmeno ad avviare la macchina....
grrrrr!!!
vabb... pi grande lo sbattimento pi sar grande la soddisfazione!
ora reinstallo e riprovo....
intanto potresti darmi una dritta sulla risposta che ho dato sopra?
denghiuuu
citru(llu)s
:dh:

andy caps
09-06-2004, 19:42
:D


mkinitrd - Creates an initial ramdisk image for preloading modules


Mkinitrd creates filesystem images for use as initial ramdisk (initrd) images. These ramdisk images are often used to preload the block device modules (SCSI or RAID) needed to access the root filesystem. In other words, generic kernels can be built without drivers for any SCSI adapters which load the SCSI driver as a module. Since the kernel needs to read those modules, but in this case it isn't able to address the SCSI adapter, an initial ramdisk is used. The initial ramdisk is loaded by the operating system loader (normally LILO) and is available to the kernel as soon as the ramdisk is loaded. The ramdisk loads the proper SCSI adapter and allows the kernel to mount the root filesystem.

se hai sata specialmente ci vuole initrd

quando ricompili controlla con esattezza con ls -l /boot come sta la situazione prima di riavviare

:quipy: metti lilo che piu semplice mentre installi

Loading