この記事の動作環境は、
パソコン PC/AT互換機
OS Debian Squeeze (i386)
PCIバス用 パラレル/シリアルI/O増設ボード KF-PIO9865-2S1P
搭載チップ MCS9865
の組み合わせとなります。
↓この写真のコネクタは完全に逆差しになっているので要注意。ただし、新しいロットは写真が差し替えられているようです。
増設ボードのメーカーページ(IOCREST)
MCS9865チップのメーカーページ(ASIX)
取り付け
パラレルポートに関してはデバイスドライバはカーネルに最初から入っており
プラグアンドプレイで使用出来ます。
シリアルポートはデバイスドライバ(カーネルモジュール)の組み込みが必要になります。
手順1 何らかの方法でドライバソースを入手する
商品を正規購入したのであれば付属CDの中に入っています。
ジャンク品等で基板のみ入手した場合はチップメーカーのページでもドライバソースを配布しているので
探してみてください。
手順2 カーネルソース、カーネルヘッダをインストールする
Debian Squeezeの場合は、
linux-source-2.6.32
linux-headers-2.6.32-5-686
の2つのパッケージをインストールしておきます。
~$ su ;管理者権限になる
# aptitude install linux-source-2.6.32 linux-headers-2.6.32-5-686
インストールが終わったら通常ユーザに戻っておきます
# exit ;通常ユーザに戻る
手順3 ドライバソースをmakeする
入手したドライバソースは.zip .tar等、圧縮ファイル化されていると思います。
これを展開してから自分のホームディレクトリなどに配置しておきます。
そして端末からコマンドを打ち込みます。
~$ cd /home/○○○○(あなたのユーザ名)/MCS9865_Linux_driver_v1.0.0.12 ;ドライバソースが置いてあるディレクトリに移動、ドライバのディレクトリ名・バージョンは適宜読み替えてください
~$ make
makeが終わったら管理者権限になってからmake installします
~$ su ;管理者権限になる
# make install
エラーが出なければ/dev以下にttyD0、ttyD1というデバイスファイルが出来上がっているはずです。
これがシリアルポートになります。
パラレルポートのアドレスは端末から、
~$ lspci -v
と打ち込むと下のような結果が出力されると思います。
この時のparallel controllerのところを見てアドレスを調べてください。
このアドレスを各種プログラムから指定することになります。
<注意>パラレルポートを扱う時は管理者権限になってからプログラムを実行します。
bit0からbit7までLEDを接続したもの。
↓ 例1 全bitを1秒ごとにON/OFFする c言語ソースリスト led.c サウンドファイル start.wav
↓ 例2 2進数で0から1ずつ増えていき、'11111111'になったらカウントストップする c言語ソースリスト led2.c サウンドファイル start.wav サウンドファイル end.wav
16桁2行液晶を4bitモードで制御するもの。
↓ 例3 液晶画面に「Hello World! Debian GNU/Linux」と表示する c言語ソースリスト lcd.c サウンドファイル start.wav サウンドファイル end.wav
GtkTermから使う方法
GtkTerm自体の説明はこちらをご覧ください。
http://debian.ina-ka.com/gtkterm/gtkterm.html
GtkTermではttyD0やttyD1といったデバイスファイル名が使えません。(予約語として予約されてない?)
そこで便宜的にシンボリックリンクを張って使います。
~$ su ;管理者権限になる
# ln -s /dev/ttyD0 /dev/ttyUSB0
シンボリックリンクを張るとGtkTermのポート選択でttyUSB0を選べるようになるのでそれを選択します。
そうするとttyD0をttyUSB0として使えるようになります。
ttyD1の場合も同じようにttyUSB1にシンボリックリンクを張れば使えるようになります。
GtkTermではなくその他のプログラムや自作プログラム等から使用する場合もリンクを張らないと使えません。
これはOS側のシリアルポートに関する取扱いの事情があるのかもしれません。
なお、パラレルポートの場合と違ってシリアルポートを使用する際は管理者権限になる必要はありません。
この辺の事情は、古いUnixの時代からの仕組みがLinuxにも続いているのだと思います。
トップページへ戻る