uCLinux (linux 4.9 nommu) VFS: Não é possível abrir o dispositivo raiz “(null)”

0

Estou preso a este pânico do kernel.

O que eu quero é embutir um initramfs no kernel xip Image, mas o pânico do linux e me diga para passar um valor rootfs "root=" válido. Mas por que o Linux procura essa entrada?

(A única razão pela qual eu não dou nenhum real. cpio é que não posso criar um por causa de erros como "can't find #include"). Mas o initramfs padrão deve fazer o trabalho não?

CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_BLOCK=y
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=4096

O Linux não deveria se importar com nenhum "root=" args ??? Não ??

full linux .config: link

saída completa da UART: link

Obrigado por ler isto.

EDIT: Isso é o que acontece quando eu especifico "root = / dev / ram0":

[    0.580000] brd: module loaded
[    0.630000] loop: module loaded
[    0.650000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.650000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 1th superblock
[    0.650000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.670000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 2th superblock
[    0.680000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.680000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 1th superblock
[    0.690000] F2FS-fs (ram0): Magic Mismatch, valid(0xf2f52010) - read(0x0)
[    0.690000] F2FS-fs (ram0): Can't find valid F2FS filesystem in 2th superblock
[    0.700000] List of all partitions:
[    0.700000] 0100            4096 ram0 [    0.710000]  (driver?)
[    0.710000] No filesystem could mount root, tried: [    0.720000]  f2fs
[    0.720000] 
[    0.720000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[    0.720000] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)
[    1.520000] random: fast init done

Não tenho certeza de entender a implicação de "Nenhum sistema de arquivos poderia montar a raiz", é claro que você (Linux) precisa criá-lo !!! O que está acontecendo?

    
por user2629409 27.12.2016 / 16:48

1 resposta

0

O problema foi duplo:

  • Eu não sei porque, mas o padrão .cpio não estava funcionando.

  • O cpio "stm32 minimal blablabla" que encontrei na net não estava funcionando.

Eu tentei executar uma compilação de sistema inteira com o buildroot, que funciona pronto para uso e tente usar o rootfs.cpio, e ele funciona !!

Se eu encontrar o motivo, postarei aqui.

Por enquanto eu investigar, porque para mim a RAM externa desta placa começa em 0xD0000000, mas buildroot faz um sistema que começa em 0x90000000. Ambos os sistemas estão funcionando ... não sei como lol.

    
por 27.12.2016 / 18:58