以前在 TK1 的時代,要更新 Rootfs、kernel 以及 u-boot 等等…都需要使用 flash .sh 這個 tool 來重燒機器。現在我們可以使用 Nvidia 發布的 OTA 工具來更新機器。目前 OTA 只支援 Jetson Xavier NX 、Jetson AGX Xavier series 和 Jetson TX2 series 。
目前最新的 L4T 是 r32.6。可以透過 OTA 升級至 r32.6 的 L4T 版本如下表所示。
升級至r32.6
|
||
載板
|
模組
|
可從哪個版本升級
|
NVIDIA Jetson TX2
|
原始的Jetson TX2 module (不含Jetson TX2i 、Jetson TX2 4GB等等)
|
r28.2、r28.3、r28.4、r32.1、r32.2、r32.3、r32.4、r32.5
|
NVIDIA Jetson TX2 NX
|
Jetson TX2 NX
|
r32.5
|
NVIDIA® Jetson AGX Xavier™
|
所有 Jetson AGX Xavier 系列的模組
|
r32.1、r32.2、r32.3、r32.4、r32.5
|
NVIDIA Jetson Xavier NX
|
所有 Jetson Xavier NX 模組
|
r32.4、r32.5
|
本文將對 Jetson Xavier NX eMMC (P3668-0001) 模組 從r32.4.4 升級至 r32.5.2 做測試。
1. 下載安裝 L4T
請至官網下載L4T。如果要從r32.4升級至 r32.5的話,需要下載三個不同的L4T版本。一個是從哪個版本開始升級 (例如 r32.4.4) 、升級到哪個版本(例如 r32.5.2) 、目前 Nvidia 最新release的版本 (例如 r32.6.1)。
建立三個資料夾。分別為 L4T_r32-4-4 、 L4T_r32-5-2 和 L4T_r32-6-1。
將下載下來的 Tegra186_Linux_<rel>_aarch64.tbz2 和 Tegra_Linux_Sample-Root-Filesystem_<rel>_aarch64.tbz2 放入相對應的資料夾。然後分別執行以下指令 將 Linux_for_Tegra 準備好。
其中 <rel> 為 R32.4.4 、R32.5.2 和 R32.6.1。
2. 下載 ota_tool
一樣至官網下載 Nvidia發布的ota_tool 。但是要去下載最新發布的版本。以本文寫作的時間點為 r32.6.1。
將下載下來的 ota_tools_R32.6.1_aarch64.tbz2 放置於與L4T_r32-4-4 、 L4T_r32-5-2 和 L4T_r32-6-1同一層目錄。
3. 編譯 ota_payload_package.tar.gz
在同一層目錄底下新增一 build.sh 內容為:
存檔後,執行以下命令產生 ota_payload_package.tar.gz 。
這個Script的內容主要是根據官網的ota步驟所寫的。如果你的 TARGET_BSP 和TOT_BSP 是一樣的,比如說都是 R32.6.1。那就可以執行完 Step 4 後直接跳到Step 12。
最後 ota_payload_package.tar.gz 會生成於 L4T_r32-5-2/Linux_for_Tegra/bootloader/jetson-xavier-nx-devkit-emmc 底下。
4. 測試 ota_payload_package.tar.gz
首先在 Jetson Xavier NX 上的 /boot/extlinux/extlinux.conf 確定是否有以下的設定。如果沒有請加上去。
Init RD
Kerenl Command Line
確定有以上的設定後,建立一資料夾名為 ota,並將ota_payload_package.tar.gz 以及 ota_tools_R32.6.1_aarch64.tbz2 複製進ota資料夾中。
解壓縮ota_tools_R32.6.1_aarch64.tbz2。
執行OTA。
如果都沒有問題的話,Jetson Xavier NX 重新開機並執行OTA。
那之後就可以設計一個OTA的Server,將 ota_payload_package.tar.gz 下載到機器上。然後驗證package的正確性後,便觸發OTA。
參考連結