おうちにかえりたいブログ



ディスプレイ不要!Jetson Nanoの初期設定からSSHログインとjtopのインストール

upstreamのkernelが使えないだけでなく、 NVIDIAから提供されるバージョンがあまりに古すぎるので、 放置し続けていたJetson Nanoを久々に使おうと思い立ったはいいものの、 初期設定どうするんだっけ、 ということで2度ある初期設定は3度あることを警戒しメモします。

本稿では基本的には私の自分用やおすすめの設定を紹介します。

準備する物

最低限とそのへんにあるもの一式を揃えました

あとおまけです。(最悪必要ないものなど)

UARTとUSBの変換基盤は使いません。

SD のイメージを取ってくる+書き込む

Jetson Download Center

ここからJetson Nano用のSDのイメージのzipを取ってきます。

あとは適当にmicroSDの先頭からddでzipの中のファイルを書き込みます。

unzip -xp jetson-nano-jp461-sd-card-image.zip |sudo dd if=/dev/sda bs=4K status=progress

とかそんな感じで実行します。 が、注意深く実行してください。 環境によってはメインのrootfsを破壊しうる操作です。

最初の起動

USBのケーブルをパソコンとJetson NanoにつないでJetson Nanoに給電することによって起動します。

しばらくすると/dev/ttyなんとかが出来上がるので、 これにcuscreenなどを使ってシリアルポートに接続します。

EULA+初期設定画面

だいたいこんな感じにしました

初期設定画面が終わりますのでそのままシリアルポートでログインします。

SSHの公開鍵(おすすめ)

Jetson Nanoはインターネットから直接つながる可能性があります。 これはIPv6が有効になっているからです。 ですので気合を入れてセキュリティを初期設定します。

今回は作業用Linuxパソコンで事前にssh-keygenで鍵生成してある前提とします。

Jetson Nanoに公開鍵を保存します

mkdir --mode=700 .ssh
umask 0077
printf 'ssh-ed25519 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX nobody@localhost'>.ssh/authorized_keys
cat /etc/ssh/ssh_host_ed25519_key.pub

あとは忘れないうちに、 最後のコマンドの結果をコピーして作業用Linuxパソコンの~/.ssh/known_hostsに貼り付けておきます。

GUI無効

画面を繋がないならもったいないのでGUI無効にします

sudo systemctl set-default multi-user.target

セキュリティに関する設定(おすすめ)

お好みでセキュリティを極めます。

sudo visudo
sudo vi /etc/ssh/sshd_config

ネットワークの設定(すごくおすすめ)

ご家庭によりけりですがネットワークを設定します。

sudo nmcli
# and/or
sudo nmtui

電源を切る前に(SSHを使うならおすすめ)

これを控えておきます

ip a

あるいはホスト名をちゃんと忘れないように控えておきます

一旦電源を切る

再起動した後で設定が機能するかのチェックも兼ねて電源を切りたくなりました。 というか私の場合は、初期設定の作業場所と実際の放置場所が違うのでその移動も兼ねています。

sudo systemctl poweroff

起動2回め

今度はUSBのケーブルを使わずにSSHでログインして作業します。

tmuxとnano(あるいはお好みのエディタ)をインストール

sudo apt-get update
sudo apt-get install tmux nano
tmux

jtopのインストール

Jetson NanoのGPU使用率を見るのに使うjtopをインストールします。

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