# Jetson Nanoセットアップ
###### tags: `JetsonNano`
## OSインストール
[小型 AI コンピュータ NVIDIA Jetson Nano 開発者キットのセットアップ \- Qiita](https://qiita.com/tsutof/items/66e68c75b462c4faf1cb)
## ssh接続
sshはOS焼いた時点で立っているので
ホストマシンから `ssh [user name]@[ip]` で接続できる
## Wifi USB adapter インストール
http://raspberrypiwiki.com/index.php/Wireless_USB_adapter
## 初回起動時に実行を推奨するコマンド
```
# パッケージ アップデート&アップグレード
sudo apt update
sudo apt upgrade
# Swapファイル生成
git clone https://github.com/JetsonHacksNano/installSwapfile.git
./installSwapfile/installSwapfile.sh
```
## cmakeインストール
`sudo apt install cmake`
## Python
### pipインストール
`sudo apt install python3-pip`
### jupyterインストール
`sudo pip3 install jupyter`
## Tensorflowインストール
https://devtalk.nvidia.com/default/topic/1048776/official-tensorflow-for-jetson-nano-/
```
sudo apt install libhdf5-serial-dev hdf5-tools
sudo apt install zlib1g-dev zip libjpeg8-dev libhdf5-dev
sudo pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker six mock requests gast h5py astor termcolor protobuf keras-applications keras-preprocessing wrapt google-pasta
sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.14.0+nv19.10
```
### 上記の方法で404が出た場合
https://www.space-i.com/post-blog/jetson-nano-%E5%85%AC%E5%BC%8F%E6%89%8B%E9%A0%86%E3%81%A7%E3%81%AEtensorflow-install-error%E3%80%81%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%AB-whl%E3%81%AB%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88/
## dlibのインストール
https://devtalk.nvidia.com/default/topic/1049660/jetson-nano/issues-with-dlib-library/post/5336330/#5336330
```
wget http://dlib.net/files/dlib-19.18.tar.bz2
tar jxvf dlib-19.18.tar.bz2
vi dlib/cuda/cudnn_dlibapi.cpp
dnn_prefer_fastest_algorithms()?CUDNN_CONVOLUTION_FWD_PREFER_FASTEST:CUDNN_CONVOLUTION_FWD_NO_WORKSPACE,
std::numeric_limits<size_t>::max(),
&forward_best_algo));
- forward_algo = forward_best_algo;
+ //forward_algo = forward_best_algo;
CHECK_CUDNN(cudnnGetConvolutionForwardWorkspaceSize(
context(),
descriptor(data),
mkdir build
cd build
cmake ..
cmake --build .
sudo python3 setup.py install
```
## Darknetインストール (YOLOv3)
https://www.nakasha.co.jp/future/ai/vol2_yolov3nvidia_jetson_nano.html
### CUDAのパス追加
`vi ~/.bashrc`
以下追記
```
export PATH=/usr/local/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}
source ~/.bashrc
```
### Darknet clone
```
git clone https://github.com/AlexeyAB/darknet darknet
cd darknet
```
### 学習済モデルダウンロード
https://www.nakasha.co.jp/future/ai/yolov3_pre-trained_model.html
```
// 軽量YOLOV3
wget https://pjreddie.com/media/files/yolov3-tiny.weights
```
### ビルド
```
vi Makefile
GPU,CUDNN,OPENCV,LIBSOを1に変更
Jetson TX1向けのコメントを取る
# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]
make
### 動作確認(USBカメラ)
./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -c 0
```
## スタートアップコマンド
起動時に自動実行したいコマンドは `/etc/rc.local` に追記する。
存在しない場合は作成する。
権限に ux を付与する。
```
cd /etc
sudo touch rc.local
sudo chmod u+x rc.local
```
### rc.local サンプル
#### 起動時に実行を推奨するコマンド
```
#!/bin/sh
# 冷却ファンON
echo 255 | sudo tee /sys/devices/pwm-fan/target_pwm
# パフォーマンス最大化
sudo jetson_clocks
```