OSをクリーンインストール - reComputer J1010

Seeed K.K.の松岡です。
わたしが入手したreComputer J1010にプレインストールされているOS、Jetson Linuxのバージョンは32.6.1でした。現在、Jetson Nanoに対応した最新バージョンは32.7.2。ちょこっと古いです。
いろいろとアプリを作った後に入れ替えるのは大変なので、最新バージョンをクリーンインストールしておこうと思います。

Ubuntu x64のホストPCが必要

reComputer J1010のeMMCにJetson Linuxをクリーンインストールするには、L4T Driver PackageとSample Root FilesystemをホストPCにダウンロードしておき、ホストPCからUSBケーブル経由でreComputer J1010のeMMCに書き込みます。
このホストPCは、Ubuntu x64 16.04もしくは18.04しかサポートされていません。

32.7.1 Release Notesから抜粋:

... マジデスカ😔

用意するしかないので、その辺に転がってたノートPC(2010年製)を128GB SSDに換装して、Ubuntu 18.04.6をインストールしました。

本ブログの作業後、複数のJetson Linuxイメージやバックアップイメージを保管し始めたところ、ディスク不足発生。再度、500GB SSDに換装しました。

OSバージョンを選ぶ

Jetson Linuxのバージョンと対応モジュールは、developer.nvidia.comのL4T Archiveページで確認できます。

developer.nvidia.com

Jetson Linuxの最新バージョンは34.1.1のようですが、Jetson Nanoには対応していないようです。
Jetson Nanoに対応した最新バージョンは、Previous Jetson Linux Versionsにある32.7.2でした。

上図の赤丸部分をクリックすると、32.7.2のRelease Pageが表示されます。ここから、ファイルやドキュメントを参照することができます。

ダウンロード

Release Pageにファイルやドキュメントのリンクがたくさんありますが、OSクリーンインストールに必要なファイルは、L4T Driver PackageSample Root Filesystemです。Jetson AGX Xavier, Xavier NX等とJetson Nano, TX1で別ファイルなので、注意してクリック、ダウンロードしましょう。

コマンドでダウンロードしてもOKです。

cd ~/Downloads
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/jetson-210_linux_r32.7.2_aarch64.tbz2
wget https://developer.nvidia.com/embedded/l4t/r32_release_v7.2/t210/tegra_linux_sample-root-filesystem_r32.7.2_aarch64.tbz2

ダウンロードしたファイルは圧縮されている(tbz2)ので、tarコマンドで解凍します。
Sample Root FilesystemはL4T Driver Packageを解凍した後に、Linux_for_Tegra/rootfsディレクトリへ解凍しなければいけません。また、準備事項としてapply_binaries.shの実行が必要なので実行します。

$ mkdir ~/l4t.32.7.2
$ cd ~/l4t.32.7.2
$ tar xf ~/Downloads/Jetson-210_Linux_R32.7.2_aarch64.tbz2
$ cd Linux_for_Tegra/rootfs
$ sudo tar xpf ~/Downloads/Tegra_Linux_Sample-Root-Filesystem_R32.7.2_aarch64.tbz2
$ cd ..
$ sudo ./apply_binaries.sh

apply_binaries.shでパッケージ不足のエラーが発生するときがありました。 そのときは、「これを実行せよ」と親切にメッセージ表示されていたので、そのコマンドを実行後に再度apply_binaries.shを実行すると、エラーが解消されました。
例:
QEMU binary is not available, looking for QEMU from host system
ERROR qemu not found! To install - please run: "sudo apt-get install qemu-user-static"

インストール

ホストPCの準備が整ったので、reComputer J1010のeMMCにクリーンインストールしましょう。

reComputer J1010のButton Header(J14)のPin9(GND)とPin10(FC REC)をジャンパーピンなどでショートしておきます。

そして、USB Type-C Power Connectorに電源供給して、USB Type-C DeviceをホストPCとUSBケーブルで接続します。

lsusbコマンドを実行してNVidia Corp.のデバイスが表示されていれば正常です。

