アプリとサービスのすすめ

アプリやIT系のサービスを中心に書いていきます。たまに副業やビジネス関係の情報なども気ままにつづります

Jetson本格仕様セットアップTips part1【ハードウェア】

Jetson NanoのJetPack SDK Card imageをinstallした後の、本格的に使うためのセットアップのTipsのメモ

目次
1. JetPack SDK Card imageをdownload (JetPack=4.6.1)
2. Jetson Nano上での必要パッケージのupdate
3. スワップ領域の確保
4. パワーモードの切り替え(カスタムパワーモードの設定)
5. プロセッサー(CPU/GPU)の使用率を調べる



1. JetPack SDK Card imageをdownload (JetPack=4.6.1)

JetPack
JetPack Version =4.6.1

4GBは
・sd-blob-b01.img
2GBは
・sd-blob.img


2. Jetson Nano上での必要パッケージのupdate

$ sudo apt-gwt update 
# $ apt-get upgrade 
# 依存関係のないパッケージをunistall
#$ apt-get autoremove
$ sudo apt-get install curl git unzip tree vim python3-pip
$ pip3 install --upgrade pip

# python3 version
$ python3 -V
>>> 3.6.9

# opencv version check 
$ dpkg -l | grep libopencv
>>> 4.1.1.2

3. スワップ領域の確保

1. スワップが有効化どうか確認する

# スワップが有効化どうか確認
$ free -m
###               total        used        free      shared  buff/cache   available
### Mem:           3955        1748         900          61        1306        2092
### Swap:          1977           0        1977

# SWAP領域を構築するZRAMを調べる
$ swapon -s
### NAME       TYPE        SIZE USED PRIO
### /dev/zram0 partition 494.5M   0B    5
### /dev/zram1 partition 494.5M   0B    5
### /dev/zram2 partition 494.5M   0B    5
### /dev/zram3 partition 494.5M   0B    5

4つのCPUあるので4つのSWAP領域が存在するのがわかる。

2. SWAP領域を追加する

4GBのSWAP領域を設定する。count=4で設定する

# SWAP領域の追加
$ sudo dd if=/dev/zero of=/var/swapfile bs=1G count=4
### 4+0 records in
### 4+0 records out
### 4294967296 bytes (4.3 GB, 4.0GiB) copied, 128.347s, 33.5 MB/s

3. 「/var/swapfile」をSWAP領域として使う

# SWAP領域の初期化と権限追加
$ sudo mkswap /var/swapfile
>>>>
### mkswap: /var/swapfile: insecure permissions 0644, 0600 suggested.
### Setting up swapspace version 1, size = 3 GiB (3221221376 bytes)
### no label, UUID=b97b85f8-5576-4fbd-8886-7cfadeece0b7

$ sudo chmod 600 /var/swapfile

4. SWAP領域をマウントするように「/etc/fstab」のラストの1行を追加
以下を追加
/var/swapfile none swap swap 0 0

$ sudo vi /etc/fstab
>>>>

# /etc/fstab: static file system information.
#
# These are the filesystems that are always mounted on boot, you can
# override any of these by copying the appropriate line from this file into
# /etc/fstab and tweaking it as you see fit.  See fstab(5).
#
# <file system> <mount point>             <type>          <options>                               <dump> <pass>
/dev/root            /                     ext4           defaults                                     0 1
/var/swapfile        none                  swap           swap                                         0 0  


5. SWAP領域を使用可能にする

$ sudo swapon /var/swapfile
# 再起動
$ sudo reboot


6. SWAP領域が確保されているか確認

SWAP領域が設定されてるか確認したら「/var/swapfile」がSWAP領域として使用されているのがわかる。

優先度は-1。ZRAMを使い切らない限りSWAP領域は使用されない。

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3956        1112        2160          23         683        2683
Swap:          6074           0        6074
$ swapon -s
Filename				Type		Size	Used	Priority
/var/swapfile                          	file    	4194300	0	-1
/dev/zram0                             	partition	506380	0	5
/dev/zram1                             	partition	506380	0	5
/dev/zram2                             	partition	506380	0	5
/dev/zram3                             	partition	506380	0	5


4. パワーモードの切り替え(カスタムパワーモードの設定)

MAXN:最大パフォーマンス
5W:低消費電力

# MAXNに切り替え
$ sudo nvpmodel -m 0
# 5Wに切り替え
$ sudo nvpmodel -m 1

カスタムパワーモードの設定

# LOWの設定
$ sudo vi /etc/nvpmodel.conf

# LOWに切り替え
$ sudo nvpmodel -m 1
$ sudo nvpmodel -q
>>>>
# NVPM WARN: fan mode is not set!
# NV Power Mode: LOW
# 2
# MAXN is the NONE power model to release all constraints
< POWER_MODEL ID=0 NAME=MAXN >
CPU_ONLINE CORE_0 1
CPU_ONLINE CORE_1 1
CPU_ONLINE CORE_2 1
CPU_ONLINE CORE_3 1
CPU_A57 MIN_FREQ  0
CPU_A57 MAX_FREQ -1
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
GPU MIN_FREQ  0
GPU MAX_FREQ -1
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 0

< POWER_MODEL ID=1 NAME=5W >
CPU_ONLINE CORE_0 1
CPU_ONLINE CORE_1 1
CPU_ONLINE CORE_2 0
CPU_ONLINE CORE_3 0
CPU_A57 MIN_FREQ  0
CPU_A57 MAX_FREQ 918000
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
GPU MIN_FREQ 0
GPU MAX_FREQ 640000000
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 1600000000

< POWER_MODEL ID=2 NAME=LOW >
CPU_ONLINE CORE_0 1 # online CPU core is 1
CPU_ONLINE CORE_1 0 # off line CPU core is 0
CPU_ONLINE CORE_2 0
CPU_ONLINE CORE_3 0
CPU_A57 MIN_FREQ  0
CPU_A57 MAX_FREQ 102000 # CPU movement Hz range
GPU_POWER_CONTROL_ENABLE GPU_PWR_CNTL_EN on
GPU MIN_FREQ 0
GPU MAX_FREQ 640000000
GPU_POWER_CONTROL_DISABLE GPU_PWR_CNTL_DIS auto
EMC MAX_FREQ 1600000000 # Memory Movement Hz MAX
# mandatory section to configure the default mode
< PM_CONFIG DEFAULT=0 >


5. プロセッサー(CPU/GPU)の使用率を調べる

$ sudo -H pip3 install -U jetson-stats
$ sudo reboot
# 使用率を見る
$ jtop

MAXN(パワーモード)

5W(低電力モード)


参考

JetsonNanoの電源として使えるモバイルバッテリーについて