I have phyBOARD-MIRA i.MX6 development board from PHYTEC. It comes with preinstalled barebox bootloader on NAND Flash, and one can build embedded Linux distribution (more or less) easily using Yocto and documentation of PHYTEC.
I have built new embedded Linux distribution using Yocto (with new barebox), I have copied it to SD Card as shown later below, set switch S2 on phyBOARD-MIRA i.MX6 to ON so that Linux boots from SD Card, and I was happy with how it works. Barebox bootloader is still old Barebox from NAND Flash.
Now I am trying to flash everything from this SD Card to NAND Flash on embedded board. When I stop autoboot of embedded board and try flashing barebox like this:
barebox_update -t nand /dev/mmc0.barebox
I get following error:
UPDATE: Image is not of type ARM barebox image but of type MBR sector
update failed
This is what is written in documentation of PHYTEC:
In case that your phyBOARD-Mira i.MX 6 does not start anymore due to a damaged bootloader, you need to boot from an SD card. This SD card must be formatted in a special way, because the i.MX 6 does not use file systems. Instead it is hard coded at which sectors of the SD card the i.MX 6 expects the bootloader.
Bitbake, a tool integrated in Yocto, builds an image with the ending *.sdcard which fulfills the requirements mentioned above. So we can copy this image to an SD card with the help of dd.
Now use the following command to create your bootable SD card:
sudo dd if=phytec‐qt5demo‐image‐phyboard‐mira‐imx6‐*.sdcard
of=/dev/<DEVICE>
I am using dd to create bootable sd card, I am only using Cygwin dd instead on normal dd from Linux. They are probably same, but SD card seems to still have old NTFS or exFAT filesystem which is bad for my barebox. I have three components of embedded Linux distribution which stem from this *.sdcard file: barebox, linuximage and oftree, but MBR sector at the beginning of SD card seems to make SD card less usable.
I am writing to SD card with command:
dd if=phytec-qt5demo-image-phyboard-mira-imx6-3.sdcard of=/dev/sdb bs=1M conv=fsync
Did anyone have similar problems, and is there anything more useful than this dd command?
已解决! 转到解答。