2019-09-28

CentOS 8 (1905) のインストール

CentOS は、Red Hat Enterprise Linux (RHEL) と機能的に互換性があることを目指したフリーの Linux ディストリビューションです。ターゲットは RHEL と同様に企業のサーバやデスクトップ環境の構築としています。また、ライセンス費用が無償であるにもかかわらず、非常に長いサポート期間のあることが特徴です。

Wikipedia より抜粋、修正

9/24 にリリースされた CentOS 8 (1905) について、一般的だと考えられるインストール手順をまとめました。

なお、本記事では説明用のスクリーンショットを取得する都合で、GNOME Boxes の仮想環境上で CentOS-8-x86_64-1905-dvd1.iso を使ってインストールしています。

インストーラーの起動

インストーラーが起動します。

言語とキーボードレイアウトの設定

無事インストーラを起動できると、最初に言語とキーボードのレイアウトを設定する画面になります。

ここでは「日本語」を設定しました。

インストール前の設定

インストール概要の画面が表示されます。

インストール概要の画面

インストール前に必要な設定は下記の9項目ですが、キーボードと言語サポートは設定済みです。また、デフォルトのままで良い場合もありますので、ここでは青線を付けている三項目を設定します。

  • 地域設定
    • キーボード(K)✔
    • 言語サポート(L)✔
    • 時刻と日付(T)
  • ソフトウェア
    • インストールソース(I)
    • ソフトウェアの選択(S)
      • CentOS 7 ではこの項目はデフォルトで「最小限のインストール」になっていましたが、CentOS 8 では「サーバー(GUI使用)」になりました。そのため、デスクトップ環境を使う場合には、特に設定を変更する必要がなくなりました。
  • システム

日付と時刻

タイムゾーンの設定をします。

ここでは日本がある場所をクリック(地域:アジア、都市:東京)して、日本の標準時に設定します。

「ネットワーク時刻(N)」をオンにすると、NTP でネットワーク時刻の時刻と同期します。

【参考】第5章 Chrony スイートを使用した NTP の設定 Red Hat Enterprise Linux 8 | Red Hat Customer Portal

デバイスの選択

インストール先のデバイスを選択します。

ネットワークとホスト名

インストール後でも設定ができますが、ここで設定をしてしまいます。

インストールの開始

インストールの開始(B) ボタンをクリックしてインストールを開始します。

インストール中

バックグラウンドで OS のインストール処理が進む間に root アカウントのパスワードとユーザーアカウントの設定をします。

ユーザーの設定の画面

root パスワード

root アカウントのパスワードを設定します。

ユーザーの作成

ログインできるユーザーのアカウントをひとつ作成します。「□ このユーザーを管理者にする(M)」にチェックを入れておくと sudo で root 権限を持つことができるようになります。

インストールの完了

画面右下の 再起動(R)ボタンをクリックして再起動します。

なお、インストール用のメディアを取り除かなくとも、再起動後にインストールした先が起動するようになっているようです。

インストール後の最初の起動

初期セットアップ 〜 ライセンス契約

CentOS 8 Linux を使用するには EULA に同意する必要があります。下記、一番目の画面で「License Information」をクリックします。EULA に同意できるのであれば、二番目の画面下「□ ライセンス契約に同意します。(A)」にチェックを入れて同意し、左上の 完了 ボタンをクリックします。最後の画面右下 設定の完了(F) をクリックして終了します。

作成したユーザーアカウントでログイン

ログイン画面が表示されますので、インストール時に作成したユーザーアカウントとパスワードでログインします。

ログイン後の設定を行います。

ログイン後の設定が終わり、今度は初めて使う方へヘルプ画面が表示されます。この画面右上の X をクリックしてウインドウを閉じるとデスクトップ画面があらわれます。

以上でインストールから最初のログインまでの流れの説明は終わりです。

GNOME デスクトップ画面

参考サイト

  1. ja/Manuals/ReleaseNotes/CentOS8.1905 - CentOS Wiki
  2. 標準的な RHEL インストールの実行 Red Hat Enterprise Linux 8 | Red Hat Customer Portal

 

ブログランキング・にほんブログ村へにほんブログ村

2019-09-27

Jetson Nano でディープラーニング (3)

NVIDIA Jetson Nano 開発者キットは、組込み設計者や研究者、個人開発者がコンパクトで使いやすいプラットフォームに本格的なソフトウェアを実装して最先端の AI を活用できるようにするコンピューターで、64 ビット クアッドコア ARM CPU と 128 コアの NVIDIA GPU により 472 GFLOPS の演算性能を発揮します。

