Jetson‑IOがすごく良かった話とエラー対処方法
Jetson NanoにL4T R32.3.1をインストールしました。Jetson‑IOがすごく良かった話と起動時に出るエラーの対処方法です。
Jetson-IOはJetsonのGPIOのfunctionを指定できる便利ツールです。L4TのR32.3から使えるようになりました。
sudo /opt/nvidia/jetson-io/jetson-io.py
で呼び出せます。詳しくはこちら。
[2020年5月31日追記]
R32.4.2では特にエラーは発生しませんでした。R32.3.1でもapt upgrade
すると更新され、エラーが出ない場合もあるようです。
[追記ここまで]
スクリーンショット
これで簡単にSPIを有効にできました。
うおお??Jetson Nano最新versionで、GPIO機能変更が簡単にできるツールきてる! I2S,PWMできそう
— でべ (@devemin) 2019年12月24日
Jetson-IO tool
device tree overlayも対応(ラズパイでいう/boot/config.txt にdtoverlay=~とか書いてカーネル再コンパイルせずドライバロードできる奴)
Release 32.3https://t.co/zWAuW97yGX pic.twitter.com/K4qi0rBnzu
Jetson-IO使ってみた!よさげ! pic.twitter.com/cbDnbBMvVl
— たいりょーくん (@Tiryoh) 2019年12月24日
エラー対処方法
以下の3つのコマンドを実行しておけばjetson-io.py
を起動できます。
sudo find /opt/nvidia/jetson-io/ -mindepth 1 -maxdepth 1 -type d -exec touch {}/__init__.py \; sudo mkdir -p /boot/dtb ls /boot/*.dtb | xargs -I{} sudo ln -s {} /boot/dtb/
エラーの詳細 その1
2019年12月24日現在、そのままjetson-io.py
を起動しようとするとエラーが出ます。
ubuntu@JETBOT:~$ sudo /opt/nvidia/jetson-io/jetson-io.py Traceback (most recent call last): File "/opt/nvidia/jetson-io/jetson-io.py", line 25, in <module> from Jetson import board ImportError: cannot import name 'board'
上記のエラーは以下のコマンドで対処できます*1。
sudo find /opt/nvidia/jetson-io/ -mindepth 1 -maxdepth 1 -type d -exec touch {}/__init__.py \;
エラーの詳細 その2
2019年12月24日現在、パラメータを手動で設定しようとしてもエラーが出ます。
ubuntu@JETBOT:~$ sudo /opt/nvidia/jetson-io/config-by-pin.py -p 5 Traceback (most recent call last): File "/opt/nvidia/jetson-io/config-by-pin.py", line 51, in <module> main() File "/opt/nvidia/jetson-io/config-by-pin.py", line 34, in main jetson = board.Board() File "/opt/nvidia/jetson-io/Jetson/board.py", line 149, in __init__ self.dtb = _board_get_dtb(self.compat, self.model, dtbdir) File "/opt/nvidia/jetson-io/Jetson/board.py", line 88, in _board_get_dtb raise RuntimeError("No DTB found for %s!" % model) RuntimeError: No DTB found for NVIDIA Jetson Nano Developer Kit!
上記のエラーは以下のコマンドで対処できます。こちらはフォーラムにも書いておきました*2。
sudo mkdir -p /boot/dtb ls /boot/*.dtb | xargs -I{} sudo ln -s {} /boot/dtb/