Estou escrevendo o script de programação de firmware (MLO, u-boot.img, uImage (ver 3.12), dtb, rootfs.tar.gz) para a placa personalizada baseada em am335x.
O sistema rootfile deve ser colocado no eMMC. O script de programação de firmware é executado como o do script init da pasta nfsroot quando a placa é inicializada pela primeira vez na estação de programação.
Basicamente script
1. Partições do eMMC e do
2. escreve MLO, u-boot.img, uImage, dtb na área bruta da primeira partição e
3. Em seguida, formata as outras partições como ext4 e
4. monta partições ext4 e extila o rootfs.tar.gz.
Agora existem dois problemas com o script e um com a área de memória de backup do kernel.
Problemas de script
Aqui está o comando sfdisk que eu usei
#Partition emmc
sfdisk -D -H 255 -S 63 -C 467 /dev/mmcblk0 -uM << EOF
,32,C,*
,200,L
,200,L
,,E
,100,L
,60,L
,200,L
;1269,L
;
EOF
Quando eu listo as partições de 8 partições do fdisk / sfdisk, mas não vejo arquivos de partição relacionados à 8ª partição.
Aqui está a saída do fdisk para o mesmo,
# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 3841 MB, 3841982464 bytes
255 heads, 63 sectors/track, 467 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 1 5 40131 c Win95 FAT32 (LBA)
/dev/mmcblk0p2 6 31 208845 83 Linux
/dev/mmcblk0p3 32 57 208845 83 Linux
/dev/mmcblk0p4 58 467 3293325 5 Extended
/dev/mmcblk0p5 58 70 104391 83 Linux
/dev/mmcblk0p6 71 78 64228+ 83 Linux
/dev/mmcblk0p7 79 104 208813+ 83 Linux
/dev/mmcblk0p8 105 266 1301233+ 83 Linux
/dev/mmcblk0p9 267 467 1614501 83 Linux
problema de memória do eMMC
Primeira partição do eMMC é do tipo "Win95 FAT32 (LBA)" Não estamos formatando essa partição e a usando como matéria-prima.
Existem 3 cópias de MLO, 2 cópias de u-boot.img, uImage e dtb nessa partição.
Agora, depois de tentar várias vezes a piscar usando o dd, a área de memória da primeira cópia do uImage está corrompida e a placa reclama a imagem nessa partição que está corrompida.
Agora, se o eMMC está tendo o controlador de controle de desgaste e o mecanismo de correção de erros, como a memória onde o kernel está armazenado está corrompida?
Alguma sugestão / ideias / indicações para algum dos problemas mencionados?
Tags udev fdisk linux shell-script sfdisk