ディスプレイ不要!Jetson Nanoの初期設定からSSHログインとjtopのインストール
upstreamのkernelが使えないだけでなく、 NVIDIAから提供されるバージョンがあまりに古すぎるので、 放置し続けていたJetson Nanoを久々に使おうと思い立ったはいいものの、 初期設定どうするんだっけ、 ということで2度ある初期設定は3度あることを警戒しメモします。
本稿では基本的には私の自分用やおすすめの設定を紹介します。
準備する物
最低限とそのへんにあるもの一式を揃えました
- ACアダプタ
- Jetson Nano
- microSD
- USB micro B のケーブル
- どのご家庭にもあるLinuxのパソコン
- USBのWi-Fiドングル
あとおまけです。(最悪必要ないものなど)
- ファン
- Intel Wi-Fi 6 AX200NGW
UARTとUSBの変換基盤は使いません。
SD のイメージを取ってくる+書き込む
ここから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なんとか
が出来上がるので、
これにcu
やscreen
などを使ってシリアルポートに接続します。
EULA+初期設定画面
だいたいこんな感じにしました
- EULAを受け入れます
- 英語(en-US)
- アジアの日本
- ネットワークを設定しない
- お好みのホスト名
- お好みのユーザー名+パスワード(弱いパスワード可・ノーパスワード不可?)
初期設定画面が終わりますのでそのままシリアルポートでログインします。
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