$ lsusb
...
Bus 002 Device 003: ID 0955:7f21 NVidia Corp.
...

L4T Driver Packageに同封されているflash.shを実行すると、reComputer J1010のeMMCにOSがクリーンインストールされます。

$ sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1

待つこと10分。
reComputer J1010が自動的に再起動して、HDMIに接続しておいたディスプレイにJetson LinuxのConfiguration画面が表示されれば成功です。
キーボードとマウスを接続して、ポチポチしてセットアップしましょう。

セットアップが完了した後に、念のためapt upgradeしてディスク残量を確認したところ、8GB程度でした。

$ sudo apt update
$ sudo apt upgrade
$ df -k /
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/mmcblk0p1  14384136 5204828   8428924  39% /

追加インストール

クリーンインストールが完了しましたが、加えて2つ追加インストールしておきます。

Jetson statsをインストール

1つは、Jetson statsです。
Jetsonの諸々情報を簡単に確認できる便利ツールです。

$ sudo apt install python3-pip
$ sudo -H pip3 install jetson-stats

Jetson statsに含まれているjetson_releaseを実行すると、ライブラリがいくつか、というかほとんど入っていないのが分かりました。

$ jetson_release
 - NVIDIA Jetson Nano
   * Jetpack 4.6.2 [L4T 32.7.2]
   * NV Power Mode: MAXN - Type: 0
   * jetson_stats.service: activating
 - Libraries:
   * CUDA: NOT_INSTALLED
   * cuDNN: NOT_INSTALLED
   * TensorRT: NOT_INSTALLED
   * Visionworks: NOT_INSTALLED
   * OpenCV: NOT_INSTALLED compiled CUDA: NO
   * VPI: NOT_INSTALLED
   * Vulkan: 1.2.70

JetPackをインストール

ライブラリを個別にインストールすることも可能ですが、ここではライブラリをまとめてインストールできるnvidia-jetpackを追加します。

$ apt depends nvidia-jetpack
nvidia-jetpack
  Depends: nvidia-cuda (= 4.6.2-b5)
  Depends: nvidia-opencv (= 4.6.2-b5)
  Depends: nvidia-cudnn8 (= 4.6.2-b5)
  Depends: nvidia-tensorrt (= 4.6.2-b5)
  Depends: nvidia-visionworks (= 4.6.2-b5)
  Depends: nvidia-container (= 4.6.2-b5)
  Depends: nvidia-vpi (= 4.6.2-b5)
  Depends: nvidia-l4t-jetson-multimedia-api (>> 32.7-0)
  Depends: nvidia-l4t-jetson-multimedia-api (<< 32.8-0)
$ sudo apt install nvidia-jetpack
...
/usr/bin/mandb: can't write to /var/cache/man/17558: No space left on device
/usr/bin/mandb: can't create index cache /var/cache/man/17558: No space left on device

最後の、mandbでエラーが発生しました。ディスク残量が足りないようです。

$ df -k /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/mmcblk0p1  14384136 11489004   2144748  85% /
$ jetson_release
 - NVIDIA Jetson Nano
   * Jetpack 4.6.2 [L4T 32.7.2]
   * NV Power Mode: MAXN - Type: 0
   * jetson_stats.service: active
 - Libraries:
   * CUDA: 10.2.300
   * cuDNN: 8.2.1.32
   * TensorRT: 8.2.1.8
   * Visionworks: 1.6.0.501
   * OpenCV: 4.1.1 compiled CUDA: NO
   * VPI: ii libnvvpi1 1.2.3 arm64 NVIDIA Vision Programming Interface library
   * Vulkan: 1.2.70

まとめ

  • reComputer J1010へOSクリーンインストールするのに、Ubuntu x64が必要。
  • JetPackライブラリは含まれていないので必要に応じて追加インストール。
  • 内蔵16GB eMMCでいろいろと入れるのは厳しい。

変更履歴

日付 変更者 変更内容
2022/6/2 松岡 作成