eMMC에 이미지 플래싱
이 페이지에서는 보드의 eMMC에 전체 이미지를 기록하는 방법을 설명합니다. 예를 들어 생산 라인에서, 직접 설계한 보드에서, 또는 공개 릴리스가 아닌 이미지로 작업할 때 사용합니다. 모든 단계를 직접 실행하므로 보유한 어떤 이미지 파일에도 적용할 수 있습니다.
DevKit을 공개된 SiMa.ai 릴리스로 업데이트하려면 대신 펌웨어 업데이트를 사용하십시오. 이미 부팅되는 보드에서 커널, 디바이스 트리 또는 U-Boot만 교체하려면 아티팩트 설치를 참조하십시오.
시작하기 전에
-
U-Boot 프롬프트까지 진입하는 보드.
-
하드웨어 흐름 제어를 비활성화하고 115200 baud로 설정한, 보드의 U-Boot/Linux UART에 대한 시리얼 연결. 시리얼 연결 구성을 참조하십시오.
-
플래싱할 이미지:
이미지 파일 eLxr elxr-palette-modalix-<version>-arm64.imgYocto simaai-image-minimal-modalix.rootfs.wic.gz및simaai-image-minimal-modalix.rootfs.wic.bmapYocto 파일 이름은 Yocto로 전체 이미지 빌드에서 생성되는 이름입니다. 다른 이미지 레시피를 사용하면 이름이 달라집니다.
-
이더넷과 TFTP 서버를 갖춘 호스트 또는 SD 카드.
보드의 부팅 소스 선택 방식
보드는 eMMC에서 실행 중인 상태로는 eMMC를 덮어쓸 수 없으므로, 먼저 네트워크 또는
SD 카드로 부팅합니다. U-Boot는 boot_targets에 지정된 소스를 순서대로
시도합니다.
| 대상 | 부팅 소스 |
|---|---|
mmc1 | SD 카드 |
mmc0 | eMMC |
dhcp | DHCP로 찾은 TFTP 서버 |
net | 고정 IP 주소의 TFTP 서버 |
기본 순서는 mmc1 mmc0 dhcp net입니다. 순서를 변경하려면 시리얼 콘솔에서 자동
부팅을 중단한 다음 순서를 설정하고 저장하십시오.
sima$ env set boot_targets mmc1 mmc0 net dhcp; saveenv
Saving Environment to FAT... OK
sima$ printenv boot_targets
boot_targets=mmc1 mmc0 net dhcp
sima$ boot
1단계. 네트워크 또는 SD 카드로 부팅
테스트 스테이션에서는 이더넷 포트를 네트워크 스트레스 테스트용으로 비워 둘 수 있으므로 SD 카드 부팅을 권장합니다.
네트워크로 부팅
이 방법은 사용자 자신의 TFTP 서버를 사용하므로 제공할 파일을 직접 선택할 수 있습니다.
네트워크 부팅 복구는 같은 작업을
sima-cli로 수행하며, 공개 릴리스를 대신 다운로드하여 제공합니다.
-
부트 파일을 TFTP 서버의 루트 디렉터리에 복사합니다.
netboot.scr.uimgImage- 디바이스 트리 바이너리(
*.dtb) - 루트 파일 시스템 아카이브: eLxr의 경우
elxr-palette-modalix-arm64.cpio.gz, Yocto의 경우simaai-image-palette-modalix.cpio.gz
-
호스트를 보드의 첫 번째 이더넷 포트(
eth0)에 연결합니다. 보드는192.168.1.20을 사용하므로 호스트에192.168.1.0/24대역의 주소를 할당합니다.sima-user@sima-user-machine:~$ sudo ifconfig <interface_name> 192.168.1.10 up -
보드의 전원을 켜고 자동 부팅을 중단한 다음,
net을 첫 번째 부팅 소스로 지정합니다.sima$ env set boot_targets net mmc0 mmc1 dhcp; saveenvsima$ boot -
Linux가 부팅되면 빌드를 확인하고, 루트 파일 시스템이 RAM에 있는지 (
root=/dev/ram0) 확인합니다.root@modalix:~# cat /etc/buildinforoot@modalix:~# cat /proc/cmdline
SD 카드로 부팅
-
SD 카드에 이미지를 기록합니다. 호스트에서 부트 이미지 생성으로 기록하거나, SD 카드를 삽입한 상태로 네트워크 부팅한 보드에서 (
/dev/mmcblk1) 기록할 수 있습니다.eLxr의 경우:
root@modalix:~# dd if=/tmp/elxr-palette-modalix-<version>-arm64.img of=/dev/mmcblk1 bs=4M status=progress conv=fsyncYocto의 경우
.wic.gz및.wic.bmap파일을 모두 복사한 다음 다음을 실행합니다.root@modalix:~# bmaptool copy /tmp/simaai-image-minimal-modalix.rootfs.wic.gz /dev/mmcblk1그런 다음 파티션 테이블을 복구합니다. 이미지가 카드보다 작기 때문에,
parted로 옮기기 전까지 백업 GPT 헤더가 장치의 끝에 위치하지 않습니다.root@modalix:~# printf "fix\n" | parted ---pretend-input-tty /dev/mmcblk1 print -
재부팅하고 자동 부팅을 중단한 다음
mmc1이 첫 번째인지 확인합니다. 기본값으로는 첫 번째입니다.sima$ env set boot_targets mmc1 mmc0 dhcp net; saveenvsima$ boot -
Linux가 부팅되면
/etc/buildinfo를 확인하고,/proc/cmdline에root=/dev/mmcblk1p*가 있는지 확인합니다.