36
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Jetson Nanoインストールメモ

Last updated at Posted at 2019-06-23

2021年12月にJetson Nanoのインストール作業をしている時のメモです。

OSインストール

  1. nVidiaの開発者サイトからOSイメージダウンロード
    ここでは jetson-nano-jp46-sd-card-image.zip をダウンロードしたOSイメージとします。

  2. ZIPファイルを展開する

    unzip jetson-nano-jp46-sd-card-image.zip
    
  3. マイクロSDカードに書込む

    sudo dd if=./sd-blob-b01.img of=/dev/sdX
    

    /dev/sdXはdmesg等のコマンドでSDカードに割り当てられたデバイス名を指定してください。

SWAP領域の作成

SWAP領域がないとTensorflowのインストール中で止まるみたいなのでSWAT領域を追加します。
USBメモリをSWAPに割り当てた方が性能よさそうですが、その辺を丸っと無視してSDカード上にSWAP領域を作成します。
サイズとしては4GB~8GBが推奨されてるらしい。

swap領域作成
sudo dd if=/dev/zero of=/swap bs=1G count=8
sudo chmod 600 /swap
sudo mkswap /swap
sudo swapon /swap
  • SWAP領域の有効確認
    cat /proc/swaps

  • fstabの編集
    sudo sh -c "echo '/swap none swap sw 0 0' >> /etc/fstab"

    リダイレクトの不等号の数を間違えて悲しい思いをしたことがあります...

  • swappinessの調整

    swappinessは、(たぶん)物理メモリの残りが何%になったらSWAPを使うか指定するパラメータです。
    「0」を設定すると、物理メモリをすべて使用するまでSWAPを使わないようにできるため、(たぶん)無駄なSDカードアクセスを防止できます。

    sudo sh -c "echo 'vm.swappiness=0' >> /etc/sysctl.conf"
    sudo sysctl -p
    

    Swapファイルの設定についてはinstallSwapfileというツールを使用する方法もあります。

Jetpack のバージョンの確認

  • バージョンだけを確認する場合
apt_showで確認
$ sudo apt show nvidia-jetpack
  • CUDA や cuDNN 等のバージョンも確認する
jetsonInfo.py
$ git clone https://github.com/jetsonhacks/jetsonUtilities
$ cd jetsonUtilities
$ python jetsonInfo.py
NVIDIA Jetson Nano (Developer Kit Version)
 L4T 32.6.1 [ JetPack 4.6 ]
   Ubuntu 18.04.6 LTS
   Kernel Version: 4.9.253-tegra
 CUDA 10.2.300
   CUDA Architecture: 5.3
 OpenCV version: 4.1.1
   OpenCV Cuda: NO
 CUDNN: 8.2.1.32
 TensorRT: 8.0.1.6
 Vision Works: 1.6.0.501
 VPI: ii libnvvpi1 1.1.15 arm64 NVIDIA Vision Programming Interface library
 Vulcan: 1.2.70

機械学習フレームワークのインストール

tensorlow

Installing TensorFlow For Jetson Platform :: NVIDIA Deep Learning Frameworks Documentation に従ってインストールします。

tensorflow依存パッケージのインストール
# tensorflow 依存パッケージのインストール
$ sudo apt-get update
$ sudo apt-get install \
            libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip \
            libjpeg8-dev liblapack-dev libblas-dev gfortran

# pip3 の更新
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip testresources setuptools==49.6.0

# その他の依存パッケージのインストール
$ sudo pip3 install -U --no-deps \
            numpy==1.19.4 future==0.18.2 mock==3.0.5 keras_preprocessing==1.1.2 \
            keras_applications==1.0.8 gast==0.4.0 protobuf pybind11 cython pkgconfig
$ sudo env H5PY_SETUP_REQUIRES=0 pip3 install -U h5py==3.1.0
tensorflowのインストール
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v46 tensorflow

2021年12月現在、インストールされる tensorflow のバージョンは v2.6.2 のようです。
あと、h5py をインストールする時、結構時間がかかり、しばらくコマンドの応答がなくなります。

PyTorch

PyTorch for Jetson Nano - NVIDIA Developer Forums

PyTorchのインストール
$ wget https://nvidia.box.com/shared/static/fjtbno0vpo676a25cgvuqc1wty0fkkg6.whl \
        -O torch-1.10.0-cp36-cp36m-linux_aarch64.whl
$ sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
$ pip3 install Cython
$ pip3 install numpy torch-1.10.0-cp36-cp36m-linux_aarch64.whl torchvision

sikitlean

sikitleanのインストール
$ sudo pip3 install scikit-learn

import 時に、ModuleNotFoundError: No module named 'numpy.testing.nosetester' のエラーが出る場合は scipy を更新すると直るはずです。

Chainer

