venerdì 22 maggio 2009

Cosa succede a fidarsi dei kernel troppo stitici...

- fase 3, accendere la Beagleboard, interrompere la sequenza di boot e dare questi comandi:
mmcinit
setenv bootargs 'console=ttyS2,115200n8 console=tty0 rootfstype=ext2 root=b302 rootdelay=1 rw'
fatload mmc 0 80200000 uImage.bin
bootm 80200000

Dopo aver dato questi comandi il kernel Linux fa il boot e al termine ottengo un errore, che però mi rivela preziose informazioni:

Waiting 1sec before mounting root device...
mmc0: new high speed SD card at address 0002
mmcblk0: mmc0:0002 00000 971 MiB 
 mmcblk0: p1 p2
VFS: Cannot open root device "b302" or unknown-block(179,2)
Please append a correct "root=" boot option; here are the available partitions:
1f00             512 mtdblock0 (driver?)
1f01            1920 mtdblock1 (driver?)
1f02             128 mtdblock2 (driver?)
1f03            4096 mtdblock3 (driver?)
1f04          255488 mtdblock4 (driver?)
b300          994816 mmcblk0 driver: mmcblk
  b301           18513 mmcblk0p1
  b302          976000 mmcblk0p2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

Nell'ordine:
- il major/minor number della NAND Flash è 1f/xx dove xx=0,1,2,3,4 (cinque blocchi), di cui l'ultimo è di 255mila kilobytes circa
- il major/minor number della memory card è b3/xx dove xx=0 "intero disco", xx=1 "prima partizione" (mmcblk0p1", xx=2 "seconda partizione" (976mila kilobytes)
- il "kernel panic" è dovuto all'incapacità di montare il filesystem root sul blocco b302 che pure avevo specificato dalla setenv di cui sopra. Dato che la b302 è nella lista di cose "viste" dal kernel, se ne deduce che o ho sbagliato filesystem, oppure il filesystem in cui è formattata la mmcblk0p2 non è incluso nel kernel ma solo nei suoi moduli (i quali sarebbero disponibili solo dopo il mount... ma è proprio il mount che fallisce).

A questo punto, tragedia! il kernel in questione non contiene il reiserfs. Infatti, togliendo l'opzione rootfstype dalla setenv di cui sopra, ottengo...

No filesystem could mount root, tried:  ext3 ext2 vfat msdos
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

Dunque gli unici filesystem supportati da quel kernel erano solo ext3 ed ext2 (i filesystem VFAT/MSDOS non sono buoni per una root di Linux perché non supportano attributi e permessi).

Ma porca vacca, mi toccherà riformattare la partizione in ext3 e ripopolarla di nuovo...!

Nessun commento:

Posta un commento