JetPack4 でJetsonクローンイメージの作成

はじめに

JetPack4でJetsonのイメージをコピー&フラッシュすることができれば,イメージを使用して既に構築してあるJetsonの環境を再構築することができます.

なので,

  • 複数台Jetsonがある環境で一個ずつセットアップする必要(地獄)がなくなる
  • 複数台無くてもJetsonをバックアップしておくことができる.

などなど,いい事ずくめなのでおすすめです.

前提条件

クローンイメージを作成するには以下の条件が必要です.

  • JetPackが準備できているか(次の章で詳しく)
  • JetPackがインストールしているホストPCは最低でも70GBのストレージ容量が必要(イメージを作成するごとに

JetPackの準備

まず,クローンイメージをコピー&フラッシュするにはJetPackの準備が必要です.
このときに準備するJetPackのバージョンは,コピー対象のJetsonやイメージデータを作成したときと
同じバージョンを用意してください.
(おそらくバージョンをあわせずできると思いますが,自己責任で)

JetPackの準備はNVIDIAの公式のドキュメントを参照してください.

公式ドキュメントを参照して,以下の写真のところまですすめる.
※ Jetsonをリカバリーモードにする必要はありません(リカバリーモードにしていた場合は,写真の状態より進みます)
74586619-9feb4300-502c-11ea-91d1-8125db43ac60.png

クローンイメージのコピー

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.shGオプションを使います.
Jetsonをリカバリーモードにした状態でホストPCとUSB接続(microUSB)して,以下のコマンドを実行させる.

この時に

  • my_backup.imgmy_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

参照

TX2 Cloning -NVIDIA DEVELOPER

追記

途中でホスト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はイメージのフラッシュには必要ないので,消しても大丈夫です.

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした