Não foi possível montar o UBIFS no cartão SD

1

Eu acho que isso não é um grande problema, ainda não consigo ver qual é o problema.

Estou criando imagens para um sistema ARM9 Embedded Linux (2.6.39) com o Buildroot 2013.11, que está sendo inicializado a partir de um cartão SD. Eu estava tentando diferentes formatos de sistema de arquivos, onde alguns deles não conseguiram arrancar.

O que eu fiz para os que trabalham : Por exemplo: rootfs.cramfs está funcionando, no Linux menuconfig selecionei

File Systems
- Miscellaneous filesystems
- - Compressed ROM file system support (cramfs)

Então eu coloco o kernel na primeira partição do sd, e para a segunda partição eu usei o comando dd :

sudo dd if=/[path-to-rootfs]/rootfs.cramfs of=/dev/sdb2 bs=2048

A linha de comando do kernel se parece com:

console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait

E está inicializando o sistema sem problemas.

O que eu fiz para os que não funcionaram : Por exemplo: rootfs.ubifs (e muitos outros também). Na verdade, fiz quase os mesmos passos acima. A linha de comando do Kernel permanece a mesma. As coisas que eu inclinei estão no linux-menuconfig:

File Systems
- Miscellaneous filesystems
- - SquashFS 4.0 - Squashed file system support
- - - Squashfs XATTR support
- - - Include support for LZO compressed file systems
- - - Include support for XZ compressed file systems
Comando

e dd:

sudo dd if=/[path-to-rootfs]/rootfs.ubifs of=/dev/sdb2 bs=2048

(btw: após esta etapa, o sistema host não pode mais ler o conteúdo da partição 2).

Mas, em seguida, Ele falha durante a inicialização com a mensagem:

No filesystem could mount root

e, em seguida, ocorre um kernel panic (devido à linha acima). Se estiver interessado, posso colocar o arquivo .config aqui.

Alguém vê meu erro?

    
por user3085931 24.04.2014 / 10:08

2 respostas

2

O UBIFS é projetado apenas para dispositivos flash brutos, em que o software processa as gravações em um bit ou página apagada separadamente da eliminação de blocos . O UBIFS não funciona em dispositivos de bloco, onde o hardware (ou geralmente firmware) manipula o remapeamento de páginas ou blocos (e, portanto, o uso de nivelamento, na medida em que funciona) para oferecer uma interface simples onde o software pode fingir que setor sobrescreve esse setor (como no armazenamento magnético).

Cartões SD, MMC, SSD, unidades flash USB e assim por diante lidam com o remapeamento de blocos em hardware e oferecem uma interface de dispositivo de bloco, então o UBIFS não funciona nesses dispositivos.

O UBIFS funciona em dispositivos MTD com UBI como uma camada intermediária.

Consulte a documentação do UBIFS para obter mais detalhes.

    
por 25.04.2014 / 02:32
0

De acordo com a documentação da UBIFS , ela não está funcionando com dispositivos de bloco, como MMC / SD. Então eu acho que esse é o erro.

    
por 24.04.2014 / 11:44