Can't read partition table on 1:0 - Tentando instalar SO no Labrador 32-Bits

Tentei criar minha própria imagem com o Alpine, mas enfrente esse problema. Então no lugar decidi instalar uma versão mais antiga do Labrador, porque a última versão está com vários bugs que impossibilitam seu uso tal como WiFi não funcionando e conflito na USB.

Tentei com a 0.11 e 0.12, ambas não conseguem iniciar pelo cartão SD:

** Can't read partition table on 1:0 **␍␊
** Invalid partition 1 **␍␊
Wrong Image Format for bootm command␍␊
ERROR: can't get kernel image!␍␊

Dá o mesmo problema com qualquer outro cartão SD. A única que funciona é a versão 0.14, que tem os bugs mencionados.
Minha Labrador é uma versão de demonstração de engenharia dado à minha instituição da placa de 32-Bits.

Olá @raposo você fez a partição desses cartões no Linux com o makfs.ext4?

Em algum update recente do ext4 no Linux a versão x86 está colocando automaticamente algumas flags que são incompatíveis com o ext4 no ARM.

Para poder voltar a ser compatível com o ARM vc precisa retirar essas flags ou refazer as partições sem as flags, no caso de criar as partições, basta adicionar o seguinte comando no mkfs.ext4:

sudo mkfs.ext4 -L rootfs -O ^metadata_csum,^64bit,^orphan_file ${DISK}1

Caso queira mudar a partição existente, pode usar o comando tune2fs indicando a partição que quer editar (no caso do seu erro, a partição 1)

sudo tune2fs -O ^metadata_csum_seed ^orphan_file ^orphan_present ${DISK}1

Tem mais detalhes sobre esta questão nestes links se te interessar:

Sim, usei o mkfs. Vou tentar denovo usando suas sugestões.

No caso, eu também tentei usar as imagens de sistema que estão no site, todas dão o mesmo problema com exceção a versão 0.14.

Tentei usando esses parâmetros ao criar minha imagem com o mkfs, dá o mesmo erro. Depois tentei alterar a imagem oficial com o tune2fs. Ele informou “Funcionalidade “orphan_present” de limpeza do sistema de ficheiros não suportada.”, então retirei o parâmetro “orphan_present” e tentei bootar pelo cartão SD novamente, mas também deu o mesmo erro

Usei o seguinte comando, com a ROM oficial na versão 0.13. O erro informado foi de falha ao monta o sistema de arquivo EXT2 por ser um tipo de sistema de arquivo desconhecido.

