# Jetson Xavier NX 介紹 ![e814c4c4c1e70fb90e31d29ba5b01ba2](https://hackmd.io/_uploads/BkDPAvHRp.jpg) NVIDIA 於 2019 發表了針對AI應用設計的 Jetson Xavier NX 運算模組,搭載強效的繪圖處理器(GPU)與SoC,並支援雲端、資料中心、邊緣運算業界廣泛使用的軟體堆疊,與 Jetson 家族產品一樣能夠提供強勁的 AI 運算效能,相當適合用於製造、物流、農業、智慧城市、零售、醫療等產業。 身為 Jetson 家族最新的成員,Jetson Xavier NX 的特色是尺寸小巧、15W以下的電力消耗,且具有相對優異的效能與電力效率表現,它的尺寸與 Jetson Nano 相近,而根據官方提供的數據有著 4 倍的效能表現,相當適合應用於邊緣運算裝置。 ## 規格 ![e814c4c4c1e70fb90e31d29ba5b0a](https://hackmd.io/_uploads/ryiTx_H06.jpg) 基本上 Jetson Xavier NX 開發套件就是把 Jetson Xavier NX 運算模組裝在 I/O 擴充底座上,因此硬體規格大至相同,SoC 方面具有 6 個 Arm v8.2 處理器核心,在 15W功耗設定下最高時脈可達 1.9GHz,次外還有 384 個 CUDA 核心、最高時脈為 1.1GHz 的 Volta 架構繪圖處理器、48 個 Tensor 張量處理器核心與 2 個深度學習加速器(Deep Learning Accelerator)引擎,並搭載 8GB LPDDR4x 記憶體,在 15W 功耗搭配 INT8 運算模式下可以帶來 21TOPs 的 AI 運算效能。2 者最大的不同,在於運算模組內建 16GB eMMC 儲存媒體,開發套件則無,需自行安裝 microSD 卡。 ![e814c4c4c1e70fb90e31d29ba5b0](https://hackmd.io/_uploads/r1TeWdrA6.jpg) 在影像處理能力部分,Jetson Xavier NX 開發套件具有 2 組 MIPI CSI-2 DPHY 攝影機端子,具有最高 2 組 4K、30p 的 H.265、H.264 影像編碼能力,以及最高 2 組 4K、60p 的 H.265 或 2 組 4K、30p 的 H.264 影像編碼能力。 Jetson Xavier NX 運算模組的優點之一就是具有豐富的 I/O端子,提供 4 組 USB 3.1,以及 USB 2.0 Micro-B、GbE 乙太網路、支援 4K 影像輸出的 HDMI 與 DisplayPort 端子各1組,而考量到 Jetson Xavier NX 較強的運算效能與更廣的應用範圍,因此搭載了 M.2 Key E 介面的 Wi-Fi 無線網路、藍牙通訊模組,提供更多元的連線能力,使用者也可以透過 M.2 Key M 插槽安裝 NVMe 傳輸模式的固態硬碟,彈性擴充儲存容量。 以上取自:[Jetson Xavier NX開發套件動手玩軟體篇:原生雲端與容器功能引爆應用潛力](https://www.techbang.com/posts/78502-jetson-xavier-nx-development-kit-hands-on-play-software-native-cloud-and-container-feature-stoicat-application-potential) 以及 [Jetson Xavier NX開發套件動手玩硬體篇:同時執行4個容器榨乾AI電腦](https://www.techbang.com/posts/78524) ## 討論 目前雲端技術越來越先進,只須將影像或聲音訊號透過串流方式輸入進伺服器部屬的服務就可以得到相對應的輸出。 假設自駕車自身有多個傳感器,傳感器會回傳訊號給系統,讓系統去判定車子與前後車輛的距離是否需要煞車,如果系統是部屬在雲端上,可能會因為網路訊號不佳導致訊號傳輸過慢導致車子發生意外。但若將系統部屬在車上便可避免上述情況。 因此在實時系統的情況下比如說上述的自駕車或無人機此類情境就會需要邊緣運算裝置的輔助。 後續會稱 Jetson Xavier NX 開發板簡稱為 Xavier。 # Xavier 重灌 根據[官方教學](https://developer.nvidia.com/embedded/learn/getting-started-jetson),將分為下述步驟: 1. 從 Xavier 上拔出 sd card 2. 下載 [SD Memory Card Formatter](https://www.sdcard.org/downloads/formatter/sd-memory-card-formatter-for-windows-download/) 3. 下載 [Etcher](https://etcher.balena.io/) 4. 下載 [JetPack SDK](https://developer.nvidia.com/embedded/jetpack-sdk-511#collapseJetsonXavierNX) 的 [SD Card Image](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/) 5. 安裝 SD Memory Card Formatter 6. 將 sd card 插入讀卡機(記得把 lock 鎖打開) 7. 打開 SD Memory Card Formatter,將 sd card 格式化 8. 解壓縮 [SD Card Image](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/) 後,透過 [Etcher](https://etcher.balena.io/) 將載好的 [SD Card Image](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/) 燒進 sd card ## 1. 從 Xavier 上拔出 sd card ![Screenshot from 2024-03-18 16-46-38](https://hackmd.io/_uploads/rJ1YJtHCp.png) ## 2. 下載 [SD Memory Card Formatter](https://www.sdcard.org/downloads/formatter/sd-memory-card-formatter-for-windows-download/) ![Screenshot from 2024-03-18 16-19-14](https://hackmd.io/_uploads/B1JmFdHA6.png) ## 3. 下載 [Etcher](https://etcher.balena.io/) ![Screenshot from 2024-03-18 16-20-44](https://hackmd.io/_uploads/HkpvtuHCp.png) ## 4. 下載 [JetPack SDK](https://developer.nvidia.com/embedded/jetpack-sdk-511#collapseJetsonXavierNX) 的 [SD Card Image](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/) ![Screenshot from 2024-03-18 16-21-56](https://hackmd.io/_uploads/SyM2FOB06.png) ## 5. 安裝 SD Memory Card Formatter ![Screenshot from 2024-03-18 16-23-21](https://hackmd.io/_uploads/rk8-9_BCp.png) ## 6. 將 sd card 插入讀卡機(記得把 lock 鎖打開) ![Screenshot from 2024-03-18 16-25-26](https://hackmd.io/_uploads/rJQKqdB0a.png) ## 7. 打開 SD Memory Card Formatter,將 sd card 格式化 ![Screenshot from 2024-03-18 16-27-55](https://hackmd.io/_uploads/HycGsdB06.png) ## 8. 解壓縮 [SD Card Image](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/) 後,透過 [Etcher](https://etcher.balena.io/) 將載好的 [SD Card Image](https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v3.1/sd_card_b49/jp511-xnx-sd-card-image.zip/) 燒進 sd card ![Screenshot from 2024-03-18 16-30-58](https://hackmd.io/_uploads/rkIz2uSAa.png) 選取壓縮後的 SD Card Image ![Screenshot from 2024-03-18 16-31-11](https://hackmd.io/_uploads/HJjW2uBC6.png) 選取 sd card 的目錄 ![Screenshot from 2024-03-18 16-31-25](https://hackmd.io/_uploads/B17vnuHCp.png) 選取好目錄後,就可以開始燒錄了。 ![Screenshot from 2024-03-18 16-31-46](https://hackmd.io/_uploads/Bynm3OB0a.png) :::danger 燒錄時會跳出視窗,提示 xx 槽無法讀取是否需要格式化,此時千萬不要按格式化。若是不小心按了,linux 的系統檔案就會被刪除,到時就無法正常開機了。 ::: # ubuntu 初始化 將燒錄好的 sd card 插回 Xavier 上,這張 sd card 就是 Xavier 的系統碟。 對 Xavier 插上電源,插上螢幕後看到以下畫面: ![Screenshot from 2024-03-18 19-44-47](https://hackmd.io/_uploads/rkQStsBCa.png) 代表燒錄成功,讓 sd card 變成 Xavier 的系統碟。按下同意後就可以進行下一步。 ![Screenshot from 2024-03-18 19-47-44](https://hackmd.io/_uploads/HkzgqoS0T.png) 選取語系,建議選 english,除錯時比較容易找到相關資料。 ![Screenshot from 2024-03-18 19-49-22](https://hackmd.io/_uploads/ryH8cjB06.png) 選擇輸入法,如果後續需要注音輸入法,可以參考[新酷音](https://rickbsr.medium.com/%E5%9C%A8-ubuntu-18-04-lts-%E7%89%88%E4%B8%8A%E5%AE%89%E8%A3%9D-%E6%96%B0%E9%85%B7%E9%9F%B3-%E6%B3%A8%E9%9F%B3%E8%BC%B8%E5%85%A5%E6%B3%95-b059672afdc4)。 ![Screenshot from 2024-03-18 19-54-31](https://hackmd.io/_uploads/BJtKiiB0a.png) 選擇要連線的 wifi。 ![Screenshot from 2024-03-18 19-57-09](https://hackmd.io/_uploads/HkIQ2jS0T.png) 選擇時區,選 taipei。 ![Screenshot from 2024-03-18 19-58-10](https://hackmd.io/_uploads/SymPnsrAp.png) 設定使用稱名稱與密碼,使用者名稱前綴為 cils00XX,XX 看盒子上的號碼。密碼則與使用者名稱一致。 ![Screenshot from 2024-03-18 20-02-01](https://hackmd.io/_uploads/ByqraoHA6.png) 應用程式分割大小,就用預設最大數字。 ![Screenshot from 2024-03-18 20-04-22](https://hackmd.io/_uploads/By50aiBCT.png) 是否要下載瀏覽器,如果先前沒連上網路,就無法下載。 ![Screenshot from 2024-03-18 20-06-26](https://hackmd.io/_uploads/HJ78AoH0p.png) 出現此畫面代表初始化成功。 ![Screenshot from 2024-03-18 20-07-55](https://hackmd.io/_uploads/S1Cs0jS0a.png) 後續就可以進入登入使用者界面。 # Xavier 風扇控制 在預設情況下,Xavier 的風扇是不會動的,即便溫度很高,風扇仍就一絲不動。因此需要透過別人寫好的驅動程式來控制。 先按下 crtl+alt+t 打開 terminal,然後進行下列步驟。 首先先更新軟體的最新資訊及列表: ```shell sudo apt-get update ``` 再下載 PIP 套件: ```shell sudo apt install python3-pip ``` 最後,安裝別人寫好的驅動程式: ```shell sudo pip3 install -U jetson-stats ``` :::info 對 python 有認識的人看到 pip 會覺得熟悉。沒錯,我們安裝的驅動程式 [jetson-stats](https://github.com/rbonghi/jetson_stats) 就是以 python 撰寫。通常我們遇到的驅動程式都會認為是 c 語言撰寫而成的,此案例可以說是打破我們觀念的其中一例。 ::: 將驅動程式打開: ```shell sudo jtop ``` 接著會看到監控畫面,使用方向鍵移動到 `6 CTRL`,接著便可以用鼠標點選黃色箭頭指向的位置。 ![擷取](https://hackmd.io/_uploads/HyJ5TCSAp.png) 之後 Xavier 就會根據溫度來調整風扇速度。 更多相關訊息可以去看 [jetson-stats](https://github.com/rbonghi/jetson_stats)。