偶然 Amazon.jp で見つけて、9 月の後半三連休にセットアップしようと即注文してしまいました。使いこなせるようになるまでの試行錯誤をまとめていきます。

私は R で機械学習を利用したデータ解析、具体的には多変量の異常値の検出や、モデルの学習・予測に携わってきました。今回、NVIDIA Jetson Nano でディープラーニングに取り組むにあたって、Python がプログラミングの主役になることは想定内だったのですが、勝手が違い過ぎてずいぶんと戸惑っています。

"Hello AI World"ってなんですか?

NVIDIA の Getting Started With Jetson Nano Developer Kit のサイトに従って microSD カードに OS などのイメージを書き込んで起動するところまで進むと、次の Next Steps で、Jetson Nano を使って AI コンピュータを使ってみる段階に入ります。このページに Hello AI World のリンクがあるので、最初に試すのに最適なのだろうとクリックすると、最終的に参考サイト [1] の GitHub の jetson-inference プロジェクトのサイトに辿り着きます。

どうやらこのデモは、既に学習済みのモデルがいくつもあって、それらを用いて画像を認識して Inference(推論)するプログラムのようです。この GitHub のサイトには英文ですが丁寧な説明があります。ひとつひとつ進めてみます。

Jetson に JetPack をインストール

NVIDIA JetPack は AIコンピュータービジョンのアプリケーションを開発し、デプロイするための包括的な SDK で、以下が含まれているとのことです。

  • L4T Kernel / BSP
  • CUDA Toolkit
  • cuDNN
  • TensorRT
  • OpenCV
  • VisionWorks
  • Multimedia API's

NVIDIA の Jetson シリーズの他のものは判りませんが、Jetson Nano の場合は、作成した microSD カードのイメージの中に含まれているそうです。

そう言われても…、それらはどこにあるのでしょうか? /usr/local および /usr/local/bin 以下はこんな感じです。

Jetson Nano: /usr/local 以下

一方、dpkg コマンドで、Jetpack に関連のありそうな deb パッケージを検索すると、それらしきパッケージを確認できます。

Jetson Nano: 関連 deb パッケージの確認

JetPack の全貌はよく判りませんが、上記リストのパッケージは Jetson Nano 用のイメージには含まれているようです。

ソースからプロジェクトをビルド

ここでは GitHub から jetson-inference レポジトリをクローンして、ソースからビルドする方法をまとめました。いや、最初は右も左も判らなかったので、とりあえずビルドしてしまいましたが、そもそも必要な SDK はインストールされているので、ここは(最新バージョンをビルドしたいという目的以外)必要なさそうです。

GitHub から jetson-inference レポジトリをクローンしてビルドします。まずクローンするために git パッケージ、ビルドに必要な cmake パッケージをインストールします。

リスト: git パッケージと cmake パッケージのインストール 
$ sudo apt-get install git cmake

GitHub から jetson-inference レポジトリをクローンします。

