Newsgroup: it.comp.os.linux.debian
Titolo: Ricompilazione del Kernel

Ciao al gruppo,
Sto cercando di installare Debian su un laptop HP Pavilion dv6500
Si è reso necessario ricompilare il kernel per attivare alcune
features non supportate dal kernel 2.6.18 incluso nella distribuzione
stabile.
Tuttavia al riavvio ho un problema:
kernel panic, not syncing, unable to mount root fs on unknown block
(0.0)
Credo di avere seguito per bene le istruzioni, adesso posso vedere il
mio nuovo kernel, dopo aver eseguito 'make install', 'make
install_modules' 'mkinitrd -o /boot/initrd.img-2.6.28.1_London_0.1
2.6.28.1_London_0.1':
ls -lh /boot
total 30M
lrwxrwxrwx 1 root root   26 2009-01-28 03:36 config ->
config-2.6.28.1_London_0.1
-rw-r--r-- 1 root root  56K 2009-01-28 03:36
config-2.6.28.1_London_0.1
-rw-r--r-- 1 root root 2.3M 2009-01-28 03:50
initrd.img-2.6.28.1_London_0.1
lrwxrwxrwx 1 root root   30 2009-01-28 03:36 System.map ->
System.map-2.6.28.1_London_0.1
-rw-r--r-- 1 root root 1.3M 2009-01-28 03:36
System.map-2.6.28.1_London_0.1
lrwxrwxrwx 1 root root   27 2009-01-28 03:36 vmlinuz ->
vmlinuz-2.6.28.1_London_0.1
-rw-r--r-- 1 root root 1.8M 2009-01-28 03:36
vmlinuz-2.6.28.1_London_0.1
oltre ai vecchi files. Poi, un 'update-grub' mi ha prodotto:
cat /boot/grub/menu.lst
....
title		Debian GNU/Linux, kernel 2.6.28.1_London_0.1
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.28.1_London_0.1 root=/dev/sda2 ro
initrd		/boot/initrd.img-2.6.28.1_London_0.1
savedefault
title		Debian GNU/Linux, kernel 2.6.28.1_London_0.1 (single-user mode)
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.28.1_London_0.1 root=/dev/sda2 ro single
initrd		/boot/initrd.img-2.6.28.1_London_0.1
savedefault
title		Debian GNU/Linux, kernel 2.6.18-6-amd64
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.18-6-amd64 root=/dev/sda2 ro
initrd		/boot/initrd.img-2.6.18-6-amd64
savedefault
title		Debian GNU/Linux, kernel 2.6.18-6-amd64 (single-user mode)
root		(hd0,1)
kernel		/boot/vmlinuz-2.6.18-6-amd64 root=/dev/sda2 ro single
initrd		/boot/initrd.img-2.6.18-6-amd64
savedefault
....
Qulcuno ci capisce nulla? L'unica spiegazione che mi sono dato io è
che avendo ricompilato i driver per i dispositivi a blocchi, potrei
aver causato il rename dei dispositivi.
Mi spiego, col kernel di default (2.6.18-6-amd64) il disco viene
gestito con interfaccia SCSI, tant'è vero che il mio fstab dice:
proc            /proc           proc    defaults        0       0
/dev/sda2       /               ext3    defaults,errors=remount-ro
0       1
/dev/sda6       /home           ext3    defaults        0       2
/dev/sda5       none            swap    sw              0       0
/dev/hda        /media/cdrom0   udf,iso9660 user,noauto     0       0
Dal momento che ho ricompilato il kernel per l'utilizzo del protocollo
SATA, è possibile che all'avvio del nuovo kernel, linux rinomini i
dispositivi in modo diverso (che so, /dev/hda per l'hard disk e /dev/
hdb per il cd-rom) e il sistema resti, per così dire, confuso dalla
direttiva 'root' nel file di grub? E in questo caso è possibile
correggere la tabella fstab?
Magari sto solo dicendo fesserie, il punto è che non so che pesci
pigliare.
Nessuna idea? Ogni suggerimento è bene accetto.
TN

 
cambiare la tabella fstab non serve a niente
il kernel prima di tutto monta il filesystem di root, e solo dopo, 
quando partono gli script d'avvio, andra' a leggersi il file fstab
tu ti blocchi prima
anch'io una volta ho avuto un problema simile...  il CDROM mi era 
diventato sda, e l'hard disk sdb
poi, non ricordo purtroppo come, ma cambiando alcune opzioni e 
ricompilando il kernel, mi e' andato a posto
comunque puoi sempre provare a partire con sdb e vedere se va
cambia la riga della prima opzione di menu.lst in root=/dev/sdb2
(sd?2 significa che hai installato il sistema sulla seconda 
partizione... la cosa e' corretta immagino)
------
che modifiche hai fatto al kernel?

 che modifiche hai fatto al kernel?
un bel po'
grazie per l'aiuto, adesso provo a cambiare un po' i parametri di
boot.
TN

 Vedo una serie di righe:
se nel mio sistema passo all'opzione del kernel root= una partizione 
inesistente, prima della riga "Kernel panic - not syncing:...." mi 
compaiono delle righe tipo
0801    16064968 sda1
0802      249875 sda2
0803    47954025 sda3
[...]
ovvero le partizioni che sono state viste
se non ti compaiono, forse non vede proprio l'hard disk
io rifarei le modifiche al kernel un po' per volta, per capire qual'e' 
quella che incasina
ti ricordo anche che il supoprto SCSI e' sempre necessario, anche se non 
hai SCSI.
se risolvi fai sapere... che son curioso
ciao

 hai SCSI.
in effetti mkinitrd si lamentava di non trovare il modulo sd_mod.
Mi sa che debbo ricompilare con maggiore attenzione alle opzioni SCSI.
Riprovo ancora. Poi vi faccio sapere.
Grazie del supporto,
TN

 No filesystem could mount root, tried: ext3
??
se usi la ramdisk iniziale non ti serve compilare ext3 come built-in
ma Block devices  ---> RAM block device support
(che e' il filesystem della ramdisk iniziale)
se invece non la usi, devi compilare come built-in sia ext3 (o il 
filesystem che hai usato per root), sia i driver dell'hard disk (nel tuo 
caso SCSI e SATA)
vedi la voce General Setup ---> Initial RAM filesystem and RAM disk
ti consigio un buon libro sulla ricompilazione del kernel
O'Reilly - Linux Kernel in a Nutshell
forse leggerlo potrebe chiarirti alcune cose
ciao

 O'Reilly - Linux Kernel in a Nutshell
interessantissimo e utilissimo, grazie!
Credo che invece di andare a casaccio, come sto facendo ora, proverò
una configurazione di default, che probabilmente funzionerà sulla mia
macchina, come funziona il kernel fornito da Debian.
Da lì partirò per una maggiore personalizzazione del kernel,
compilando solo i driver necessari.
Ma prima debbo aspettare che la mia fidanzata mi molli il PC ;)
TN