Linux、始めてのXプログラミング
USB-IOを使うことができたのですが、コマンドライン端末でprintfの出力ではプログラムを作った気分にならなかったのでGUIな画面に挑戦してみました。
Gladeで簡単Xプログラミングを参考にさせていただきました。
数分でGUIなプログラムができてしまいました。
こんなに簡単にできてしまうとは思っていなかったので感動しました。
と言ってもウインドウが表示されただけですけどね。
本来の中身を記述するにはGTKと言うものを勉強しないといけないようです。
Windows上のC++と雰囲気がにていて、画面を作っていく過程はJAVAのようでもあるしなんだかいけそう。
Linuxは難しいと思い込んでいたので、先が明るくなった気分です。
クライアントプログラムができたら、今度はサーバープログラムに挑戦しないといけませんね。
Linuxはどちらかと言うと、サーバーの方が得意な気がしますので。
Linux(FC5)で汎用USB-IOを使うための環境
汎用USB-IOをFC5で使うためには開発環境を作成し公開しているソースを自分なりに修正してコンパイルする必要があります。
コンパイルするためには開発ツールとlibusb用の開発ファイルが必要です。
そのため、インストール時に開発ツールを選択しておきます。
インストールができたらlibusbを使うための設定をします。
GNOMEを使っている場合はアプリケーションの「Add/Remove Softwear」を選択しパッケージマネージャを起動します。
Listを選択するなどして一覧を表示させます。
その中でlibusb-devel - 0.1.11-2.i386 - Libusb用の開発ファイルにチェックをつけて適用させます。
環境やUPDATEの状態でバージョンは変わるかも知れません。
これで開発環境は出来ました。
自分の場合はインストール時にLibusb用の開発ファイルも指定しましたが、後でも先でも大丈夫だと思います。
しかし、バージョンが違うとコンパイルが出来ても動かせないので良く確認しましょう。
パッケージマネージャのListで確認するとlibusbとlibusb-develがあると思います。
libusbのバージョンとlibusb-develのバージョンが同じになるようにします。
次はコンパイルの手順です。
コマンドライン端末を起動し、ソースのあるフォルダーに移動します。
ソースをコンパイルします。
cc -o usbio_test usbio_test.c -lusb
と入力すればコンパイルできるはずです。
(ソースファイル名、オブジェクトファイル名は読み替えてください)
インクルードファイルやライブラリの場所が違う場合は
usb.hなどを検索しフォルダーを確認します。
フォルダーを指定してコンパイルしてみてください。
cc -o usbio_test usbio_test.c -I/usr/include/ -L/usr/lib/ -lusb
次は実行です。
./usbio_test
最初の./はカレントフォルダーを示します、これが無いと実行ファイルがあるフォルダーで起動をかけても動きません、この辺はWindowと違うところですね。
もし、root権限がないユーザーで上手く動かない場合はsuでルート権限にして実行してください。
ルート権限が無いと動かせないのは現在調査中です、すみません。
カーネルの再構築とかは必要ないので比較的簡単に出来るのではと思います。
特殊なことはしていないのでおそらくバージョンが変わってもコンパイルしなおせば動くのではと思います。
色々教えていただいたくまさんのおかげでFC5で汎用USB-IO、USB-Anが使えるようになりました。
いまだに詳しいことはほとんど分かっていません、
くまさんのHP「熊の巣」でFC4,FC5でUSB-Anを使っている記事があります、いろんな事が詳しく説明されてありますので参考になると思います。
最後に、ここで公開しているソース等は自由に使っていただいて結構ですが、自己責任でお願いします。
Linux(FC5)でUSB-Anを使う
FC5で今度はUSB-Anを使うサンプルです。
開発環境は別で載せます(libusbの開発モジュールが必要)
ヘッダーファイルは先の書き込みの
musbiobase.hを使います。
10bitAD変換で4ポート取得する例を作成しました。
usban.c
Linux(FC5)で汎用USB-IOを使う
開発環境の作成に苦労しましたが、最新のFC5で汎用USB-IO及びUSB-Anを動作させることができたのでお知らせします。
まだroot権限が無いと動かないのは調査中ですが、動いているサンプルソースを載せておきます。
開発環境とUSB-Anのサンプルは別で載せます。
汎用USB-IOを動作させるための基本的な関数が入っているヘッダーファイルとそれを使ったサンプルソースになります。
まず、ヘッダーファイル msubiobase.h の内容です。
musbiobase.h次にサンプルソースです、これは簡単な出力と入力を行っています。
usbio_test.c
Linuxで汎用USB-IOその2
良く探して見たら、Linux標準のHIDを使用してUSB-IOをコントロールしている例がありました。
こちらの内容はWindowsでVBによりコントロールしているパターンと良く似ています。
まだ、試していないのでなんともいえないのですが、標準のHIDを使用しているので
最新のFC5にも対応可能なのではと思っています。
以下のブログを参照してください。
USB-IO その3USB-IOその4時間を作って試して見たいと思っています。
Linuxで汎用USB-IO
Linux(FC4)用のドライバーは今まで伊藤さんのサイトでダウンロードできていたのですが、現在はリンク切れになっているようです。
困ったなと思っていたら、
ブログ(g26a345の日記)の
USB-IO その2にFC4の汎用USB-IOのドライバーの事が書かれてありました。
どうも、カーネルの再構築(パッチをあてる)はしなくてもコンパイルしたmorphy-usbio.koってのを、パッチとは別に作成し、それをinsmodすればそのままで動くようです。
ただし、rio500に取られているらしい。
echo 010101010101 >/dev/usb/rio500
とかやったら動いた。
とあります。
面倒なことをしなくても、rio500で動くようです。
これから試される方はこの方法でも可能なのではと思っています。
ただし、UPDATEはしないほうがいいのではと思います。