2007-09-18

FC7でRoot権限が無くても汎用USB-IOの動作OK!! 

現在最新のFC7での汎用USB-IOの動作確認OKの報告と
掲示板にご報告をいただいたkosugettiさんの方法でRoot権限が無くても作成したプログラムを正常動作させる方法の動作確認OKの2点を合わせてご報告をいたします。

まず、FC7での汎用USB-IOの動作確認

開発ツールのインストールだけではlibusb(開発用)がインストールされないのでyumで追加インストールします。(suでルート権限を与えてインストールします)

# yum install libusb libusb-devel

このブログで書き込みしたテストプログラムソースをusb-testフォルダーにダウンロードし、コンパイルをします。

$ mkdir usb-test
$ cd usb-test
$ wget http://bake-san.com/bdenshi/musbiobase.h
$ wget http://bake-san.com/bdenshi/usbio_test.c

必要に応じてmusbiobase.hのベンダーID、プロダクトIDを変更してください。
先頭に#defineで設定しているUSB_VENDORとUSB_PRODUCTを持っている汎用USB-IOにあわせます。

コンパイルします。

$ cc -o usbio_test usbio_test.c -I/usr/local/include/ -L/usr/local/lib/ -lusb

-I/usr/local/include/ -L/usr/local/lib/はデフォルト値なので省略しても大丈夫ですが、
念のため設定をしています。

ここでsuでRoot権限を与えてプログラムを実行します。

# ./usbio_test

以上でプログラムで記述した通りに各ポートがON/OFFされると思います。


次は掲示板にご報告をいただいたkosugettiさんの方法で
Root権限が無くても作成したプログラムを正常動作させる方法です。

「/etc/udev/rules.d/55-myrules.rules」というファイルを新たに作ればRoot権限が無くても作成したプログラムを正常動作させることが出来ます。


55-myrules.rulesの内容は下記のとおりです。

# For TECHNO KIT
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="12ed",SYSFS{idProduct}=="1003",MODE="0666"
# For Km2Net
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="1352",SYSFS{idProduct}=="0100",MODE="0666"
SUBSYSTEM=="usb_device",SYSFS{idVendor}=="1352",SYSFS{idProduct}=="0101",MODE="0666"

現在購入可能な汎用USB-IOをすべて記述していますが、持っている汎用USB-IOの記述だけでも大丈夫です。

注意事項が1点あります、FC7が正常に起動してから汎用USB-IOをつなげないと今回の設定が有効になりません。
FC7を起動時に汎用USB-IOをつないでいて正常に動作しない時には一度汎用USB-IOを抜いて差し直せば今回の設定が有効になり、正常に動作できるようになります。
FC7が正常に起動してから汎用USB-IOをつなげないと今回の設定が有効にならない件については引続き調査中です。


情報をいただいたkosugettiさんに感謝いたします。

0 件のコメント: