1. 程式人生 > >Jetson TX2 刷機

Jetson TX2 刷機

其實官方和網上的其他教程都很詳細了,只要保證硬體連線方面沒有什麼錯誤,基本不會有問題。過程中注意一點:Jetson TX2和宿主機Host必須連線在同一個路由器之下,Host會先把作業系統刷到TX2上,這一步是通過資料線連線的方式完成,然後使用SSH的方式安裝Host上的SDK到TX2,所以Host和TX2需要連線在同一個路由器下,方便Host找到TX2的ip地址。主要參考:
https://v.qq.com/x/page/b0515967lbr.html
https://www.jianshu.com/p/bb4587014349

不過安裝過程中因為各種硬體問題,還是踩了無數個坑,特此記錄下來:

  1. TX2是ARM處理器,所以很多電腦上使用的開發平臺,比如cuda,cudnn,opencv等等都不適用,所以我們選擇用nvidia專門為開發板製作的jetpack開發工具進行刷機。
    之前不清楚,直接去官網下載ubuntu版本的cuda,現在想想真是蠢的不行,ubuntu版本的cuda雖然能在安裝了ubuntu系統的TX2開發板上安裝,但是奈何硬體不支援,裝了也肯定跑不起來。

  2. 關於虛擬機器。
    因為當時手邊沒有自帶ubuntu系統的宿主機,所以我們想安裝虛擬機器完成對TX2開發板的刷機。不過刷機過程需要聯網,而網上教程強調虛擬機器刷機上網需要橋接模式,而且勾選複製物理結構,所以我們開始嘗試用橋接模式使虛擬機器聯網。經過嘗試發現:
    (1)在路由器寬頻撥號後,直接連宿主機,橋接模式可行,虛擬機器可以聯網。
    (2)如果宿主機連線的不是寬頻,比如校園網,需要登陸賬號密碼,則橋接模式不可行。
    (3)NAT模式可以使虛擬機器聯網,但是NAT模式刷機到底能不能行,沒有試過。

  3. 雙系統。
    鑑於我們手邊沒有寬頻,沒有路由器,只有交換機,所以,我們選擇裝雙系統,避免使用虛擬機器無法使用橋接模式聯網的尷尬。

  4. 交換機。
    安裝完ubuntu系統,開始刷機時,發現當網路介面連上交換機,宿主機和TX2也都連上交換機以後,發現宿主機登陸校園網賬號密碼後可以上網,但是TX2開發板還是網路未連線的狀態,這說明宿主機和開發板直接其實通訊是斷開的。
    這種狀態強制刷機,會使得宿主機上jetpack的安裝工作能夠完成,但是之後會卡在“determine ip address”,就是因為宿主機和TX2通訊斷開,宿主機無法用SSH的方式安裝宿主機的SDK到TX2。
    所以,雖然網線都連上了,但是交換機只起到兩根網線連線的作用,第3個口其實是斷的,這種情況也不知道是交換機本身有問題,還是我們的使用方法有問題,沒有深究,大概是我們不太會用吧,所以我們最後還是換了個路由器,也建議大家用路由器,比較方便好用。

  5. manifest is broken(清單檔案被破壞)?
    之前因為出現過“determine ip address”,有點慌,所以一通瞎幾把操作,退出後,再次執行jetpack.run檔案時,出現了“manifest file is broken”的錯誤,之後重灌了系統,還是沒用,所以可能是這個run檔案被損壞了,但是我換了一個,還是出現同樣的錯誤,很奇怪,我又換了一個版本的run檔案,換了安裝路徑,終於可以了。
    這個問題有點玄學,我也沒太懂,不過可以肯定和重灌系統沒有什麼關係,大概還是之前的run檔案被損壞了,需要重新下載個,如果還是不行就換一個安裝路徑執行run檔案。

踩完了上面n個大坑之後,感覺豁然開朗,思路很清晰了,所以之後按照教程,一次完成,非常通暢,希望其他同學如果遇到同樣的問題,還是耐心一點,多花時間,總會解決的,回過頭來看其實非常簡單的。