多亏yocto,我成功地编译了一个linux发行版。我有4个不同的文件,它们是:
bootloader u-boot-sunxi-with-spl.bin-bananapi-2020.01-r0
kernel uImage--5.4.111-r0-bananapi-20230504112433.bin
rootfs core-image-minimal-bananapi-20230504112433.rootfs.ext4
device tree sun7i-a20-bananapi--5.4.111-r0-bananapi-20230504112433.dtb我遵循https://linux-sunxi.org/Bootable_标清_卡片上的指令
我所做的事情如下:
label: dos
label-id: 0x65bf9d54
device: /dev/mmcblk0
unit: sectors
/dev/mmcblk0p1 : start= 2048, size= 204800, type=6, bootable
/dev/mmcblk0p2 : start= 206848, size= 60225536, type=83dd if=u-boot-sunxi-with-spl.bin of=${card} bs=1024 seek=8我没有使用上面的代码,而是使用了以下代码:
dd if=u-boot-sunxi-with-spl.bin-bananapi-2020.01-r0 of=/dev/mmcblk0 bs=1024 seek=8这是输出:
965+1 records in
965+1 records out
494399 bytes (494 kB, 483 KiB) copied, 0.117692 s, 4.2 MB/sQuestion:我不应该 dd到第一个分区(**/dev/mmcblk0p1**)吗?
sudo cp uImage--5.4.111-r0-bananapi-20230504112433.bin /mnt/mmcblk0p1 sudo cp ~/Documents/shared_with_VB/bananapi/sun7i-a20-bananapi--5.4.111-r0-bananapi-20230504112433.dtb /mnt/mmcblk0p1sudo cp ~/Documents/shared_with_VB/bananapi/core-image-minimal-bananapi-20230504112433.rootfs.ext4 /mnt/mmcblk0p2然后我把SD卡放在板子上,打开电源板,什么也没发生。
Question:我犯了什么错误,或者有人能建议该采取什么步骤或遵循什么?
发布于 2023-05-26 14:25:32
Answer到第一个问题
不是的。第一个分区是一个胖卷,其中used将找到要启动的内核和使用的设备树。但U本身需要放在别的地方。从SD卡开始的8 kByte偏移是一个常见的地方,其中第一阶段引导加载器(SPL?)会找到的。它位于分区表和第一个分区的开始之间的一个未使用的区域内。
Answer到第二个问题
您的rootfs文件是一个ext4文件系统映像,因此您需要闪存该映像:
sudo dd if=~/Documents/shared_with_VB/bananapi/core-image-minimal-bananapi-20230504112433.rootfs.ext4 of=/mnt/mmcblk0p2 bs=1M如果您在一个串行控制台上观看系统的启动,您可能会看到它抱怨一个无聊的rootfs只有一个无用的文件(复制的是图像而不是dd)。
https://unix.stackexchange.com/questions/747106
复制相似问题