Chainerのインストール
pip3 install fastrlock cupy
pip3 install chainer

cupyのインストールに1時間くらいかかります。

OpenCV

Install OpenCV 4.5 on Jetson Nano - Q-engineering でインストールスクリプトとその中身の解説が公開されていました。
内容をざっくり要約すると、

  1. SWAP メモリを 4GB 用意する。

  2. 下記コマンド実行

    OpenCV4.5.5インストール
    $ wget https://github.com/Qengineering/Install-OpenCV-Jetson-Nano/raw/main/OpenCV-4-5-5.sh
    $ chmod u+x ./OpenCV-4-5-5.sh
    $ ./OpenCV-4-5-5.sh
    Installing OpenCV 4.5.5 on your Jetson Nano
    It will take 3 hours !
    ・・・
    

    OpenCV-4-5-5.sh を実行すると「インストールに3時間かかるよ」と教えてくれます。
    実際、time コマンドで測ってみましたところ、約150分かかりました。
    OpenCV のビルドが長すぎて sudo がパスワードの再入力を求めてくるので、初めから root で OpenCV-4-5-5.sh を実行した方が良いかもしれません。

    インストール後、下記を実行してエラーが出なければ正しくインストールできています。

    OpenCVインストール確認
    $ python3
    Python 3.6.9 (default, Dec  8 2021, 21:08:43)
    [GCC 8.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cv2
    >>> cv2.__version__
    '4.5.5'
    

VS Code

昔はソースからインストールする必要がありましたが、最近では Visual Studio Code – コード エディター | Microsoft Azure から arm64 版の deb パッケージをダウンロードするだけでインストールできるようになりました。

GPU負荷のモニタリング方法

gpuGraph

git clone https://github.com/JetsonHacksNano/gpuGraph
cd gpuGraph
python3 gpuGraph.py

その他

luaが有効なVimのインストール

T4L標準のVimはluaが無効っぽいので有効にします。neocompleteとかを使わない人には無縁の機能です。

luaのインストール
export ROOTFS="$HOME/rootfs"
mkdir -p $ROOTFS

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar zxf lua-5.3.5.tar.gz
pushd lua-5.3.5
make linux test
make install INSTALL_TOP=$ROOTFS
popd
vimのインストール
git clone https://github.com/vim/vim.git
pushd vim/src
make distclean
./configure \
    --prefix=$ROOTFS \
    --enable-fail-if-missing \
    --with-features=huge \
    --disable-selinux \
    --enable-luainterp \
    --enable-perlinterp \
    --enable-python3interp=yes \
    --with-python3-config-dir=/usr/lib/python3.6/config-3.6m-aarch64-linux-gnu/ \
    --enable-cscope \
    --enable-fontset \
    --enable-multibyte \
    --with-lua-prefix=$ROOTFS \
    vi_cv_path_python3=/usr/bin/python3.6
make && make install
popd
vimプラグインのインストール
mkdir -p $HOME/.vim/pack/mypackage/opt
mkdir -p $HOME/.vim/pack/mypackage/start

pushd $HOME/.vim/pack/mypackage/start
git clone https://github.com/Shougo/neocomplete.vim.git
popd
PATHの調整
echo "let g:neocomplete#enable_at_startup = 1" >> $HOME/.vimrc
echo "export PATH=$HOME/rootfs/bin:$PATH" >> $HOME/.bashrc
source $HOME/.bashrc

pyenv-virtualenvのインストール

複数バージョンのpython環境が必要になった時、インストールしておくと便利です。

  • pyenvのインストール

    git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv
    
  • $HOME/.bashrcへの追加 その1

    $HOME/.bashrc
    export PYENV_ROOT=$HOME/.pyenv
    export PATH=$PYENV_ROOT/bin:$PATH
    if command -v pyenv 1>/dev/null 2>&1; then
        eval "$(pyenv init -)"
    fi
    
  • $HOME/.bashrcの再読込み その1
    $ source $HOME/.bashrc

  • pyenv-virtualenvのインストール

    git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
    
  • $HOME/.bashrcへの追加 その2

    $HOME/.bashrc
    eval "$(pyenv virtualenv-init -)"
    
  • $HOME/.bashrcの再読込み その2

    source $HOME/.bashrc
    

python3.6環境の作成と有効化

T4Lのpython3はもともの3.6なので、あえて切り替える必用はありませんが。。。

1. pythonのコンパイルに必要なツールをインストール

sudo apt install -y gcc make \
    libssl-dev libbz2-dev  \
    libreadline-dev libsqlite3-dev zlib1g-dev

2. python3.6実行環境のインストール

pyenv install 3.6.8
pyenv virtualenv 3.6.8 py36
pyenv activate py36
pip install --upgrade pip

参考サイト

36
42
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
42

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?