跳至主要内容

系統更新操作

使用 sima-cli update 操作每日建置、已簽署的 eLxr 3.0 SWU 組合包、A/B 檢查、儲存空間暫存,以及持久性覆蓋層處理。

命令參考:sima-cli update

eLxr 3.0+ 內部每日更新​

內部模式會顯示預先發行警告。在已執行 eLxr 3.0+ 的 Modalix 裝置上,sima-cli -i update 會先查詢 Artifactory。若缺少認證資訊、收到 HTTP 401/403 或 5xx 回應、連線失敗或逾時,會改用每日平台索引。若查詢成功但沒有符合建置,則不會改用備援來源。

sima-cli -i update -f -v 3.0
sima-cli -i update -f -v 3.0.0_daily_develop_B1247

精確符合結果優先。部分查詢會篩選索引,並由新到舊顯示符合結果。只有包含 palette SWU 的建置符合資格。鏡像站下載會在簽署安裝前驗證索引中的大小與 SHA-256。使用 -f 時,Artifactory 成品下載失敗只可改用同一個已選定建置。缺少成品或完整性檢查失敗會在安裝前停止。

執行 eLxr 2.1.3 的裝置保留原有 APT 更新行為及 --force 政策。將這些裝置移轉至 3.0 需要復原或佈建。

eLxr 3.0 已簽署 A/B 更新​

在已佈建 A/B 的 Modalix 系統上,update 會將已簽署的完整系統 SWU 安裝至非作用中槽位,同時保留執行中槽位及 /data。

sima-cli update /path/to/full-system.swu
sima-cli update --ip 192.168.6.5 /path/to/full-system.swu
sima-cli update --inspect
sima-cli update --ip 192.168.6.5 --inspect

暫存作業依序檢查 /data、/media/nvme/swupdate,再檢查 /tmp,需要組合包大小再加 64 MiB 餘裕。SWUpdate 也需要 /tmp 中的解壓縮空間。若 /tmp 位於 RAM,即使 df 顯示空間足夠,仍會檢查可用 RAM。只有在系統仍保留至少 512 MiB 或 RAM 的 10%(取較大者)時,才可針對目前掛載擴大專用 tmpfs。--dryrun 只回報可行的擴充,不變更掛載。

除 --dryrun 外,使用 NVMe 前會以讀寫模式掛載或重新掛載。成功安裝後立即移除下載的組合包與暫存內容。失敗時保留暫存組合包供診斷;絕不移除使用者提供的來源檔案。

遠端更新在主機下載,傳輸到選定的板端儲存空間、驗證傳輸校驗碼,再於板端執行 SWUpdate。本機與遠端模式都會驗證已簽署組合包並選取 update,full。若沒有 /etc/swupdate/public.pem,會暫時佈建隨附的 SiMa 憑證,之後移除;既有金鑰會保留。--force 只改變鏡像站備援行為,絕不停用簽章驗證。

成功安裝後需要重新開機。使用 --reboot 時,遠端更新會重新連線並驗證新槽位及健康確認。連線中斷或安裝失敗應先檢查,再重試。

A/B 檢查​

--inspect 顯示兩個槽位、版本與有效性、執行中及下次開機槽位、待處理更新與回復狀態,以及開機次數。絕不下載或安裝韌體、切換槽位、重新開機,或自我更新 sima-cli。

對持久性覆蓋層映像,檢查會先驗證底層裝置,再從 /oldroot 的原始根檔案系統讀取作用中版本。必要時會停用日誌重播,暫時將另一個根檔案系統掛載為唯讀,然後還原先前 LVM 啟用狀態。缺失或無法驗證的中繼資料維持未知。

處理持久性覆蓋層自訂內容​

檢查與一般 3.0 更新會顯示唯讀的覆蓋層概覽。報告比較實際生效與下層的 dpkg 資料庫,並將上層項目分類為設定/服務、本機軟體候選、刪除項目、套件狀態、快取/日誌及其他檔案。--verbose 加入完整套件比較與各類別數量。

當 simaai-palette-* 指出不同的套件集合建置 ID 時,sima-cli 會警告持久性中繼資料來自較早映像,且 APT 可能回報錯誤版本或混用映像與覆蓋層檔案。複製至上層的檔案不會自動被視為刻意自訂;無法取得或讀取的基準資料會直接回報,不會猜測。

更新期間若套件建置不相符,會提供清理覆蓋層流程:

  1. 驗證選定 SWU 支援 SWUPDATE_CLEAN_OVERLAY。
  2. 在 /data/.overlay-backup 儲存清冊並計算校驗碼。
  3. 啟用覆蓋層清理後執行 SWUpdate。
  4. 印出重新開機後的驗證與重新安裝指引。

使用 -y 時,偵測到不相符會自動選擇清理。未使用 -y 時,使用者可保留覆蓋層。缺少清理契約的組合包會在安裝或備份前被拒絕。清冊記錄套件選擇、映像識別資訊、路徑、擁有權及權限,但不包含檔案內容、dpkg 資料庫、APT 快取或完整上層。這是復原資訊,不是自動還原封存檔。遠端 DevKit 也可透過 --ip 使用相同流程。