跳至主要内容

建置與套用更新套件

更新套件可在不重新寫入整個 eMMC 的情況下,更換電路板上的軟體。Yocto layer 會將其建置為 SWUpdate 套件,也就是 .swu 檔案。電路板會將新軟體寫入目前未使用的那一份、切換過去,並在新軟體無法開機時回到先前的根檔案系統。本頁適用於以使用 Yocto 建置完整映像檔建置的映像檔。

尚未在硬體上驗證

本頁的套件已於 2026-10-06 以該 layer 的 2.1.3 版本提交建置過一次,但尚未套用到電路板。

更新的運作方式​

eMMC 中存有兩份 U-Boot、兩份開機目錄與兩份根檔案系統,請參閱分割區配置。更新會執行下列動作:

  1. 將新的根檔案系統與新的 U-Boot 寫入未使用的那一份。
  2. 將新的核心、device tree 與 overlay 複製到未使用的開機目錄(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
Device tree 與 overlay電路板的 .dtb 檔案與所有 .dtbo 檔案
更新描述檔與指令碼sw-description 與 update_modalix.sh
備註

在公開的 layer 中,sw-description 將根檔案系統指定為 simaai-image-palette-modalix.rootfs.ext4.gz,而 recipe 打包的卻是 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 中的項目相符。在公開的 layer 中,兩者分別為 simaai-image-palette 與 1.0。更新完成後,電路板會重新開機。

  3. 重新開機後,檢查執行中映像檔的建置版本:

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

復原​

本頁未涵蓋的內容​

  • eLxr 映像檔的更新套件。
  • 經過簽署的更新套件。
  • 成功開機後,電路板如何將更新標記為正常。

後續步驟​