リスト: GitHub から jetson-inference レポジトリをクローン 
$ git clone https://github.com/dusty-nv/jetson-inference
Cloning into 'jetson-inference'...
remote: Enumerating objects: 631, done.
...
...
$ cd jetson-inference
$ git submodule update --init
Submodule 'python/training/imagenet' (https://github.com/dusty-nv/pytorch-imagenet) registered for path 'python/training/imagenet'
Submodule 'tools/camera-capture' (https://github.com/dusty-nv/camera-capture) registered for path 'tools/camera-capture'
...
...

Python 開発用パッケージのインストール

Python3 の開発用パッケージをインストールします。

リスト: Python 開発用パッケージのインストール 
$ sudo apt-get install libpython3-dev python3-numpy

ついでに Python の仮想環境を使えるようにして、仮想環境(myenv という名前にしました)を作成してその仮想環境で作業を続けます。

リスト: Python3 仮想環境の設定 
$ cd ~/
$ sudo apt-get install python3-venv
[sudo] bitwalk のパスワード: 
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
...
...
$ python3 -m venv myenv
$ source $HOME/myenv/bin/activate
(myenv) $ python -V
Python 3.6.8

CMake による設定

再び jetson-inference 内にカレントディレクトリを移し、ビルド用のディレクトリ build を作成し、そこで cmake します。

リスト: CMake による設定 
(myenv) $ cd jetson-inference
(myenv) $ mkdir build
(myenv) $ cd build
(myenv) $ cmake ../
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
...
...
Pre-build]  build root directory:   /home/bitwalk/ドキュメント/jetson-inference/build
 
[sudo] bitwalk のパスワード: 
取得:1 file:/var/cuda-repo-10-0-local-10.0.326  InRelease
...
...

モデルのダウンロード

ダウンロードするモデル(学習済みのネットワーク)の選択の画面になります。デフォルトで GoogleNet と RedNet-18 が選択されていますが、せっかくなので 1 の all models を選択しました。

ダウンロードするモデルの選択

ダウンロードするモデルを上下カーソルとスペースで選択後、[了解]でエンターして次へ進みます。

リスト: モデルのダウンロード 
[jetson-inference]  Model selection status:  0
[jetson-inference]  Models selected for download:  1 3 5 14 16 18 19 26
[jetson-inference]  Downloading all Image Recognition models...
[jetson-inference]  Downloading AlexNet...
bvlc_alexnet.caffem 100%[===================>] 232.56M  4.61MB/s    時間 2m 48s
...
...

PyTorch のインストール

PyTouch を稼動させる python のバージョンを選択する画面になりますが、ここでは Python 3.6 を選択しました。

Python のバージョン選択

プロジェクトのコンパイルとインストール

make でコンパイルして、ルート権限で make install します。

リスト: プロジェクトのコンパイルとインストール 
(myenv) $ make
[  1%] Building NVCC (Device) object utils/CMakeFiles/jetson-utils.dir/cuda/jetson-utils_generated_cudaYUV-YV12.cu.o
...
...
[100%] Built target jetson-inference-python-36
(myenv) $ sudo make install
[ 32%] Built target jetson-utils
[ 45%] Built target jetson-inference
[ 47%] Built target imagenet-console
,,,
...
[ 95%] Built target jetson-inference-python-27
[100%] Built target jetson-inference-python-36
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/include/jetson-inference/detectNet.h
-- Installing: /usr/local/include/jetson-inference/homographyNet.h
...
...
-- Installing: /usr/lib/python2.7/dist-packages/Jetson
-- Installing: /usr/lib/python2.7/dist-packages/Jetson/Utils
...
...
-- Installing: /usr/lib/python3.6/dist-packages/jetson/inference/__init__.py
-- Installing: /usr/lib/python3.6/dist-packages/jetson/__init__.py
(myenv) bitwalk@jetson:~/ドキュメント/jetson-inference/build$ 

(myenv) $ sudo ldconfig

sudo でインストールするので、Python の仮想環境下でコンパイル・インストールすれば、/usr/lib/python3.6/ 以下などに直接インストールされるのを回避できるかもしれないと期待していたのですが、残念ながらそうはなりませんでした。😭

ただ、C++ 用のバイナリなどは /usr/local/ 以下にインストールされていて、Python の実行プログラムも /usr/local/bin/ 以下にインストールされています。 /usr/local/lib/python3.6/dist-packages/ などの Python ライブラリ用のディレクトリは作成されているのですが、中は空でした。

imagenet-console コマンドで画像認識して分類してみる

ImageNet [3] にあるデータセットで学習(トレーニング)したモデルを使って画像を認識するために、imagenet-console というコンソールプログラムが利用できます。C++ でビルドしたものと Python スクリプトの二種類があります。

  • imagenet-console (C++)
  • imagenet-console.py (Python)

imagenet-console の引数は --help で確認すると下記のようになっています。Python 版のコマンドも同じ引数です。

リスト: imagenet-console の引数 
(myenv) $ imagenet-console --help
usage: imagenet-console [h] [--network NETWORK]
                        file_in [file_out]

Classify an image using an image recognition DNN.

positional arguments:
  file_in              filename of the input image to process
  file_out             filename of the output image to save (optional)

optional arguments:
  --help               show this help message and exit

imageNet arguments: 
  --network NETWORK    pre-trained model to load, one of the following:
                           * alexnet
                           * googlenet (default)
                           * googlenet-12
                           * resnet-18
                           * resnet-50
                           * resnet-101
                           * resnet-152
                           * vgg-16
                           * vgg-19
                           * inception-v4
  --model MODEL        path to custom model to load (.caffemodel, .uff, or .onnx)
  --prototxt PROTOTXT  path to custom prototxt to load (for .caffemodel only)
  --labels LABELS      path to text file containing the labels for each class
  --input_blob INPUT   name of the input layer (default is 'data')
  --output_blob OUTPUT name of the output layer (default is 'prob')
  --batch_size BATCH   maximum batch size (default is 1)

(myenv) $ 

例えば、以下のようにコマンドを実行すると、orange_1.jpg の画像が、モデル googlenet で画像認識・分類され、元の画像に分類名とその一致率(確率)が左上に書き込まれた画像が orange_output_1.jpg に出力されます。

リスト: imagenet-console の引数 
(myenv) $ imagenet-console --network=googlenet orange_1.jpg orange_output_1.jpg

試しに、三種類のオレンジの画像を用意して画像認識させてみました。左は本物の葉っぱ付きオレンジ、真ん中は本物そっくりなクリップアートのオレンジ、右はまだ青い温州蜜柑です。画像のサイズは 580 × 580 pixels に揃えました。

三種類のオレンジの画像を画像認識させて分類させた結果

右図は Granny Smith に分類されてしまいましたが、これはリンゴの栽培品種で黄緑色をしています。青い温州蜜柑の認識は難しいようです。

まとめ

ディープラーニングでやってみたいことは数多くあるのですが、画像認識がきっともっとも応用しやすい分野なのでしょう。使い方に慣れるために、しばらくはモデルの比較をしたりして画像認識のプログラムをもっと使い込んでみようと思います。

参考サイト

  1. GitHub - dusty-nv/jetson-inference: Guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.
  2. 「Jetson Nano」のCUDAコアで“Hello AI World”を動作させてみる (1/2) - MONOist(モノイスト)
  3. ImageNet
  4. jetson-inference/imagenet-console-2.md at master · dusty-nv/jetson-inference

ブログランキング・にほんブログ村へにほんブログ村

2019-09-25

CentOS Linux 8 (1905) リリース

CentOS 開発プロジェクトは、9月24日(現地時間)に CentOS Linux 8 (1905) のリリースを発表しました。x86_64、aarch64、ppc64le などに対応、プロジェクトの Web サイトより入手できます。

CentOS Linux 8(1905)は、5 月 7 日にリリースされた Red Hat Enterprise Linux 8 (RHEL 8) のソースコードをベースとしています。

また、ローリングリリースに対応した新しい Linux ディストリビューション CentOS Stream も発表されました。CentOS Stream は開発者や早期採用者向けのディストリビューションで、最新機能の導入を行う Fedora プロジェクトと、エンタープライズ用途の RHEL の間に位置するものと説明されています。

参考サイト

  1. CentOS 8 and CentOS Stream released – Blog.CentOS.org [2019-09-24]
  2. [CentOS-announce] Release for CentOS Linux 8 and CentOS Streams [2019-09-24]
  3. CentOS Project
  4. CentOS 8がリリース - ローリングリリース対応のCentOS Streamも発表 | ソフトアンテナブログ [2019-09-25]
  5. 「CentOS 8」リリース、マイナーリリース向けコードを含むローリングリリース版「CentOS Stream」の提供も発表 | OSDN Magazine [2019-09-25]
  6. 2019年9月25日 CentOS 8.0がリリース,ローリングリリース「CentOS Stream」もアナウンス:Linux Daily Topics|gihyo.jp … 技術評論社 [2019-09-25]
  7. About/Product - CentOS Wiki

 

ブログランキング・にほんブログ村へにほんブログ村

2019-09-23

Jetson Nano でディープラーニング (2)

NVIDIA Jetson Nano 開発者キットは、組込み設計者や研究者、個人開発者がコンパクトで使いやすいプラットフォームに本格的なソフトウェアを実装して最先端の AI を活用できるようにするコンピューターで、64 ビット クアッドコア ARM CPU と 128 コアの NVIDIA GPU により 472 GFLOPS の演算性能を発揮します。

偶然 Amazon.jp で見つけて、9 月の後半三連休にセットアップしようと即注文してしまいました。使いこなせるようになるまでの試行錯誤をまとめていきます。

ディープラーニングを掲げておきながら、なかなか本題にはいれません。今回は冷却ファンの設定についてです。

DC5V 冷却ファンの装着

NVIDIA Jetson Nano 開発者キットで Ubuntu を起動できるようにしてしばらく使ってみましたが、どうもヒートシンクの温度が気になります。それほど重い処理をしていないのに触ってみるとかなり熱いのです。

金属ケースを既に買ってあるのですが、基板をケースに固定する前に急遽、冷却ファンを追加で買うことにしました。Amazon.jp で NVIDIA Jetson Nano 開発者キットに対応の冷却ファン(左図)が手頃な値段で売っていたので、とりあえず買ってしまいました。

翌日、冷却ファンが届けられるのを待つ間、注文した冷却ファンの説明をじっくり読むと、気になる説明がひとつありました。

  • PWMと速度フィードバックをサポートしません。 電源オンなら、ファンが回転します。

ようするに冷却ファンが電源オンの状態で回りっぱなしということです。使ってみて、ファンの音が気にならないか確認する必要があります。

夕方、冷却ファンが届いたのでキットのヒートシンクの上に取り付けました。コネクタには赤黒の二線しかないので、J15 のファンヘッダー四本のうち VDD(赤)と GND(黒)の二本に接続しました。下記図面は参考サイト [1] の5頁を引用して必要事項を記入しています。

冷却ファンのコネクタ取り付け位置

下の写真は冷却ファンを装着して使用している状態を撮ったものです。ファンの音は確かに聞こえますが、とりあえず気になるほどの音ではありませんでした。

DC5V 冷却ファンの装着

冷却ファンの効果

ざっくりとですが、起動直後と、ブラウザを起動してしばらく SNS のサイトを閲覧した時の温度を、冷却ファンお装着前後で較べてみました。温度は lm-sensors をインストールして監視していますが、ひとつの温度センサーしか検出できず、しかも具体的にどこを見ているのかよくわからないので、あくまでも参考です。lm-sensors については、参考サイト [2][3] などに詳しく説明されています。

DC5V 冷却ファンの装着前(左)と装着後(右)の温度の違い

NVIDIA Jetson Nano のユーザーは、CPU などの温度をどうやって監視しているだろうかとウェブを探索してみたところ、参考資料 [4] により詳しい温度情報取得方法が紹介されていました。温度センサの値をリアルタイムにグラフ表示するプログラムも紹介されていましたので、早速試してみました。

jetson-thermal-monitor の実行例

NVIDIA Jetson Nano で本格的にディープラーニングに取り組むようになってブンブンと GPU を利用できるようになったら重宝するプログラムになると思います。😁

ちなみに、その後、左のファンの方が NVIDIA Jetson Nano 開発者キット向けにはより良いということがわかりました。しっかり調べずにとりあえず買ってしまうのは自分の悪い癖です。買ってしまったファンをしばらく使ってから買い替えを考えることにします。

参考サイト

  1. JETSON NANO DEVELOPER KIT User Guide (DA_09402_001_01)
  2. Ubuntu lm-sensors その1 - 概要とインストール・ハードウェア監視センサーを検出する - kledgeb [2013-01-05]
  3. Ubuntu lm-sensors その2 - ハードウェア監視センサーの情報を表示する - kledgeb [2013-01-05]
  4. NVIDIA Jetson Nano の内部温度をモニタする - Qiita [2019-06-24]

ブログランキング・にほんブログ村へにほんブログ村

2019-09-22

Jetson Nano でディープラーニング (1)

NVIDIA Jetson Nano 開発者キットは、組込み設計者や研究者、個人開発者がコンパクトで使いやすいプラットフォームに本格的なソフトウェアを実装して最先端の AI を活用できるようにするコンピューターで、64 ビット クアッドコア ARM CPU と 128 コアの NVIDIA GPU により 472 GFLOPS の演算性能を発揮します。

偶然 Amazon.jp で見つけて、9 月の後半三連休にセットアップしようと即注文してしまいました。使いこなせるようになるまでの試行錯誤をまとめていきます。

Jetson Nano 開発者キットとは

GPU Technology Conference (GTC) 2019 において、NVIDIA が発表した Jetson Nano 開発者キットは、組込み設計者や研究者、個人開発者がコンパクトで使いやすいプラットフォームに本格的なソフトウェアを実装して最先端の AI を活用できるようにするコンピューターです。Jetson Nano は 64 ビットクアッドコア ARM CPU と 128 コアの NVIDIA GPU を搭載しています。

新たにリリースされた JetPack 4.2 SDK は、Ubuntu 18.04 をベースとした Jetson Nano 向けの包括的なデスクトップ Linux 環境を実現し、NVIDIA CUDA Toolkit 10.0 に対応しているほか、cuDNN 7.3 や TensorRT 5.0 といったライブラリを備えています。さらに、この SDK により、TensorFlowPyTorch, Caffe, Keras, MXNet といったオープンソースの広く普及している機械学習 (ML) フレームワークだけでなく、OpenCVROS のようなコンピュータービジョンおよびロボティクス開発のためのフレームワークもネイティブにインストールすることができます。

参考サイト [1] より抜粋、編集

NVIDIA Jetson Nano 開発者キットの技術仕様と I/O の仕様を、参考サイト [2] より抜粋しました。

技術仕様

GPU 128 基の NVIDIA CUDA® コアを実装した NVIDIA Maxwell アーキテクチャ
CPU クアッドコア ARM® Cortex®-A57 MPCore プロセッサ
メモリ 4GB 64 ビット LPDDR4
ストレージ 16GB eMMC 5.1 フラッシュ
ビデオ エンコード 4K @ 30 (H.264/H.265)
ビデオ デコード 4K @ 60 (H.264/H.265)
カメラ 12 レーン (3x4 または 4x2) MIPI CSI-2 DPHY 1.1 (1.5 Gbps)
コネクティビティ ギガビット イーサネット
ディスプレイ HDMI 2.0 または DP1.2 | eDP 1.4 | DSI (1 x2) の 2 つ同時
UPHY 1 x1/2/4 PCIE、1x USB 3.0、3x USB 2.0
I/O 1x SDIO / 2x SPI / 4x I2C / 2x I2S / GPIOs
サイズ 69.6 mm x 45 mm
コネクタ 260 ピン エッジ コネクタ

開発者キット I/O

USB 4x USB 3.0、USB 2.0 Micro-B
カメラ用コネクタ 1x MIPI CSI-2 DPHY レーン
コネクティビティ ギガビット イーサネット、M.2 Key E
ストレージ microSD (別売)
ディスプレイ HDMI 2.0 および eDP 1.4
I/O GPIO、I2C、I2S、SPI、UART

Jetson Nano 開発者キットは本体ボードのみです。OS (Ubuntu Linux) は、インターネットに接続された PC (Windows/MacOS/linux) で microSD カードにイメージを書き込んでから、本体に挿入して使用します。キーボード&マウス、ディスプレイ、Micro-USB の電源は別に用意する必要があります。

Jetson Nano 開発者キットに含まれているもの

  • Jetson Nano 開発者キット(本体)
  • スタート/サポートガイド
  • 紙製の設置台

Jetson Nano 開発者キットに含まれていないもの

  • microSD カード(最低 16GB UHS-1
  • USB キーボード&マウス
  • ディスプレイ (HDMI or DP)
  • Micro-USB 電源 (5V⎓2A)

OS の準備

参考サイト [5] に従って、Jetson Nano 開発者キット用の OS (Ubuntu) を準備します。必要なものは以下のとおりです。

  • OS イメージ (jetson-nano-sd-r32.2-2019-07-16.zip → sd-blob-b01.img)
    • 参考サイト [5] で、Jetson Nano Developer Kit SD Card Image のリンクから zip ファイルをダウンロードして、解凍しておきます。
  • microSD カード(最低 16GB UHS-1
    • ストレージの容量をあまり気にせずにいろいろ使いたいので、Sandisk の 128GB の microSDXC を用意しました。
  • インターネットに接続された PC (Windows/MacOS/Linux)
  • OS イメージを SDカードに書き込むソフトウェア balenaEtcher
    • 自宅では Windows PC を利用できないので、メインの Linux PC (Fedora 31 beta) に、Linux x64 版の balenaEtcher (v1.5.57) をダウンロードして解凍して使いました。

balenaEtcher によるイメージの書き込み

ダウンロードしたファイルの解凍して、balenaEtcher を起動します。なお、イメージはダウンロードする zip ファイルのサイズが約 5.1GB、解凍後のイメージサイズが約 12GB あります。

リスト: ダウンロードしたファイルの解凍と balenaEtcher の起動 
$ ls
balena-etcher-electron-1.5.57-linux-x64.zip
jetson-nano-sd-r32.2-2019-07-16.zip
$ unzip jetson-nano-sd-r32.2-2019-07-16.zip
Archive:  jetson-nano-sd-r32.2-2019-07-16.zip
  inflating: sd-blob-b01.img         
$ unzip balena-etcher-electron-1.5.57-linux-x64.zip
Archive:  balena-etcher-electron-1.5.57-linux-x64.zip
  inflating: balenaEtcher-1.5.57-x64.AppImage  
$ ./balenaEtcher-1.5.57-x64.AppImage
ready-to-show: 2276.828ms
Checking for update
Update for version 1.5.57 is not available (latest version: 1.5.57, downgrade is disallowed).
...
...
起動後の balenaEtcher

Select Image をクリックしてsd-blob-b01.img を指定すると、書き込み先候補が表示されます。

イメージの指定

この場合、一つの候補しかないのでそのまま Continue をクリックします。Flash! をクリックすると SD カード(USB スティック)にしては容量が大きすぎるという警告がでますが、構わず Continue をクリックします。

ターゲットメディアの指定と書き込みの開始

書き込みが始まり、終わると書き込んだ内容の確認が始まります。

書き込みと確認

イメージの書き込みが無事終了しました。

書き込みの完了

microSD カードをアンマウントして取り出し、Jetson Nano 開発者キットに挿入します。

Jetson Nano 開発者キットに microSD カードを挿入

ディスプレイ、キーボード、マウスを接続、Micro-USB [5V⎓2A]で給電すると、Ubuntu の起動が始まります。最初の起動では、下記を設定後、ログインになります。

  1. NVIDIA Jetson software の EULA の内容を確認・承諾
  2. システムで使用する言語の選択と、キーボードのレイアウト、タイムゾーンの設定
  3. ユーザーネーム、パスワード、コンピューター名の設定
  4. ログイン
Jetson Nano 開発者キットの Ubuntu 18.04 LTS

USB 2.0 の Wi-Fi 無線 LAN 子機を挿して、デスクトップ PC (Fedora 31 beta) から ssh でリモートログインして、リソースを確認しました。

リスト: Fedora からリモートでアクセスしてリソースを確認した例 
[bitwalk@fedora-pc ~]$ ssh -X 192.168.0.28
The authenticity of host '192.168.0.28 (192.168.0.28)' can't be established.
ECDSA key fingerprint is SHA256:BwUqkaWycDsugD+6Zannl3lffsiHS15ojwU1MMVia+0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.28' (ECDSA) to the list of known hosts.
bitwalk@192.168.0.28's password: 
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.9.140-tegra aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.

261 個のパッケージがアップデート可能です。
133 個のアップデートはセキュリティアップデートです。


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

/usr/bin/xauth:  file /home/bitwalk/.Xauthority does not exist
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

bitwalk@jetson:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
bitwalk@jetson:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1  118G   11G  102G  10% /
none            1.7G     0  1.7G   0% /dev
tmpfs           2.0G   13M  2.0G   1% /dev/shm
tmpfs           2.0G   38M  1.9G   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           396M   20K  396M   1% /run/user/120
tmpfs           396M  156K  396M   1% /run/user/1000
bitwalk@jetson:~$ 

欲を言えばパーティションを細かく設定したかったところですが仕方がありません。当面はストレージの容量を気にせずに使えそうです。

まとめ

長い間 Linux を使ってきましたが、廉価な PC に Linux をインストールすることはあっても、Raspberry Pi のようなシングルボードコンピュータには手を出しませんでした。シングルボードコンピュータは ARM 系 CPU を採用しているものが多く、廉価なものが多いので ARM 版の Linux に触れるには打ってつけだったのですが、手を出すだけの動機を持てずにいました。

NVIDIA Jetson Nano 開発者キットは、ディープラーニングに使うという明確な動機があったので、即決で買ってしまいました。そういうわけで、シングルボードコンピュータ初心者の取り組みをシリーズにしてまとめていきます。

参考サイト

  1. Jetson Nano であらゆる人が AI コンピューティングの利用が可能に | NVIDIA [2019-04-02]
  2. モダン AI のパワーを数百万のデバイスへ - NVIDIA Jetson Nano
  3. 小型の最新AIコンピュータ「NVIDIA Jetson Nano」レビュー(1) 開封の儀 | ロボスタ [2019-03-25]
  4. まずは「Jetson Nano」の電源を入れて立ち上げる (1/2) - MONOist(モノイスト) [2019-05-30]
  5. Getting Started With Jetson Nano Developer Kit | NVIDIA Developer

ブログランキング・にほんブログ村へにほんブログ村