Jetson TX2にPeakSystemのCAN-USB変換ケーブルのドライバをインストールする


Jetsonで気の利いたロボットを動かそうとしたとき,CANが必要になったりする.
たとえば,こういう製品がある.
Peak System社のPCAN-USB.
製品ページ
日本の代理店はガイロジックという吉祥寺にある会社がおすすめ.
ガイロジックさん

どうやらJetsonはCANのコントローラを積んでいるみたいなんだけど,うまくいかない,という情報しか見当たらないので,ここにメモしとく.

ドライバは下記のページからダウンロードする

Linux Driverのページ

コードをホームディレクトリに展開してメイクするだけなんだけど,実は標準のカーネルヘッダーに含まれているバイナリがJetsonのバイナリじゃない.これはひどい.
ということで,まずはLinuxカーネルヘッダーのディレクトリに移動して,スクリプトをコンパイルし直す

$ cd /usr/src/linux-headers-4.4.36-tegra
$ sudo make scripts

sudoが必要になるけど,うまくいくと思う.

この後,ドライバをビルドしてインストールする.

$ cd ${PATH_TO} # ここにワークディレクトリ名が入る.僕なら/home/nvidia/misc/drivers/とした
$ tar zxfv peak-linux-driver-8.7.0.tar.gz
$ cd ${PATH_TO}/peak-linux-driver-8.7.0
$ make 
$ sudo make install

次に,ドライバをロードする

$ sudo modprobe pcan

次にデバイスファイルを作る

$ cd ${PATH_TO}/peak-linux-driver-8.7.0
$ cd driver
$ sudo ./pcan_make_devices 0

これで一応,通信可能な状態までくる.