Linux Log (1999/05/22)

 エプソンのイメージスキャナ(GT-6000)とパラレルインタフェースボードを持っているのですが、NT用のドライバが用意されず、長い間眠ったままになっていました。Linux用のプログラムがないか探してみると、ppicというものが見つかりました。ところが、少し試行錯誤してみたのですが、どうもコンパイルが通りません。あきらめて、別の方法を考えてみました。

 Linuxでは、アプリケーションから直接I/Oポートを操作できる、と読んだような気がしたので、調べてみると、iopermとinb, outbなどを使えば何とかなりそうです。確認用に、次のプログラムを作ってみました。これは、インタフェースボードを介してLPT2につながっているスキャナに対して、信号線INITをONにすることで、リセットをかけるものです。

#include <unistd.h>
#include <asm/io.h>

main()
{
        ioperm(0x27a, 1, 1);
        outb(0x20, 0x27a);
        outb(0x24, 0x27a);
        sleep(3);
        outb(0x20, 0x27a);
}

 -O2で最適化してコンパイルし、rootで実行してみると、スキャナにリセットがかかりました。ということは、データの送受信を試す必要はありますが、この調子で機能を強化していけば、スキャナを操作するプログラムができそうです。しかし、それよりも、ppicのコンパイルを通す方が楽でしょうね ^^;


Linux Logの目次へ