こんにちは、えびかずきです。
今回は起動しなくなったJetsonNano2GBをリカバリーモードで復活させる方法を説明していきます。
こんな人におすすめ:
・JetsonNano2GBが突然起動しなくなったので、復活させたい。
・SDK Managerの使い方を学びたい。
先日、私のJetsonNano2GBが突然起動しなくなってしまいました。
SDカードを初期化して新しいブートファイルで試しても、
JetsonNanoからの応答は無し。
色々と試行錯誤した結果、なんとか復活させることができたので、
その時の記録を残しておこうと思います。
結論として、UbuntuのホストPCを用意して、リカバリーモードでSDK Managerと繋げることで復活しました!
開発環境
・Jetson nano 2GB
・ホストPC
マシン:lenovo Thinkpad E440, Corei5
メモリ:8GB
OS:Ubuntu18.04
トラブル状況
ある日突然、Jetoson nano 2GBが起動しなくなりました。
状況としては、マシンの電源を入れてもディスプレイがウンともスンとも動かない。
真っ暗な画面のままOSが起動しないという状況です。
どうやらOSの起動に失敗している模様。
心当たりとしては、Jetsonのストレージでありブートにも使っているSDカードを繰り返し初期化したり、入れ替えたりしたことです。
JetsonにどのJetsonPackを入れるべきか、いろいろSDKのバージョンを変えて試していたところでのトラブルです。
新しいSDカードにブート用のSDKファイルを書き込んでトライしてもダメ。
どうやらJetsonのマシン自体の問題のようです。
あまりSDカードの中身を書き換えたり、初期化したり、やりすぎると良くないのかも。。。
どうやら何かの拍子にブートがうまく働かなくなってしまったようです。
解決方法
ということで、まずはNvidiaの公式フォーラムをあたってみることに。
すると同様の現象に陥っているユーザーの問い合わせがありました。
Jetson Nano 2GB failing to bootup or show anything
彼によれば、Jetson nano 2GBのLEDが緑に光ってマシン自体は起動しているものの、ディスプレイが映らないとの事。
私のトラブルと全く同じ現象です。
これに対するNvidia側の回答は、
SDKmagerでマシンをフラッシュできない試してみてくださいとの事。
なるほど、ではそのとおりにやってみよう!
解決手順
SDKmanagerでマシンをフラッシュする方法は、Nvidiaの公式HPに手順が細かく載っているので、それに従います。
1.LinuxのホストPCを用意する
まずはSDKmanagar動かすためのホストマシンを準備する必要があります。
ホストマシンの要件は公式のNVIDIA SDK Managerに記載があるように以下のとおりです。
ホストマシンの要件:
・仮想環境でないこと
・メモリ8GB以上
割と厳しい条件ですね。
ちなみに仮想環境では本当にダメなのかトライしてみましたが、やはりダメでした。
とういうことで私の場合は、この要件を満たすために新しく中古でPCを購入しました。
実際こんなことするより新しくJetson nano 2GBを買ったほうがダンゼン安いです。
でもこれは私にとって費用の問題ではありません。
なぜなら私にとっては、ブログネタができて逆にありがとうございますという事になるからです(笑)。
Windows10の入ったPCにLinuxをインストールする方法についてはこの記事が参考になりました。
私の場合は、Ubuntu18.04をインストールしました。
2.SDKmanagerをインストールする
ホストPCをにSDKmanagerをインストールします。
公式HPのNVIDIA SDK ManagerからUbuntu向けのものをインストールしてください。
インストールする過程でNvidiaへのユーザー登録が必要になりますので、アナウンスに沿って登録します。
3.Jetson nano 2GBをリカバリーモードで起動する
リカバリモードで起動する手順は公式のQuick Start Guideに記載があります。
その手順は以下のとおり。
まず、16GB以上のSDカードを本体にセットしてやります。
続いて、ジャンパーピンで「FC REC」と「GND」を繋ぎます。
写真赤枠の位置です。
これはFC RECのピンをグランドにつなぐことで、Force Recoveryモードでマシンを起動するということを意味します。
ジャンパーピンは、例えば以下の様な2.54mm(0.1inch)ピッチの製品が使えます。
最後に写真左上の接続端子とホストPCを繋いで、マシンを起動します。
ホストPCとの接続には、microUSB-USBケーブルが必要です。
Jetson nano 2GBがリカバリモードできちんと起動しているかどうかは、ホストPCのターミナルで以下のコマンド打って確認できます。
$ lsusb
これはusbポートに認識されているデバイスの一覧を表示するコマンドですが、以下のような表示が出ていれば、Jetson nanoをきちんと認識できています。
Bus <bbb> Device <ddd>: ID 0955: <nnnn> Nvidia Corp.
4.SDKmanagerでフラッシュする
ターミナルを開いて下のコマンドでSDKmanagerを開きます。
$ sdkmanager
すると、Nvidiaアカウントへのログイン画面が出てきますので、ログインします。
以下のような画面が出てきたら、自分のデバイスに応じてSTEP01~STEP04までのセットアップ条件を選択して、フラッシュを開始します。
私の場合「JetPack4.5.1」をフラッシュしましたが1時間くらいかかりました。
これで完了です。
5.Jetson nano 2GBの起動確認
Jetson nano 2GBを通常モードで起動して、きちんと復活したかどうか確認します。
写真のとおり正常にOSが起動し、復活したことを確認できました。
まとめ
今回は、起動しなくなったJetsonNano2GBをリカバリーモードで復活させる方法について説明しました。
作業自体はSDKmanagerで操作するだけなので簡単なのですが、メモリの大きいホストPCを準備する必要があるので、そこが少し面倒です。
最後にもう一度言っておきますが、仮想環境のUbuntuだと失敗しますのでお気をつけください。
要するにVirtualBoxとかでUbuntu環境を作ってSDKmanagerを起動しても使えませんよという事です。
Jetson nano 2GBが起動しなくなって困っている人がいれば、参考にしてみてください。
今回は以上!
補足
参考にしたフォーラムのユーザーは、結局フラッシュ時にエラーが出て解決できなかったようです。
一方私の場合は、SDKmanagerでフラッシュすると無事復活しています。
MacbookをデュアルブートにしてUbuntuを起動させているみたいなので、そもそもUbuntu向けのメモリが足りてないだけなのかも。。
彼はどうやらインド人のようです。機械学習にも最近インド人の人口が増えてきてますね。
日本人も負けないように頑張りたいですね。
コメントを書く