1. 程式人生 > 實用技巧 >NVIDIA Jetson AGX Xavier 開機、刷機、換源(親測有效)以及bug列舉及其解決方案【轉】

NVIDIA Jetson AGX Xavier 開機、刷機、換源(親測有效)以及bug列舉及其解決方案【轉】

網站看了好多的教程,這個是最好用的~

更換清華映象源

然後我開始嘗試更換系統桌面,首先我做的事情是更換TX2的國內源,這樣下載東西速度會快一點。我使用的國內源是清華映象源,對於Ubuntu16.04系統,源列表如下:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main universe restricted
# deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main universe restricted
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

對於Ubuntu18.04系統,源列表如下:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

更換的方式也很簡單:開啟終端,切換到/etc/apt/目錄下,先執行命令sudo cp sources.list sources.list.bk備份原來的源列表,然後sudo gedit sources.list,清空檔案內容再根據系統版本新增新的源列表,最後執行sudo apt-get install update更新源即可。

搞笑問題GET

拿到系統有問題的TX2板子本身已經搞笑了(之前有人用過的。。),但是後面的事情更讓人無語。前面兒不是說系統桌面有問題嗎,那換一個就不得咯。在sudo apt-get upgrade更新軟體後沒用,然後我突然靈光一閃(要悲劇了。。):換個Gnome桌面吧!美觀大氣!網上隨便一搜,教程一大堆,裝好重啟後發現,玩完兒!直接黑屏也無法進入桌面,Gnome桌面的相容性有問題。按理說遇到這樣的問題,直接Ctrl+Alt+F1

進入控制檯解除安裝剛安裝的軟體就完事大吉了,但要命的是TX2板子這時候一閃一閃亮晶晶,每隔2、3秒就閃屏一次,鍵盤也是反應巨遲鈍,基本上是輸入N次響應一次的情況,導致進入控制檯後根本無法登入使用者。能想象在這樣惡劣的條件下還是在無提示的情況下輸入nvidia幾個字元密碼的感受嗎?我是深切體會到了,簡直是絕望的趕jio!在失敗了N次後我想就放棄了吧,但是任務在那裡又不能不繼續,這是真的難受。在又嘗試了很多次後,我偶然地發現(哥倫布發現新大陸了簡直。。)在閃屏後極短的一段時間內,暴擊鍵盤是可以輸入一個字元的!哇,簡直了。。然後在接下來的幾分鐘裡,我跟著閃屏的節奏蹦躂蹦躂地硬是登入成功了,真是嗨心!在登陸使用者、解除安裝Gnome桌面後,TX2終於恢復了平靜,也是鬆了一口氣。
可能有人會問,為什麼不直接重新刷機呢?費那勁兒!這就要扯出更扯淡的話題了,因為我拿到的板子刷機的USB口沒了。。不要問是哪個XX乾的,反正就是沒了。。唉,折騰得我!後面重新安裝了Unity桌面,工具欄和邊框倒是出現了,但桌面背景始終是漆黑一片,不過好歹能正常用啊。我給老師反映不能刷機的問題,咱老師想了一下說道:我們不是有兩塊板子嗎?你交換一下核心板,用另外一塊板子刷機不就得了,做人要聰明一點嘛!(哦~~厲害,果然那啥還是老的辣!)總之接下來進入正題,刷機記錄奉上。

準備Host OS

同我們開發嵌入式軟體一樣,要對TX2開發套件刷機需要先準備好一個X64架構的宿主機系統。NVIDIA官方對宿主機系統給出的要求如下:

即至少8GB記憶體的Ubuntu16.04或者Ubuntu18.04系統。上面雖然沒說,但宿主機的磁碟空間也不能太小,否則將不能下載、安裝所需的軟體。一般來說100GB的磁碟空間是合適的。這裡推薦宿主機使用虛擬機器,因為要安裝JetPack到TX2板子上需要在宿主機上安裝CUDA、cuDNN等軟體。安裝在虛擬機器上可以避免同時安裝多個版本的軟體所可能引起的衝突,同時虛擬機器也是支援安裝的。

下載NVIDIA SDK Manager

NVIDIA SDK Manager的官網下載地址為NVIDIA SDK Manager,目前最新的版本是1.2.0,對應的Ubuntu映象版本是18.04,JetPack可選擇4.2 - 4.4之間的版本。下載後在宿主機上執行命令sudo apt install ./sdkmanager-[version].deb進行安裝,對於1.2.0版本,對應的安裝命令為sudo apt install ./sdkmanager_1.2.0-6738_amd64.deb。SDK Manager在執行時對主機記憶體和顯示屏解析度有一定的要求,即最少8GB記憶體和解析度1440x900以上。如果記憶體達不到要求將無法下載、安裝軟體,解析度達不到要求則會導致部分顯示。
NVIDIA SDK Manager的優點大致在於:可獲取最新的系統映象,可根據需求安裝指定版本的JetPack,同時它支援線上下載、離線安裝的模式。這種模型可使得軟體一次下載,多次使用。也就是說有多臺主機的情況下,我們只需下載一次安裝包,就可以在多個宿主機上多次使用,而不用費時費力地在每臺機器上都下載一次。

