nvidia jetsonTX2 のImageファイル、dtbファイルを指定したflash方法
はじめに
大変大変、何が大変かって、一番大変なのは、nvidia Jetsonの環境を壊してしまったときですよね。
なんとか環境をもとに戻したくても、ほしい情報が殆どない。
それは、各状況においてやるべきことが異なるからでしょう。
というわけで、本日はnvidia JetsonTX2の環境修復の方法をメモがてらアップしておきたいと思います。
問題
nvidia JetsonTX2で、apt upgrade後に、
- USBキーボードが効かなくなってしまった!
- 接続しているカメラ等のデバイスが見えなくなってしまった!
(通常apt upgradeはインストール済みのパッケージをアップデートするだけなので、このようなことは起こらないらしいですが、Jetpack4.4では不具合があり、今回このような事象が起きたようです。)
やりたいこと
nvidia JetsonTX2の環境を、自前のカーネル(Imageファイル), デバイスツリーバイナリ(.dtbファイル)を使って初期化(flash)する。
前提
準備するべきハードウェア
nvidia JetsonTX2(以後TX2と略す)
host PC: TX2と接続してflashする用
USB cable(microUSB - USB A): host PCとTX2を接続する用
前提とするソフトウェア
hostPC OS: Ubuntu18.04
Jetpack4.4 on host PC
Image: 自前の使いたいLinux kernel
*.dtb: 自前の使いたいdevice tree binary
flash方法
TX2とhost PCをUSBケーブルで直接接続
これをしておかないと、Jetpackのsdkmanagerのインストール時にコケます。
recovery modeでTX2を起動
TX2の電源ケーブルを接続し、
boot前に、Recovery buttonを長押しし、押している間に
Reset buttonをポチッと押し、
2秒以上経ってから、Recovery buttonを離す
(host PCにて、lsusbコマンドで、新たにNvidia~と出ていれば接続できています)
nvidiaのarchiveページからJetpackをhost PCにダウンロード(今回は初めにflashしたバージョンが4.4だったので、それを使います)。
host PCでカーネルを指定してflash
sudo ./flash.sh -r -k kernel -K <your Image> jetson-tx2 mmcblk0p1
e.g. sudo ./flash.sh -r -k kernel -K production/Image jetson-tx2 mmcblk0p1
- host PCでdtbファイルを指定してもう一度flash
sudo ./flash.sh -r -k kernel-dtb -d <your .dtb> jetson-tx2 mmcblk0p1
e.g. sudo ./flash.sh -r -k kernel-dtb -d production/tegra186-quill-p3310-1000-a00-00.dtb jetson-tx2 mmcblk0p1
- host PCでjepack 4.4からCUDA関連ライブラリをインストール
sdkmanager
TX2とhost PCをUSBケーブルで直接接続
これをしておかないと、Jetpackのsdkmanagerのインストール時にコケます。
recovery modeでTX2を起動
TX2の電源ケーブルを接続し、
boot前に、Recovery buttonを長押しし、押している間に
Reset buttonをポチッと押し、
2秒以上経ってから、Recovery buttonを離す
(host PCにて、lsusbコマンドで、新たにNvidia~と出ていれば接続できています)
nvidiaのarchiveページからJetpackをhost PCにダウンロード(今回は初めにflashしたバージョンが4.4だったので、それを使います)。
host PCでカーネルを指定してflash
sudo ./flash.sh -r -k kernel -K <your Image> jetson-tx2 mmcblk0p1
e.g. sudo ./flash.sh -r -k kernel -K production/Image jetson-tx2 mmcblk0p1
sudo ./flash.sh -r -k kernel-dtb -d <your .dtb> jetson-tx2 mmcblk0p1
e.g. sudo ./flash.sh -r -k kernel-dtb -d production/tegra186-quill-p3310-1000-a00-00.dtb jetson-tx2 mmcblk0p1
sdkmanager
でjetpackのsdkmanagerを開き、GUI上で操作する。
このとき、host PCに特にCUDA関連のライブラリを新たにセットアップする必要がなければ、hostPCのチェックボックスを外す。
また、sdkmanager上で必要なjetpackバージョン(今回は4.4)を選択する。
- 必要なライブラリをaptでインストールする
参考
TX2にUSB有線接続している間に、TX2にsshで入るには
と打てばよい。、、、すみません、いつもそれでいいのかは知りません。
終わりに
できてみれば結局ポイントはflashコマンドのオプション指定だけだったのですが、-d等で指定しているにも関わらず、-kオプションで何を焼きたいか書かなければいけないあたりが、普通のオプションの指定方法に対して、冗長な気がして、わかりにくいですよね。それでハマって数日費やしてしまったので、皆さんが時間を浪費せずにすめば幸いです。
それでは皆様、素敵なjetsonライフをお過ごしください!
Author And Source
この問題について(nvidia jetsonTX2 のImageファイル、dtbファイルを指定したflash方法), 我々は、より多くの情報をここで見つけました https://qiita.com/Mas-sensyn/items/0334a4df984bc94d651b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .