# Jetson AGX Xavier 系統環境設定1_在windows10環境連接與安裝 ###### tags: `Edge AI` `Nvidia` `Jetson` `AGX Xavier` `System Setup` ![](https://i.imgur.com/S5QFcnE.png =800x) ## NVIDIA Jetson 平台佈署相關筆記 ### 基本環境設定 - [Jetson AGX Xavier 系統環境設定1_在windows10環境連接與安裝](https://hackmd.io/@YungHuiHsu/HJ2lcU4Rj) - [Jetson AGX Xavier 系統環境設定2_Docker安裝或從源程式碼編譯](https://hackmd.io/k-lnDTxVQDWo_V13WEnfOg) - [NVIDIA Container Toolkit 安裝筆記](https://hackmd.io/wADvyemZRDOeEduJXA9X7g) - [Jetson 邊緣裝置查詢系統性能指令jtop](https://hackmd.io/VXXV3T5GRIKi6ap8SkR-tg) - [Jetson Network Setup 網路設定](https://hackmd.io/WiqAB7pLSpm2863N2ISGXQ) - [OpenCV turns on cuda acceleration in Nvidia Jetson platform<br>OpenCV在Nvidia Jetson平台開啟cuda加速](https://hackmd.io/6IloyiWMQ_qbIpIE_c_1GA) ### 模型佈署與加速 - [[Object Detection_YOLO] YOLOv7 論文筆記](https://hackmd.io/xhLeIsoSToW0jL61QRWDcQ) - [Deploy YOLOv7 on Nvidia Jetson](https://hackmd.io/kZftj6AgQmWJsbXsswIwEQ) - [Convert PyTorch model to TensorRT for 3-6x speedup<br>將PyTorch模型轉換為TensorRT,實現3-6倍加速](https://hackmd.io/_oaJhYNqTvyL_h01X1Fdmw?both) - [Accelerate multi-streaming cameras with DeepStream and deploy YOLO series models<br>使用DeepStream加速多串流攝影機並佈署佈署YOLO系列模型](https://hackmd.io/@YungHuiHsu/rJKx-tv4h) - [Use Deepstream python API to extract the model output tensor and customize model post-processing (e.g., YOLO-Pose)<br>使用Deepstream python API提取模型輸出張量並定製模型后處理(如:YOLO-Pose)](https://hackmd.io/@YungHuiHsu/rk41ISKY2) - [Model Quantization Note 模型量化筆記](https://hackmd.io/riYLcrp1RuKHpVI22oEAXA) --- # Nvidia官方導覽文件[Hello AI World](https://github.com/dusty-nv/jetson-inference) 內含手把手教學 - 中文介紹 [Hello AI World (一):環境準備與安裝](https://ithelp.ithome.com.tw/articles/10299233?sc=rss.iron) --- 以下是使用公司筆電的windows系統,在鎖隨身碟、沒有無線網卡、無法接網路線的艱困環境下的環境設置紀錄。 可以的話,直接自組配一個Linux系統或是筆電透過SSD外接Linux環境可以簡化操作步驟 ## Document - 官方文件入口網站[Autonomous Machines/Learn/Getting Started](https://developer.nvidia.com/embedded/learn/getting-started-jetson) - JETSON AGX XAVIER使用手冊 - [JETSON AGX XAVIER DEVELOPER KIT_User Guide](https://developer.nvidia.com/embedded/downloads#?search=Jetson%20AGX%20Xavier%20Developer%20Kit%20User%20Guide) - NVIDIA Developer 的教學短片 - [NVIDIA Jetson AGX Xavier Developer Kit Initial Setup](https://www.youtube.com/watch?v=-nX8eD7FusQ) ## 硬體外觀 | ![](https://i.imgur.com/WcXJEPf.jpg =200x) | ![](https://i.imgur.com/1coMm7i.jpg =200x) | ![](https://i.imgur.com/IATq1mP.jpg =200x) | |:------------------------------------------:| ------------------------------------------ |:------------------------------------------:| ![](https://i.imgur.com/87Dvpv0.png =400x) ![](https://i.imgur.com/AAYIYUj.png =500x) - 面對開關左側的USB type C 記得要空下來連接筆電做系統更新用 - J512 can be used to flash the developer kit. - 用J512這個位置的USB連接 Ubuntu Linux x64 18.04 或 16.04 以上的電腦 - 參閱[NVIDIA SDK Manager Documentation](https://docs.nvidia.com/sdk-manager/download-run-sdkm/index.html) ## 連接PC/NB - 使用USBA3.0 轉type C的線與筆電連接 ![](https://i.imgur.com/FzSbMSX.jpg =200x) - 如果有順利的話(記得要連結在裝置前端J512那個接口,而且確認是USB3.0的線) - 到控制台確認是否有正確抓到裝置 ![](https://i.imgur.com/aprXylj.png =300x) ## 系統設定[Setting up Jetson with JetPack](https://github.com/dusty-nv/jetson-inference/blob/master/docs/jetpack-setup-2.md) Jeston主機已經有內建Ubuntu環境,如果要重新安裝的話,需要一台Ubuntu環境的Host主機執行Nvidia SDK Manager來進行重刷機 - 可以在windows 系統安裝Ubuntu虛擬機執行 - 需使用 VMWare - [Virtual Box 在usb裝置通訊上有問題](https://forums.developer.nvidia.com/t/flash-jetson-nano-os-stuck-at-99-9/73065) - ==在 AGX Xavier安裝JetPack 5.0 在外接裝置上有相容性問題== - [Jetson AGX Xavier Developer Kit: Tips and Tricks to Save You Time and Sanity](https://dalegi.com/2022/07/27/jetson-agx-xavier-developer-kit-tips-and-tricks-to-save-you-time-and-sanity/) - 個人測試JetPack 5.1可抓到外接隨身碟、羅技外接攝影機正常運作 - 另一個問題是,JetPack 5.1安裝在32G的儲存空間後只剩6G不到的可用空間,L4T R35.x對應的Docker Linux 檔案(L4T R34.x以後)也太過肥大,會導致無法使用container,可考慮以下解法 - 直接把系統安裝在外接的usb隨身碟上,建議至少64G(~~SD卡官方論壇說不支援~~) - [AGX Xavier安裝系統在sd卡上成功紀錄](https://hankliao.medium.com/nvidia-jetson-agx-xavier-%E5%95%9F%E5%8B%95-%E7%87%92%E6%A9%9F%E6%95%99%E5%AD%B8-b21339550f06) - 或著都不開doker直接用源碼編譯 - 或安裝JetPack 4.6版(L4T R32.x)節省儲存空間 ### NVIDIA JetPack SDK9 工具安裝 略... - [Jetson AGX Xavier Developer Kit: Tips and Tricks to Save You Time and Sanity](https://dalegi.com/2022/07/27/jetson-agx-xavier-developer-kit-tips-and-tricks-to-save-you-time-and-sanity/) #### NVIDIA JetPack SDK9 與系統安裝後,有兩種方式使用裝置 1. 直接在邊緣裝置上操作 - 直接接鍵盤、滑鼠、顯示器、網路 2. 連結筆電/PC 原本以為只能在LINUX系統使用,後來發現windows系統也可以,在`L4T-README/README-usb-dev-mode.txt` 有提到windws系統設定方法 ## 操作_直接在邊緣裝置上操作 由於公司沒配無線藍芽接收器、外部的機台沒申請也無法接線,這邊採取的做法是透過USB連接到筆電的方式取得網路 - 將公司筆電以安全模式進入,先抓取`L4T-README`目錄內的文件檔 這邊提到RNDIS USB Ethernet device會自動安裝,但公司筆電可能因為隨身碟讀取被沒有進展到這一步,USB設定見下列文件說明 ### 共用網路設定 #### 官方文件L4T-README/README-usb-dev-mode.txt中的說明 :::spoiler > ### Using Ethernet Protocol > An RNDIS USB Ethernet device is created, and the required driver is > automatically installed. You can safely ignore the message that the NCM device > is unknown. Depending on the Windows version you have, you might need to > disable the NCM device. > > To configure your host as a gateway for Jetson: > > 1. Click Control Panel -> Network and Internet -> Network Connections. > > 2. Edit the "Remote NDIS Compatible Device" interface and configure "Property". > > 3. Ensure that the IP address is 192.168.55.100. If Windows always gives you > another IP address, for example, 192.168.137, you might need to configure a > static IP address. > > 4. Click Control Panel -> Network and Internet -> Network Connections. > > 5. Edit the interface of your public interface and configure "Property". > > 6. On the Sharing tab, enable the "Allow other network users to connect through > this computer's internet connection" option. > > 7. In the "Home networking connection" menu, select the RNDIS interface. ::: #### 共用網路設定步驟 - 從`Control Panel -> Network and Internet -> Network Connections`選取筆電的WIFI共用設定 - 勾選允許共用設定,並在`家用網路連線`選取RNDIS interface,我這邊的顯示名稱為"乙太網路2" ![](https://i.imgur.com/mJ616hB.png =400x) - 至Remote NDIS(我這邊的顯示名稱是"乙太網路2") `IPv4`手動設置靜態ip位址`192.168.55.100` ![](https://i.imgur.com/kTXnKIK.png =500x) - 在windows 的powershell以ssh連線`ssh username@192.168.55.1` 登入 - 參考文件給Jetson的預設ip設定"Linux for Tegra assigns a static IPv4 address of 192.168.55.1 to Jetson" - 以`ping 8.8.8.8` (8.8.8.8是google的DNS伺服器IP位址,因為很好記所以用他)檢查是否有正確開啟網路共用設定 - 成功的話會看到像這樣 ![](https://i.imgur.com/GPYBEZp.png =500x) :::warning 網路連線不穩定、非常慢 ::: #### 網路解決方案 - 獨立連接網路 ##### 網路線方案 申請開通公司MAC address的連線權限,以網路線連接插座 網路相關設定見 [Jetson Network Setup](https://hackmd.io/@YungHuiHsu/HyQJdNxx2) ## 操作_透過PC/NB ### 使用指令模式連線_putty ### 使用圖形介面通過網路連線 #### 安裝 VNC Server 在Jetson裝置(Linux for Tegra system)安裝VNC server後,可以允許透過網路訪問、並以圖形介面操作。 以下依照官方文件檔"README-vnc.txt"執行或參考[Autonomous/MachinesLearn/Tutorials/Setting Up VNC](https://developer.nvidia.com/embedded/learn/tutorials/vnc-setup) #### 安裝 VNC Server 開啟或遠端連線(ssh)Jetson裝置terminal ``` sudo apt update sudo apt install vino ``` #### 啟用 VNC Server - 啟用VNC Server,在每次登錄時啟動 ``` mkdir -p ~/.config/autostart cp /usr/share/applications/vino-server.desktop ~/.config/autostart ``` - 設定 VNC server ``` gsettings set org.gnome.Vino prompt-enabled false gsettings set org.gnome.Vino require-encryption false ``` - 設定個人密碼 ``` gsettings set org.gnome.Vino authentication-methods "['vnc']" gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64) ``` - 重開機讓設定生效 ``` sudo reboot ``` #### 連線到 VNC server ##### Nvidia Suggested, but failed > 第1步:選擇想要的VNC瀏覽器安裝 > 第2步:啟動VNC瀏覽器,並鍵入你的開發工具包的IP地址。在裝置上以`ifconfig`查詢。預設是"192.168.55.1" > 第3步:如果你已經配置了VNC服務器的認證,提供VNC密碼 - Anydesk also failed 由於公司筆電與網域鎖VNC軟體但可以安裝Anydesk,因此改為嘗試在Jetson也裝Anydesk。 - 在jetson 上嘗試安裝ARM架構版本,從 Raspberry Pi 環境的頁面下載`wget https://download.anydesk.com/rpi/anydesk_6.1.1-1_armhf.deb` - 以`sudo dpkg -i anydesk_6.1.1-1_armhf.deb`安裝後無法啟動 ##### noVNC: HTML VNC Client Library and Application - [noVNC](https://github.com/novnc/noVNC) - [流暢的linux桌面連線體驗(noVNC)](https://ithelp.ithome.com.tw/articles/10190191) - [nano安装noVNC实现webVNC](https://blog.csdn.net/wgqabc/article/details/123598530) Not yet test... #### 暫時性解決方案 - 用Flask建立串流傳送桌面畫面 - 區網內OpenCV + Flask 快速搭建簡易的影像串流 server - [KodingWork/raspberry_pi/video_streaming_with_opencv_flask/](https://github.com/Jim-Chang/KodingWork/tree/master/raspberry_pi/video_streaming_with_opencv_flask) --- 環境安裝好後,接下來進入程式編譯的部分 使用 [jetson-stats 套件](https://hackmd.io/@YungHuiHsu/H1kx5WdJn)檢視系統狀態 ![](https://i.imgur.com/N4cILzQ.png =800x) --- ## 參考資料 - [NVIDIA JETSON AGX XAVIER試玩-範例篇](https://pondahai.medium.com/nvidia-jetson-agx-xavier%E8%A9%A6%E7%8E%A9-%E7%AF%84%E4%BE%8B%E7%AF%87-c48a7a4bbeac) - [NVIDIA Jetson AGX Xavier Developer kit 開箱開機!](https://blog.cavedu.com/2019/03/13/nvidia-jetson-xavier/) #### 遠端圖形界面設定VNC - [Nvidia AGX Xavier/Jetson Nano遠端登入remote by VNC](https://hollyqood.wordpress.com/2019/04/25/nvidia-agx-xavier%E9%81%A0%E7%AB%AF%E7%99%BB%E5%85%A5remote-by-vnc%E6%8C%89%E5%9C%96%E6%96%BD%E5%B7%A5%E4%BF%9D%E8%AD%89%E6%88%90%E5%8A%9F%E7%89%88%E6%9C%AC/)