下載離線安裝包

下載安裝好NVIDIA SDK Manager,並且檢查網路無誤後,即可開啟軟體下載所需的安裝包。我在使用時發現如果使用線上安裝(邊下載邊安裝)的方式,虛擬機器的儲存空間總是報不足的警告,而換成離線安裝的方式則能正常執行,因此推薦使用下載離線安裝包的方式。SDK Manager啟動後的介面如下:

如果沒有NVIDIA賬號需要去官網註冊一個,登陸欄可以選擇登陸NVIDIA賬號,或者選擇無需登陸的OFFLINE離線安裝模式。如果沒有下載離線安裝包,那麼需要先登陸賬號進行安裝包的下載。下載完成後則可以選擇OFFLINE模式進行安裝。登陸NVIDIA賬號後的STEP1介面如下:

在STEP1介面中,需要選擇開發套件的型別以及對應的JetPack版本,我這裡選擇的是Jetson TX2,JetPack選的是4.4DP版本,可按照需求進行選擇。
在STEP1點選CONTINUE後,出現的STEP2介面會載入前一步選擇的安裝包,包括Ubuntu系統映象和JetPack軟體包,使用者可根據需要選擇性下載。需要注意的是,由於網路原因可能導致STEP2載入失敗,沒辦法只能耐心重試。開啟的STEP2介面如下:

在點選同意使用者協議後,即可點選CONTINUE下載軟體。SDK Manager預設採用邊下載邊安裝的方式,如果宿主機的記憶體或儲存空間不足,則會彈出提示不能下載。這時可以勾選下面的Download now, Install later(離線安裝)選項進行下載。如果網路不好的話,下載的過程是非常漫長的,並且中間可能會失敗,要不斷重試,直到安裝包下載完畢。下載完成的介面如下所示:

離線安裝

離線安裝包下載完畢後,點選FINISH AND EXIT選項退出軟體,然後再次開啟軟體,選擇OFFLINE模式,並指定剛才軟體下載的存放目錄作為安裝目錄(預設的目錄是/home/user/Downloads/nvidia/sdkm_downloads)開始進行離線安裝。開啟的OFFLINE介面如下:

點選START按鈕,會出現上面STEP1、STEP2的內容。在STEP1中選擇下載時的選項,STEP2中同意使用者協議,即可進入STEP3中開始離線安裝。SDK Manager會先在宿主機上安裝必要的軟體。安裝完成後,如果STEP2中勾選了Jetson OS的選項,則接著會彈出下面的刷機介面:

SDK Manager提供了兩種刷機模式:手動模式和自動模式。在手動模式下需要TX2板子連線電源但保持關機,並且使用USB線連線到主機。接著按下恢復按鍵,再按下、鬆開電源按鍵開機,期間保持恢復按鍵按下,停頓一會兒後鬆開恢復按鍵,即進入恢復模式。此時在宿主機上可以看到TX2的USB裝置接入(恢復模式下TX2的USB裝置名與正常開機模式下不同),然後點選上面的Flash按鈕,進入漫長的自動刷機過程。
在自動模式中更加簡單,如果TX2板子已經有燒寫過系統,那麼使其正常開機,然後連線USB到主機,使TX2與主機在同一區域網下,在主機上輸入TX2的IP地址、使用者名稱和密碼後,軟體會自動配置TX2進入恢復模式對TX2進行刷機。
注意在刷機過程中不能中斷,當然可以按暫停按鈕,不過那也得等當前步驟安裝完成後才會暫停。在TX2刷機完成後,並不能直接安裝JetPack,需要先把刷機後的TX2板子開機進行初始化,並手動開啟ssh服務後才能繼續通過ssh遠端對TX2板子進行JetPack的安裝。在安裝JetPack的時候不需要連線USB到主機。安裝JetPack的介面如下所示:

要注意的是,在安裝JetPack的過程中,重新開啟SDK Manager時一定不要選中Jetson OS的選項,也不需要連線TX2的USB到主機,不然就可能會重新把TX2板子給刷機一次,白白浪費時間。
在安裝完成後會彈出STEP4安裝完成的介面,到此TX2刷機便已經全部完成。如果在之後有新的JetPack需要安裝,或者要重新整理的系統,都可以再下載然後單獨刷機或者進行安裝。總地來說流程還是比較簡單滴。

注意事項

在安裝過程中,如果出現安裝失敗的提示,不要直接退出軟體,要點選RETRY FAILED ITEMS對失敗的部分重新安裝,不然重新啟動軟體後它會重灌所有選擇的條目。由於網路的原因可能會多次失敗,要一直重試直到所有軟體安裝完畢。還有就是,要確保在安裝JetPack的途中TX2可聯網,因為在宿主機安裝的過程中需要TX2聯網下載一些軟體依賴。最後,宿主機上需要安裝Python,因為在安裝過程中會用到主機上的python命令。

解決這個問題的方案,是切換網路,例如使用手機網路;

同樣下載的時候,網路太慢,也是採用手機的網路才可以的~