SD 카드를 삽입하면 내장 emmc에서 보드를 부팅할 수 있나요?

SD 카드를 삽입하면 내장 emmc에서 보드를 부팅할 수 있나요?

이것은 U-Boot와 관련된 문제입니다. 어느 사이트에 게시해야 할지 잘 모르겠지만 Ubuntu를 부팅하면 여기에 게시하겠습니다.

기본적으로 저렴한 Nanopi Neo Air와 Allwinner H3 SOC를 구입했습니다. 공식 우분투 20.04 이미지를 사용하고 있습니다. 제공된 elasher 도구를 사용하여 시스템을 온보드 emmc에 플래시했습니다.

온보드 emmc는 내 사용 사례에 비해 너무 작지만 SD 카드보다 빠릅니다. SD 카드를 추가 저장소로 사용하는 동안 시스템이 emmc에서 부팅되기를 원합니다. 그래서 SD 카드를 대형 ext4 파티션으로 포맷하고 시스템을 재부팅했습니다.

부팅할 때 내 u-boot가 삽입된 SD 카드에 만족하지 않습니다. SD 카드가 비어 있더라도 항상 SD 카드에서 부팅됩니다(그래서 전혀 부팅되지 않습니다).

내가 시도한 것
SD 카드에 0을 써서 SD 카드의 모든 데이터를 지워 보았습니다. 그것은 도움이 되지 않습니다.

내가 원하는 것
SD 카드를 삽입한 후 emmc에서 부팅합니다.

어떤 정보라도 감사하겠습니다.

답변1

이는 확실히 가능하지만 부팅 순서와 테스트는 U-Boot 환경 내에서 개별적으로 정의되므로 일반적으로 답변할 수 없습니다. 예를 들어 먼저 mmc에서 부팅을 시도하고 실패할 경우 emmc에서 부팅하는 bootdevs등의 목록을 포함하는 변수가 있을 수 있습니다 . mmc emmc귀하의 경우에는 mmc 시작이 잘못된 테스트를 수행한 것으로 의심됩니다. 어쩌면 SD 카드가 있는지 확인하는 것일 수도 있습니다. 먼저 카드가 있는지 테스트한 다음 ext4 파일 시스템을 테스트하고 마지막으로 /boot/vmlinuz파일 또는 커널 이미지에 대한 경로를 찾도록 테스트를 확장해야 합니다.

U-Boot 구성에 대한 설명이 없다면 이를 리버스 엔지니어링하는 것은 로켓 과학이 아닙니다. printenv bootU-Boot 프롬프트에서 이 작업을 수행하고 어떤 작업을 수행하는지 확인하세요. 다른 명령을 실행할 수 있으며 귀하도 마찬가지입니다 printenv. 일부 명령은 실행 중에 생성되었기 때문에 존재하지 않을 수 있으므로 전체 printenv출력을 보고 명령이 어디서 어떻게 생성되었는지 확인하세요. 구문은 배우기 쉽습니다.

직접 관리할 수 없는 경우 printenv여기에 출력을 게시하면 디버깅 및 확장에 도움을 드릴 수 있습니다.

관련 정보