본문으로 건너뛰기

업데이트 패키지 빌드 및 적용

업데이트 패키지를 사용하면 eMMC 전체를 다시 기록하지 않고 보드의 소프트웨어를 교체할 수 있습니다. Yocto 레이어는 이를 SWUpdate 패키지(.swu 파일)로 빌드합니다. 보드는 새 소프트웨어를 현재 사용하지 않는 쪽 사본에 기록한 뒤 그쪽으로 전환하며, 새 소프트웨어가 부팅되지 않으면 이전 루트 파일 시스템으로 되돌아갑니다. 이 페이지는 Yocto로 전체 이미지 빌드로 빌드한 이미지에 적용됩니다.

하드웨어에서 아직 검증되지 않음

이 페이지의 패키지는 2026-10-06에 릴리스 2.1.3 커밋의 레이어로 한 번 빌드했습니다. 보드에 적용해 보지는 않았습니다.

업데이트 동작 방식​

eMMC에는 U-Boot, 부트 디렉터리, 루트 파일 시스템이 각각 두 벌씩 들어 있습니다. 파티션 구성을 참조하십시오. 업데이트는 다음을 수행합니다.

  1. 새 루트 파일 시스템과 새 U-Boot를 사용하지 않는 쪽 사본에 기록합니다.
  2. 새 커널, 디바이스 트리, 오버레이를 사용하지 않는 쪽 부트 디렉터리(boot-0 또는 boot-1)에 복사합니다.
  3. 보드를 새 사본으로 전환하고, U-Boot 환경에서 upgrade_available을 1로, bootcount를 0으로 설정한 다음 재부팅합니다.

새 소프트웨어의 부팅 실패 횟수가 bootlimit에서 허용하는 값을 넘으면, U-Boot는 이전 루트 파일 시스템으로 되돌리고 upgrade_available을 해제합니다.

패키지 빌드​

먼저 이미지를 빌드한 다음, 같은 빌드 디렉터리에서 패키지를 빌드하십시오.

sima-user@sima-user-machine:~/build$ MACHINE=modalix bitbake simaai-image-minimal-upgrade

패키지는 simaai-image-minimal-upgrade-modalix.rootfs.swu이며, 이미지와 함께 tmp/deploy/images/modalix에 생성됩니다. 내용은 다음과 같습니다.

구성 요소파일
루트 파일 시스템이미지의 .rootfs.ext4.gz 파일
U-Bootu-boot.bin 및 부트 스크립트 boot.scr.uimg
커널Image 및 Image.enc
디바이스 트리 및 오버레이보드의 .dtb 파일과 모든 .dtbo 파일
업데이트 설명 및 스크립트sw-description 및 update_modalix.sh
노트

공개 레이어에서 sw-description은 루트 파일 시스템으로 simaai-image-palette-modalix.rootfs.ext4.gz를 지정하지만, 레시피는 simaai-image-minimal의 루트 파일 시스템을 패키지에 넣습니다. 패키지를 빌드하기 전에 두 이름을 일치시키십시오. 이름이 일치하지 않아도 빌드는 성공하며, 불일치는 보고되지 않습니다.

패키지 적용​

  1. .swu 파일을 보드에 복사합니다.

  2. root로 swupdate를 실행합니다.

    root@modalix:~# swupdate -v -H simaai-image-palette:1.0 -i /tmp/update.swu

    -H 뒤의 이름과 리비전은 sw-description의 항목과 일치해야 합니다. 공개 레이어에서는 simaai-image-palette와 1.0입니다. 업데이트가 끝나면 보드가 재부팅됩니다.

  3. 재부팅한 후 실행 중인 이미지의 빌드 버전을 확인합니다.

    root@modalix:~# grep SIMA_BUILD_VERSION /etc/buildinfo

복구​

  • 새 이미지가 부팅되지 않으면 업데이트 동작 방식에서 설명한 대로 U-Boot가 스스로 이전 루트 파일 시스템으로 되돌아갑니다.
  • 두 사본 모두 부팅되지 않으면 전체 이미지를 다시 기록하십시오. eMMC에 이미지 플래싱을 참조하십시오.

다루지 않는 내용​

  • eLxr 이미지용 업데이트 패키지.
  • 서명된 업데이트 패키지.
  • 부팅에 성공한 뒤 보드가 업데이트를 정상으로 표시하는 방식.

다음 단계​