目的
IXS Researchのモータコントローラ、iMCs01をUbuntu14.04で使う方法について。
発売から時間が経ち、マニュアルはUbuntu1204を想定しているが、最新のKernelではそのままコンパイルできない。
http://www.ixs.co.jp/products/controller/imcs01-j.html
動作確認環境
Ubuntu 14.04.5(x64) LTS trusty
Kernel 4.4.0-83-generic
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
カーネルのバージョンを確認する。
$ uname -r
4.4.0-83-generic
ドライバーをダウンロードする。
下記のページから、Linux Kernel3.2のドライバーをダウンロードして解凍する。
http://www.ixs.co.jp/support/imcs01d.html
$ wget http://www.ixs.co.jp/download/src/imcs01_driver_3.2.tar.gz
$ tar xvfz imcs01_driver_3.2.tar.gz
ドライバーをmakeする
makeをすると、下記のエラーが発生する。
$ cd imcs01_driver/driver
$ make
autoconf.hのコピー
urbtc.c:24:43: fatal error: linux/autoconf.h:
そのようなファイルやディレクトリはありません
#include //chg t.miyo
これは、最新のkernelではautoconf.hの場所が変わってしまったため。
linux以下に、autoconf.hをコピーする。リンクを貼っても良い。
$ cd /usr/src/linux-headers-4.4.0-83-generic/include/
$ cd ./generated
$ sudo cp autoconf.h ../linux/
ソースコードの修正
urbtc.c中の、err(...)、dbg(...)関数がエラーを吐いてしまうため、これを全てコメントアウトする。
編集したものは下記に格納。
https://github.com/nnn112358/imcs01_driver-for-Ubuntu1404/blob/master/imcs01_driver%20for%20Ubuntu1404/driver/urbtc.c
$ git clone https://github.com/nnn112358/imcs01_driver-for-Ubuntu1404.git
再度make
再度makeし、Driverファイルが生成されれば完了。
urbtc.ko
ドライバの読み込み
下記のコマンドで読み込み。
$ sudo insmod urbtc.ko
iMCs01を USB コネクタに差す。/dev/urbtc0が作られる。
$ ls -l /dev/urbtc*
アクセス権を変更する。
$ sudo chmod 777 /dev/urbtc*