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
질문: 첫 번째 파티션( )에 넣으면 안 되나요 /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를 두 번째 파티션에 복사했습니다.
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?)를 찾을 수 있는 일반적인 위치입니다. 파티션 테이블과 첫 번째 파티션의 시작 부분 사이의 사용되지 않는 영역에 위치합니다.
두 번째 질문에 답하다
rootfs 파일은 ext4 파일 시스템 이미지이므로 해당 이미지를 새로 고쳐야 합니다.
sudo dd if=~/Documents/shared_with_VB/bananapi/core-image-minimal-bananapi-20230504112433.rootfs.ext4 of=/mnt/mmcblk0p2 bs=1M
직렬 콘솔에서 시스템 부팅을 보면 쓸모 없는 파일만 있는 지루한 rootfs에 대해 불평하는 것을 볼 수 있습니다( dd
파일을 복사하는 대신 이미지를 복사함).