caninos> ls mmc 1:0 /
error: DMA0 transfered data timeout␍␊
⇥	MFP_CTL0:0x0␍␊
⇥	MFP_CTL1:0x26000010␍␊
⇥	MFP_CTL2:0x0␍␊
⇥	MFP_CTL3:0x40000008␍␊
⇥	PAD_PULLCTL0:0x3e2␍␊
⇥	PAD_PULLCTL1:0x203e001␍␊
⇥	PAD_PULLCTL2:0x1854␍␊
⇥	PAD_DRV0:0x0␍␊
⇥	PAD_DRV1:0x0␍␊
⇥	PAD_DRV2:0x0␍␊
⇥	CMU_DEVCLKEN0:0x100413be␍␊
⇥	CMU_DEVCLKEN1:0x9b084409␍␊
⇥	CMU_DEVPLL:0x1164␍␊
⇥	CMU_NANDPLL:0x118␍␊
⇥	CMU_SD0CLK:0xb␍␊
⇥	CMU_SD1CLK:0x0␍␊
⇥	CMU_SD2CLK:0x5␍␊
␍␊
⇥	SD_EN:0x4c1␍␊
⇥	SD_CTL:0xe488004f␍␊
⇥	SD_STATE:0x40cb8␍␊
⇥	SD_CMD:0x51␍␊
⇥	SD_ARG:0x0␍␊
⇥	SD_RSPBUF0:0x9000b␍␊
⇥	SD_RSPBUF1:0xf6db1000␍␊
⇥	SD_RSPBUF2:0xf5903ff␍␊
⇥	SD_RSPBUF3:0xd0270132␍␊
⇥	SD_RSPBUF4:0x3f␍␊
⇥	SD_DAT:0x0␍␊
⇥	SD_BLK_SIZE:0x200␍␊
␍␊
⇥	SD_BLK_NUM:0x1␍␊
⇥	SD_BUF_SIZE:0x200␍␊
Current DMA Channel is: 0␍␊
⇥	DMA_MODE:0x80804␍␊
⇥	DMA_SOURCE:0xb0238028␍␊
⇥	DMA_DESTINATION:0x7defac40␍␊
⇥	DMA_FRAME_LEN:0x1␍␊
⇥	DMA_FRAME_CNT:0x200␍␊
⇥	DMA_REMAIN_FRAME_CNT:0x200␍␊
⇥	DMA_REMAIN_CNT:0x1␍␊
⇥	DMA_SOURCE_STRIDE:0x0␍␊
⇥	DMA_DESTINATION_STRIDE:0x0␍␊
⇥	DMA_START:0x1␍␊
error: DMA0 transfered data timeout␍␊
⇥	MFP_CTL0:0x0␍␊
⇥	MFP_CTL1:0x26000010␍␊
⇥	MFP_CTL2:0x0␍␊
⇥	MFP_CTL3:0x40000008␍␊
⇥	PAD_PULLCTL0:0x3e2␍␊
⇥	PAD_PULLCTL1:0x203e001␍␊
⇥	PAD_PULLCTL2:0x1854␍␊
⇥	PAD_DRV0:0x0␍␊
⇥	PAD_DRV1:0x0␍␊
⇥	PAD_DRV2:0x0␍␊
⇥	CMU_DEVCLKEN0:0x100413be␍␊
⇥	CMU_DEVCLKEN1:0x9b084409␍␊
⇥	CMU_DEVPLL:0x1164␍␊
⇥	CMU_NANDPLL:0x118␍␊
⇥	CMU_SD0CLK:0xb␍␊
⇥	CMU_SD1CLK:0x0␍␊
⇥	CMU_SD2CLK:0x5␍␊
␍␊
⇥	SD_EN:0x4c1␍␊
⇥	SD_CTL:0xe488004f␍␊
⇥	SD_STATE:0x40cb8␍␊
⇥	SD_CMD:0x52␍␊
⇥	SD_ARG:0x2␍␊
⇥	SD_RSPBUF0:0x9000b␍␊
⇥	SD_RSPBUF1:0xf6db1000␍␊
⇥	SD_RSPBUF2:0xf5903ff␍␊
⇥	SD_RSPBUF3:0xd0270132␍␊
⇥	SD_RSPBUF4:0x3f␍␊
⇥	SD_DAT:0x0␍␊
⇥	SD_BLK_SIZE:0x200␍␊
␍␊
⇥	SD_BLK_NUM:0x2␍␊
⇥	SD_BUF_SIZE:0x200␍␊
Current DMA Channel is: 0␍␊
⇥	DMA_MODE:0x80804␍␊
⇥	DMA_SOURCE:0xb0238028␍␊
⇥	DMA_DESTINATION:0x7e903d40␍␊
⇥	DMA_FRAME_LEN:0x2␍␊
⇥	DMA_FRAME_CNT:0x200␍␊
⇥	DMA_REMAIN_FRAME_CNT:0x200␍␊
⇥	DMA_REMAIN_CNT:0x2␍␊
⇥	DMA_SOURCE_STRIDE:0x0␍␊
⇥	DMA_DESTINATION_STRIDE:0x0␍␊
⇥	DMA_START:0x1␍␊
 ** ext4fs_devread read error - block␍␊
Failed to mount ext2 filesystem...␍␊
** Unrecognized filesystem type **␍␊

Aparentemente ele deveria tentar ler a tabela de partição na 0:1, que é onde está os arquivos de boot?

caninos> ls mmc 0:1 /␍␍␊
  7436232   uimage ␍␊
    12835   kernel.dtb ␍␊
      130   uenv.txt ␍␊
            system volume information/␍␊

Usando o comando bootm 1 boota pela imagem na ROM do Labrador. Usando o comando bootm 0 para bootar pelo cartão SD retorna o erro:

Wrong Image Format for bootm command␍␊
ERROR: can't get kernel image!

Consegui. Aparentemente, deve-se apertar sempre o botão ANTES de colocar na fonte. Apertando depois até envia o sinal para carregar pelo cartão e ele tenta carregar, mas por algum motivo não consegue ler. Apertando e segurando o botão antes de ligar na fonte carrega o bootloader do cartão e consegue ler.