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_SD_card
私がしたことは次のようになりました。
- パーティションを作成し、ファイルシステムをパーティションに設定しました。これがSDカードの現在の状況です。
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=83
- ドキュメントによると、フラッシュスタートコードは次のようになります。
dd 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/s
dd
Q:最初のパーティション()に入れてはいけませんか/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/mmcblk0p1
- rootfsを2番目のパーティションにコピーしました。
sudo cp ~/Documents/shared_with_VB/bananapi/core-image-minimal-bananapi-20230504112433.rootfs.ext4 /mnt/mmcblk0p2
その後、SDカードをボードに挿入してボードに電源を入れましたが、何も起こりませんでした。
質問:私が間違っているのですか?または、誰かが取るべき措置や従うべき措置を提案できますか?
ベストアンサー1
最初の質問に答える
習慣。最初のパーティションは、U-Bootが起動するカーネルと使用するデバイスツリーを見つけるFATボリュームです。ただし、U-Boot自体は別の場所に配置する必要があります。 SDカードの初めから8kByteのオフセットは、フェーズ1ブートローダ(SPL?)を見つけるための一般的な場所です。パーティションテーブルと最初のパーティションの先頭の間の未使用領域にあります。
2番目の質問に答える
rootfsファイルはext4ファイルシステムイメージであるため、そのイメージを更新する必要があります。
sudo dd if=~/Documents/shared_with_VB/bananapi/core-image-minimal-bananapi-20230504112433.rootfs.ext4 of=/mnt/mmcblk0p2 bs=1M
シリアルコンソールでシステムブートを見ると、役に立たないファイルだけがある退屈なrootfsについて文句を言うことができます(dd
ファイルをコピーするのではなくイメージをコピーします)。