デュアルブートでUbuntuを起動すれば良いのですが、セットアップが面倒なのと、手持ちのx86_64 PCはストレージを分割するには小さいこともあり、WSL2でJetPackのセットアップを頑張りました。
本来はホストマシンにx86_64のUbuntuを用意していれば何事もなくセットアップが終わるのですが、世の中の多くの方は所有していないらしくNVIDIAのコミュニティでは怨嗟の声が絶えません。
本来のやり方から逸脱して、VMやWSLに入れたUbuntuでsdkmanager
のフラッシュコマンドを実行する……そのような横着をNVIDIAさんは許してくれないのか、処理中に何回かUSBの接続を切ってエラーになる実装となっています。
先人に習う
こちらの方は手動でUSB接続を復帰すれば良いと書いています。
しかしながら…v5.1は早すぎて手動接続は無理ゲーでした。
記事に書かれているセットアップですが、今回用意したWLSのディストリビューションはUbuntu 20.04なのでqemu-arm問題は起きません。
あまり困ることもなく、先に進んでいくとフラッシュコマンドの実行でUSB接続が切れて先に進めません。
sudo ./apply_binaries.sh
sudo ./nvsdkmanager_flash.sh
人の手で無理ならコードを書き換えたら良いじゃない
どうも「USB接続が切れてから復帰までに手動でUSBを接続しなおすの無理ゲーじゃね?」と暫く悩みましたが、何度か観測していると、どうやらRebooting to recovery mode
の場所でUSBが切断されていることが切断音とメッセージのタイミングから予測できました。
Linux_for_Tegra
フォルダにある、bootloader/tegraflash_internal.py
にスリープを仕込みます。
$ vi bootloader/tegraflash_internal.py
info_print('Rebooting to recovery mode')
time.sleep(10)
これで、USBの接続が切れても手動回復する時間の確保に成功しました。
拍手👏
今日もつまらないことに時間を使ってしまった。。orz