1
0

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 3 years have passed since last update.

jetson-io.pyがすぐに終了するときの解決策

Posted at

Jetsonを用いてSPIピンをenableにしようと思ったのですが、その際に意図しないエラーが2つ?出たので、その解決方法について述べます。

まず前提として、
sudo mkdir /boot/dtb/や、
sudo cp -v /boot/tegra210-p3448-0000-p3449-0000-[ab]0[012].dtb /boot/dtb/
などのこのサイトに従った設定は済ませていると仮定します。

問題1

$ sudo /opt/nvidia/jetson-io/jetson-io.py

を実行したときに、起動した瞬間、エラーも何も表示されずにスクリプトが終了する。

解決法

この問題はこのサイトを参考に解決させました。

/opt/nvidia/jetson-io/Jetson/board.pyのソースコードを下記のように編集します。

# 133行目くらい
    #dtbdir = os.path.join(self.bootdir, 'dtb')
    dtbdir = os.path.join(self.bootdir, '')

この変更後に、もう一度↓のコマンドを入力すると通常通りにピン設定をすることができました。

$ sudo /opt/nvidia/jetson-io/jetson-io.py

問題2

問題1を解決して再起動した後に、もう一度sudo /opt/nvidia/jetson-io/jetson-io.pyで設定が完了しているか確かめようとすると、問題1と同じ現象が起こる。

解決策

先ほど変更した/opt/nvidia/jetson-io/Jetson/board.py のソースコードを元に戻します。。。

# 133行目くらい
    dtbdir = os.path.join(self.bootdir, 'dtb')
    # dtbdir = os.path.join(self.bootdir, '')

それでも起動しないので、どんなエラーが生じているかを調べるために、下記のスクリプトを動かしてみます。
以下が実行法とエラー出力です。

$ sudo /opt/nvidia/jetson-io/config-by-pin.py

> 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 150, in __init__
    self.dtb = _board_get_dtb(self.compat, self.model, dtbdir)
  File "/opt/nvidia/jetson-io/Jetson/board.py", line 91, in _board_get_dtb
    raise RuntimeError("Multiple DTBs found for %s!" % model)
RuntimeError: Multiple DTBs found for NVIDIA Jetson Nano Developer Kit!

Multiple DTBsとのことで、.dtbファイルが多いと述べられているようです。

エラーが出ている箇所でprintをしてみると、下記のような出力がされました。
['/boot/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb', '/boot/dtb/kernel_tegra210-p3448-0000-p3449-0000-b00.dtb']


この`.dtb`ファイルについて、前者が[このサイトで実行した](https://www.jetsonhacks.com/2020/05/04/spi-on-jetson-using-jetson-io/)`sudo cp -v /boot/tegra210-p3448-0000-p3449-0000-[ab]0[012].dtb /boot/dtb/`でコピーされてきた分です。それに対し、後者は なんか知らんやつ です(適当)。

ということで、システムが なんか知らんやつ を認識しないようにします。

sudo mv /boot/dtb/kernel_tegra210-p3448-0000-p3449-0000-b00.dtb /boot/dtb/kernel_tegra210-p3448-0000-p3449-0000-b00.dtb.bkp 

最後に目的のコマンドを実行すると、通常通りに動作することが確認できました。
$ sudo /opt/nvidia/jetson-io/jetson-io.py

やったね ;)

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?