はじめに
JetPack4でJetsonのイメージをコピー&フラッシュすることができれば,イメージを使用して既に構築してあるJetsonの環境を再構築することができます.
なので,
- 複数台Jetsonがある環境で一個ずつセットアップする必要(地獄)がなくなる.
- 複数台無くてもJetsonをバックアップしておくことができる.
などなど,いい事ずくめなのでおすすめです.
前提条件
クローンイメージを作成するには以下の条件が必要です.
- JetPackが準備できているか(次の章で詳しく)
- JetPackがインストールしているホストPCは最低でも70GBのストレージ容量が必要(イメージを作成するごとに)
JetPackの準備
まず,クローンイメージをコピー&フラッシュするにはJetPackの準備が必要です.
このときに準備するJetPackのバージョンは,コピー対象のJetsonやイメージデータを作成したときと
同じバージョンを用意してください.
(おそらくバージョンをあわせずできると思いますが,自己責任で)
JetPackの準備はNVIDIAの公式のドキュメントを参照してください.
公式ドキュメントを参照して,以下の写真のところまですすめる.
※ Jetsonをリカバリーモードにする必要はありません(リカバリーモードにしていた場合は,写真の状態より進みます)
クローンイメージのコピー
1. flash.shへ移動
クローンイメージをコピーするにはflash.sh
を使用します.
なので,flash.shのある場所に移動してください.
この時に
- JetPack_4.3のところは使用しているJetPackのバージョンによります.
- P3310は,Jetson TX2のモデルネームです.
- P3310 (Jetson TX2)
- P3448-0020 (Jetson Nano)
- P2888 (Jetson AGX Xavier)
に注意しておこなってください.
$ cd ~/nvidia/nvidia_sdk/JetPack_4.3_Linux_P3310/Linux_for_Tegra
2. コピーの実行
クローンイメージをコピーするにはflash.sh
のGオプションを使います.
Jetsonをリカバリーモードにした状態でホストPCとUSB接続(microUSB)して,以下のコマンドを実行させる.
この時に
-
my_backup.img
のmy_backup
の部分はイメージデータのファイルの名前になるので勝手に変えて大丈夫です. -
jetson-tx2
の部分はイメージをコピーする対象のJetsonに変更してください.- jetson-tx2
- jetson-nano-emmc
- jetson-xavier
- PCのストレージ残容量が70GB以下の場合イメージデータをコピーをすると容量オーバーする場合があるので気をつけてください.
に注意しておこなってください.
$ sudo ./flash.sh -r -k APP -G my_backup.img jetson-tx2 mmcblk0p1
環境によりますが40分ほど待てば,クローンイメージのコピーは完了です.
クローンイメージのフラッシュ
1. コピーしたイメージデータの移動
コピーしたイメージデータ (xxxxxx.img)を~/nvidia/nvidia_sdk/JetPack_X.X_Linux_PXXXX/Linux_for_Terga/bootloader
にあるsystem.img
と置き換えてください
xxxxxx.img.raw
は使用しません.
※ この時にコピーする前のPCのストレージ残容量が70GB以下の場合イメージデータをコピーをすると容量オーバーする場合があるので気をつけてください.
2. フラッシュ
次にコピーしたイメージを入れるJetsonをリカバリーモードにした状態でホストPCとUSB接続(microUSB)して以下のコマンドを実行することでフラッシュできます.
※ jetson-tx2
の部分はイメージをコピー対象のJetsonに変更してください.
- jetson-tx2
- jetson-nano-emmc
- jetson-xavier
$ sudo ./flash.sh -r jetson-tx2 mmcblk0p1
環境によりますが20分ほどまてば,クローンイメージのフラッシュは完了です.
お疲れ様でした.
JetPack3 の場合
今現在使用している方がいるかわかりませんが,JetPack3以下ではflash.sh
にGオプションが対応していないので以下のサイトにあるflash.shを持ってくる必要があります.
https://devtalk.nvidia.com/default/topic/1000105/jetson-tx2/tx2-cloning/post/5111893/#5111893
上のURLにあるflash.shを持ってくるのは大変なのでGitHub Gistにあげておきました.
以下のコマンドを実行させることでダウンロードできます.
$ wget https://gist.githubusercontent.com/takayan660/34308575d306333494f93c6d20cb9f75/raw/8b1ddbad912a35a06020557692e51535ae9c4896/flash.sh
参照
#追記
途中でホストPCには最低70GB必要と記入しましたが,その内訳はコピーしたxxxxxx.img
(最大32GB)とxxxxxx.img.raw
(約32GB)を合わせた最大容量です.
xxxxxx.img
はJetsonのクローンイメージデータなので,Jetsonで使用している容量によりこのファイルの容量がきまります.
(例えば,Jetson内部で16GB使用していれば,xxxxxx.img
も16GBほどになります.)
なので正確には,45GBほどから70GBほどの空き容量が必要です.
また,xxxxxx.img
は必要ですが,xxxxxx.img.raw
はイメージのフラッシュには必要ないので,消しても大丈夫です.