このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
Jetson AGX Xavierを使っていて動作が不安定な場合にクリーンインストールからやり直すことがありますが、クリーンインストール、追加パッケージインストール、各種設定まで行うとなるとかなり大変になります。さらに同じ環境構築を複数台やる場合は単純に考えても台数分だけ時間が掛かります。そのような背景から、この環境構築の手間を軽減させる解決手段の一つとして、Jetson AGX Xavierの内蔵ストレージの内容をバックアップし、そこからリストアする方法を紹介します。
今回、以下の環境で動作確認を行いました。
Tegra186_Linux_R32.5.1_aarch64.tbz2
Tegra_Linux_Sample-Root-Filesystem_R32.5.1_aarch64.tbz2
母艦PC上で以下のコマンドを実行し、依存パッケージをインストールします。
$ sudo apt-get install qemu-user-static
クローンに用いるスクリプトを実行するため、母艦PC上でL4T Driver Packageを入手し、展開します。
L4T Driver Package (BSP)」
を入手しますL4T Driver Package (BSP)」
というリンクからTegra186_Linux_R32.5.1_aarch64.tbz2
をダウンロードしますTegra186_Linux_R32.5.1_aarch64.tbz2
を$HOME
以下に展開しますクローンに用いるスクリプトを実行するため、母艦PC上でSample Root Filesystemを入手し、展開します。
Sample Root Filesystem
」を入手しますSample Root Filesystem
」というリンクからTegra_Linux_Sample-Root-Filesystem_R32.5.1_aarch64.tbz2
をダウンロードしますTegra_Linux_Sample-Root-Filesystem_R32.5.1_aarch64.tbz2
を$HOME
以下に展開しますその後、以下のコマンドを実行してRoot File Systemを格納し、バイナリを生成します。
$ cd $HOME/Tegra186_Linux_R32.5.1_aarch64/Linux_for_Tegra/rootfs
$ sudo tar -jxpf ../../../Tegra_Linux_Sample-Root-Filesystem_R32.5.1_aarch64.tbz2
$ cd ..
$ sudo ./apply_binaries.sh
ここまでで準備ができたのでバックアップを行います。https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.htmlの「To clone a Jetson device and flash」に以下のコマンド例が書いてあります。
$ sudo ./flash.sh -r -k APP -G <clone> <board> mmcblk0p1
今回はJetson AGX Xavierがターゲットのため、母艦PCにForce Recovery ModeにしたJetson AGX Xavierを接続し、母艦PC上で下記コマンドを実行し、Jetson内蔵ストレージ内容を母艦PCにバックアップします。
$ cd $HOME/Tegra186_Linux_R32.5.1_aarch64/Linux_for_Tegra
$ sudo ./flash.sh -r -k APP -G backup.img jetson-xavier mmcblk0p1
バックアップが終わると$HOME/Tegra186_Linux_R32.5.1_aarch64/Linux_for_Tegra
以下にbackup.img
が生成されます。
ここでは、前節で生成したバックアップデータを使ってリストアを行います。https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/flashing.htmlの「To clone a Jetson device and flash」に以下のコマンド例が書いてあります。
$ sudo cp <clone>.img bootloader/system.img
$ sudo ./flash.sh -r <board> mmcblk0p1
今回はJetson AGX Xavierがターゲットのため、母艦PCにForce Recovery ModeにしたJetson AGX Xavierを接続し、母艦PC上で下記コマンドを実行します。
$ cd $HOME/Tegra186_Linux_R32.5.1_aarch64/Linux_for_Tegra
$ sudo cp backup.img bootloader/system.img
$ sudo ./flash.sh -r jetson-xavier mmcblk0p1
リストアが終わるとクローン作業は完了です。
Jetson AGX Xavier内蔵ストレージ内容をバックアップし、バックアップデータからリストアできるようになったことで、ソフトウェア的に不安定な状態になってもバックアップ時点まですぐに復旧できるようになったり、同じ環境の複製も簡単に行えるようになりました。Jetson AGX Xavierを使っている方の作業効率改善につながれば幸いです。
keisuke.kimura in Livox Mid-360をROS1/ROS2で動かしてみた
Sorry for the delay in replying. I have done SLAM (FAST_LIO) with Livox MID360, but for various reasons I have not be...
Miya in ウエハースケールエンジン向けSimulated Annealingを複数タイルによる並列化で実装しました
作成されたプロファイラがとても良さそうです :) ぜひ詳細を書いていただきたいです!...
Deivaprakash in Livox Mid-360をROS1/ROS2で動かしてみた
Hey guys myself deiva from India currently i am working in this Livox MID360 and eager to knwo whether you have done the...
岩崎システム設計 岩崎 満 in Alveo U50で10G Ethernetを試してみる
仕事の都合で、検索を行い、御社サイトにたどりつきました。 内容は大変参考になりま...
Prabuddhi Wariyapperuma in Livox Mid-360をROS1/ROS2で動かしてみた
This issue was sorted....