NVIDIA Jetson AGX Xavier 是 NVIDIA AGX 系列中的嵌入式系統模組 (SoM),包括一個帶有 Tensor Cores 的整合 Volta GPU、雙深度學習加速器 (DLAs)、八核心 NVIDIA Carmel ARMv8.2 CPU、32GB 256位元 LPDDR4x 記憶體和137GB/s 的記憶體頻寬,以及包括 PCIe Gen 4 和 16 條 MIPI CSI-2 相機通道的650Gbps 高速 I/O。
Jetson AGX Xavier 適用於將電腦視覺和深度學習部署到邊緣,運行 Linux,並在可配置的 10/15/30W 電源配置下提供32 TeraOPS 的計算效能。
Jetson AGX Xavier 目前可作為 Jetson AGX Xavier 開發套件和生產用 Jetson AGX Xavier 獨立計算模組提供。
Jetson AGX Xavier Module Datasheet (link)
The I/O ports are broken out through a carrier board via a 699-pin board-to-board connector
Jetson AGX Xavier Developer Kit (User Guide)
Jetson AGX Xavier Developer Kit Carrier Board Specification
See the online Jetson Linux Developer Guide
How to rebuild kernel for Jetson Linux
https://developer.nvidia.com/embedded/jetson-linux
https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/index.html
OS Ubuntu 20.04
開發板 NVIDIA Jetson AGX Orin Develop Kit (P3730)
NVIDIA® Jetson™ Linux version 35.3.1 GA
JetPack 最新版本 5.1.1
DeepStream 6.2
Last update: April 11, 2023
Jetson AGX Orin 硬體規格
Jetson AGX Xavier硬體規格
JetPack SDK
JetPack SDK 是用於構建 AI 應用程序的綜合資源,SDK 包括具有加速軟件庫、API、示例應用程序、開發人員工具和文檔的 Jetson Linux。
Link: https://developer.nvidia.com/embedded/jetpack
NVIDIA SDK Manager
NVIDIA SDK Manager 是一款一體化工具,它捆綁了開發人員軟件並為 NVIDIA SDK 提供了端到端的開發環境設置解決方案。 SDK 管理器正在使用 .
最新版本:https://developer.nvidia.com/sdk-manager
Link: https://developer.nvidia.com/embedded/downloads#?search=sdk manager
a) 安裝和執行 SDK Manager
STEP01: 點擊 Download SDK Manager
STEP02: 點擊 Instructions to Download and Run SDK Manager
STEP03: 安裝和執行 SDK Manager
參考 link: https://docs.nvidia.com/sdk-manager/download-run-sdkm/index.html
將文件下載到您的主機操作系統。 從終端,通過以下方法之一安裝 SDK 管理器。
sudo apt install ./sdkmanager_[version]-[build#]_amd64.deb
STEP04: 可以使用以下兩種方法之一啟動 SDK Manager:
或點擊:
b) 登錄並運行 SDK Manager
先將開發板連接 Host 系統, SDK Manager 會自動偵測到 Jetson AGX 開發板
如果連接了一個 Jetson 設備(或者連接了多個 Jetson 設備),SDK 管理器將在目標硬件下拉列表中自動選擇它。如果未自動檢測到您的設備,請單擊刷新。
打勾 DeepStream 後,click CONTINUE
下載和安裝
如果您希望 SDK 管理器將所有安裝文件下載到默認路徑以外的位置,請轉到位於屏幕底部的下載和安裝選項,然後選擇您要使用的路徑。
Download now. Install later 不要勾選
Click CONTINUE
當 SDK 管理器準備好刷新您的目標設備時,它會打開一個對話框。提示提供有關準備設備以準備好閃爍的說明。
SDK 管理器支持兩種將 Jetson 目標置於強制恢復模式的選項:
Automatic setup: 通過遠程命令將目標設置為強制恢復模式。這需要設備閃爍並且當前正在運行。請按照閃爍對話框中的說明進行操作。
Manual setup: 通過手動操作將目標設置為強制恢復模式。
您還可以選擇是否預配置 OEM 配置。
Pre-Config:SDK Manager 會使用預定義的配置燒寫目標,燒寫後無需完成系統配置嚮導。
Runtime:目標上沒有設置默認配置,刷機後需要手動完成系統配置嚮導。
從 Jetpack 版本 4.6 開始,Jetson AGX Xavier 和 Orin 模塊可以刷入外部存儲。
根據閃存對話框中的可用選項,選擇要閃存到的外部存儲(EMMC、SDCard、NVMe、USB 或自定義)。
SDK Manager 自動偵測 Jetson AGX IP
只需要輸入使用者帳號和密碼就好
另外需要注意:USB Host 端要使用 USB 2.0 不然會出現錯誤
Jetson AGX 硬體連接
手動進入Force Recovery Mode (強制恢復模式) 步驟可以參考User guide
Jetson AGX 關機的狀態下
先按住Force Recovery Mode 按鈕
再按下 power 按鈕開機 (Force Recovery Mode 按鈕還是按住等待大約10秒)
SDK Manager 自動跳出一個視窗,直接點擊 OK
燒錄 選擇手動燒錄。
給 Jetson AGX 設定 使用者名稱和密碼 (此處都為 tuldp760)
如果能繼續安裝,表示成功設定了,正常安裝
SDK Manager 完成刷機過程後,連接到 Jetson 系統的顯示器將顯示初始設置提示。
作為初始設置過程的一部分,為 Jetson 系統選擇用戶名和密碼。
初始設置過程完成後,Jetson 系統啟動到 Linux 桌面。
在 SDK Manager 的 post-flash 安裝對話框中輸入您在 Jetson 配置期間創建的相同用戶名和密碼。
這部分 如果點擊 skip 就會停止安裝,不會安裝 CUDA 相關的東西
此處先等待 Jetson AGX 開機,登入後,點擊下圖的 INSTALL
參考link: Changing Device Tree and Compiling Kernel for NVIDIA Jetson Xavier NX
https://medium.com/@haoye94/editing-device-tree-and-compiling-kernel-for-nvidia-jetson-xavier-nx-11a1df20939c
需要先登入帳號才能看到全部文件
Link: https://developer.nvidia.com/embedded/downloads
Link: https://developer.nvidia.com/embedded/learn/jetson-agx-orin-devkit-user-guide/index.html
Getting Started with Jetson AGX Orin Developer Kit
Link: https://developer.nvidia.com/embedded/learn/get-started-jetson-agx-orin-devkit
參考link: Changing Device Tree and Compiling Kernel for NVIDIA Jetson Xavier NX
https://medium.com/@haoye94/editing-device-tree-and-compiling-kernel-for-nvidia-jetson-xavier-nx-11a1df20939c
主要步驟分為以下順序:
先到以下網站連結,下載
https://developer.nvidia.com/embedded/jetson-linux
得到以下檔案:
擺放路徑:/home/duchungk7/workspace/NVIDIA_BSP/Jetson_AGX_Xavier/R35.3.1
開啟 terminal 位置:
以下步驟一定要 sudo su (root權限運行)
操作位置在 R35.3.1/
操作位置在 Linux_for_Tegra/
LDK_ROOTFS_DIR variable
操作位置在 Linux_for_Tegra/
顯示這樣表示成功
如果出現類似這種狀況,需要檢查過程是否以 root權限運行
主要是比較燒錄前和燒錄後
目前還沒燒錄,所以沒有 AGX 裝置
需要使用還沒燒錄的SOM
板子硬體連接:
Type-C 連接到 Host 電腦 USB
HDMI 輸出 LCD
網絡線
板卡電源
按住 power 按鈕 大約10秒 關機
關機後按住 recovery 按鈕 大約10秒
在 host 端 terminal 輸入 lsusb 可以看到 NVIDIA 裝置表示已經進入 recovery 模式了
參考:https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/text/IN/QuickStart.html
To Determine Whether the Developer Kit Is in Force Recovery Mode
操作位置在 Linux_for_Tegra/
Host 端燒錄完成,板子會自動開機,進入ubuntu 首次設定流程,可以在這裡設定帳號&密碼等…這樣算成功porting linux 系統了。
https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/text/SD/Kernel.html#sd-kernel
https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/text/SD/Bootloader.html#sd-bootloader
如果為 NVIDIA Jetson 模組設計自定義載板,需要編輯設備樹並從源代碼重新編譯內核,以啟動載板。
module names and P-numbers 參考連結: https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/index.html
由於我們在主機上編譯 Jetson(ARM64 架構),而主機大多是 x86 架構,因此我們需要下載相應的編譯器並進行交叉編譯的設置。所有後續步驟都應該在 Ubuntu 18 和 20 上運行。
查看 通用 toolchain 目前最新版本(此範例不使用):
http://releases.linaro.org/components/toolchain/binaries/
NVIDIA 提供的 JetsonLinuxToolchain(使用此toolchain):
https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/AT/JetsonLinuxToolchain.html
https://developer.nvidia.com/embedded/jetson-linux
下載後,放入目錄:
https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/AT/JetsonLinuxToolchain.html
創建 和 複製 aarch64–glibc–stable-final.tar.gz 到 l4t-gcc/ 目錄, 再進行解壓縮。
To extract the toolchain, enter these commands:
許多建置系統需要您設置環境變數CROSS_COMPILE,以指定要使用的toolchain。要為aarch64 toolchain 設置CROSS_COMPILE,輸入以下命令:
建立一個新目錄 NVIDIA_BSP_CUSTOM/:
(因為之前有下載過,所以複製過來)
在 public_sources.tbz2(BSP sources zip 文件)中,裡面會有很多其他的 zip 文件,但我們只對 kernel_src.tbz2 感興趣。將此文件解壓縮到名為“source”的文件夾中
Extract “Linux_for_Tegra” from Jetson_Linux_R35.3.1_aarch64.tbz2 (it is 35.3.1 at the time of writing)
Extract sample RFS contents into Linux_for_Tegra/rootfs/
NVIDIA 沒有在示例 RFS 中提供此文件,這很奇怪! 我們需要創建一個名為“extlinux”的目錄,並在以下位置創建 extlinux.conf:
Linux_for_Tegra/rootfs/boot/extlinux/extlinux.conf
複製以下訊息貼到 extlinux.conf
請注意,參考鏈接中顯示的是mmcblk0p1,但在這裡我有mmcblk1p1,這是因為我正在使用帶有另一個SD卡插槽(SDMMC3)的自定義載板的開發套件模組。由於開發套件模組有一個SD卡插槽(SDMMC1),我們需要進行此修正,否則它會試圖從錯誤的SD卡引導。我不確定是否需要在生產模組上進行此修正,您需要自行嘗試。
有兩個方法可以客制化 BSP:
注意:
NVIDIA SDK Manager 執行以下操作:
• 安裝 NVIDIA® Jetson™ Linux 驅動程序包
• 配置或刷寫您的 Jetson 設備
• 運行樣本
The bootloader must be loaded from the internal eMMC.
The kernel and DTB can be loaded from:
•An SD card (formatted to GPT)
•A USB drive (formatted to GPT)
•A network (via DHCP/TFTP)
•An NVMe SSD (formatted to GPT)
如果修改 DTS,則必須重建 DTB。
make menuconfig 設定
ls /sys/class/gpio/
sudo cat /sys/kernel/debug/gpio | grep PAA.00
echo 320 > export
2. Data-Sheet Jetson_AGX_Orin_DS-10662-001_v1.2.pdf
3. Jetson_AGX_Orin_Pin_Function_Names_Guide_DA-11060-001_v1.0.pdf
4. NVIDIA Jetson Orin - JetPack 5.0.2 - Compiling Code - Kernel
5. Linux BSP User Guide for jetson series
6. Jetson/L4T BSP development tips
7. How to build NVIDIA a Jetson Xavier NX Kernel
8. Changing Device Tree and Compiling Kernel for NVIDIA Jetson Xavier NX
9. Jetson Module Adaptation and Bring-Up
描述了如何將 Jetson Linux 和 U-Boot 引導加載程序從 Jetson 開發套件移植到其他硬體平台上。
10. Jetson Linux Developer Guide (online version)
11. Jetson Linux Development Tools
討論 NVIDIA® Jetson™ Linux (BSP) 中包含的開發工具。
12. Jetson Xavier NX and Jetson AGX Xavier Boot Flow
13. Choosing a Boot Device for Jetson AGX Xavier Series Platforms
BSP Customization ==> Boot Options
Linux