2. インターフェースのタイプ

この文書で扱っている利用可能なスキャナーインターフェースには、SCSI、 USB、パラレルポートと IEEE 1394のおもに4つのタイプがあります。 Linux サポートは、ほとんどのスキャナーについてSANE プロジェクトで開発され ています。SANE はTWAINと同じものではあり ません。Apple Macintosh™ や Microsoft Windows™ のような別のオペレーティングシステムでスキャナーデ バイスを使っているなら TWAIN をご存じかもしれま せん。後者のプロトコルは、ドライバやユーザインターフェースといっしょに なっていて専用の環境以外で使うことはできません。したがって、 SANE や Scanner Access Now Easy は、 Linux(同一ものに限りませんが)を含む Un*x の環境で使うように想定されています。SANE では、お使いのデバイスで コマンドラインだけでスキャンできますし、SANE バックエンドで使うために お使いのフロントエンドアプリケーションを設定できますし、ネットワーク越 しにスキャナー類にアクセスでき、また、カメラやその他video4linux のデバイスにも アクセスできます。

注意:さらに先を読む前に、お使いのスキャナーデバイスがサポートされてい るかどうかは、SANE のホームページhttp://www.sane-project.org/sane-mfgs.html を調べるのがよいでしょう。sane supported scanners search engine も利用できます。

統合デバイス、たとえばスキャナー、プリンターそして(または)ファックス としての機能がひとつになったものを持っていて、標準のスキャナーとし て適切なインターフェースを使うスキャナー機能に関しては、下記のステッ プに従ってください。HP officejetの場合は、Linux で動く統合デバイスのさ まざまな機能をどのように使うかについての詳細は the HP Officejet Linux Driver project site,を調べるのがよいでしょう。

2.1. SCSI スキャナー

これらのスキャナーは SCSI コントローラで管理されています。一般に、SCSI ハードウェアを想定して動く SCSI インターフェースを使うスキャナーはどれ もサポートされています。SCSI コントローラがサポートされているかどうか 確信が持てないなら、SCSI controller list of the Hardware HOWTOを調べてください。お使いの SCSI コン トローラがスキャナーにバンドルされているものなら、ハードウェアがサポー トされていないか一部しかサポートされていないかもしれませんので、付属 SCSI カードの場合は、ちゃんとした SCSI コントローラと同じようには動か ないかもしれません。

お使いの SCSI スキャナーが何らかの点で設定が困難なら、 man sane-scsi で調べてください。

2.2. USB スキャナー

USB コネクタがどんなもので、どこにつながるかはすでにご存じでしょう。 USB スキャナーを持っているなら、お使いのハードウェアは Linux でサポー トされている見込みがあります。 USB サブシステムと USB スキャナーを使用 可能にする情報はSection 2.5を見てください。

2.3. パラレルポートスキャナー

パラレルポートインターフェースでスキャナーを使いたいなら、Section 2 にあるサポートされているデバイスのリンクを調べ た後、page on the subject, by Jonathan Buzzard のページを見たほうがよいでしょう。 この文書を書いている時点で、前者のページは更新はされていませんでしたが。 概してパラレルポートスキャナーはそれをサポートするバックエンドがあれば 動かせますが、お使いのデバイスが USB ポート(最近リリースされた新しい スキャナーのほとんどがそうなっています)も持っており、USB バックエンド を動かせるなら、それをかわりに使うよう強くお勧めします。お使いのモデル がパラレルポートインターフェースしかなく、しかも専用で非標準のコントロー ラなら、うまくいかないかもしれません。

2.4. IEEE 1394 (Firewire™, i.Link™)

IEEE 1394 スキャナーはこの文書を書いている時点でサポートされているもの もあります。 Nikon と Epson の製品がそれです。IEEE 1394 インターフェー スは Linux のカーネル 2.4 系以降サポートされています。お使いのカーネル で IEEE 1394 がサポートされているなら、Section 2 で 製造業者のリンクから SANE をサポートするデバイスを調べたほうがよいでしょ う。また、お使いの固有のハードウェアに関係する何らかの問題については、 ハードウェア(もしあれば)について manpage を読んだほうがよいでしょう。

2.5. オペレーティングシステムサポート

USB スキャナーを持っていないなら、Section 2.7 を飛ばして ください。そしてお使いの装置がパラレルポートのものなら、Section 2.8 に飛んでください。

2.6. USB スキャナーと Libusb

この項は以前は"USB スキャナーカーネルサポート"というタイ トルでしたが、libusbの登場で、 USB スキャ ナーを使用可能にしたカーネルの必要がなくなっています。このような対応状 況の違いについての詳しい情報は、 man sane-usb を調 べてください。お使いの USB スキャナーについて従来通りのカーネルサポー トのほうがよいなら、Section 2.7.2 を見てください。この点 についてほとんどのディストリビューションは、安定版(そしてデフォルトで インストールするものもあります)で、libusb を提供(デフォルトでインス トールされるものもあります)していますから、すでに USB スキャナーデバ イスをサポートするカーネルを使っていないなら、お使いのデバイスにアクセ スするために libusb パッケージをインストールすればよいだけかもしれませ ん。ほとんどのディストリビューションではそうなっていますが、カーネルで USB デバイスファイルシステムサポートを有効にしていなければいけません。 確認するために、コマンドラインで次のコマンドを実行します。

$ cat /proc/filesystems

次のようなものが表示されるはずです(表示されるものはこれら以外にもありますが):


nodev   usbdevfs
nodev   usbfs

usbdevfs をマウントし使用可能にして、デバイスファイルを見ないといけな いかもしれません。コマンドラインで次のように行います。 mount -t usbdevfs none /proc/bus/usb kernelスキャナーサポートが組込みか、あるいはモジュー ルをロードするかのどちらかで使用可能になるまで、 libusb を使ってはいけ ません。同時にひとつだけしか使えません。

お使いの Linux ディストリビューションから .rpm.tgz または .deb で libusb のパッケージを入手できます。自分で libusb サポートのあるソースから SANE バイナリをコンパイルするつもりなら、 libusb-dev パッケージも同様に入手しておきます。

2.7. お使いのスキャナーデバイスの Linux カーネルサポート

カーネルサポートは SCSI、USB とパラレルポート一般のインターフェースサ ポート、USB スキャナーサポート(libusb を使わないなら)になります。す でに使っているカーネルが必要なものをサポートしているなら、 dmesgコマンドを使って、起動時にロードされたドライバ の認識状況を調べることです。見つからない場合、ドライバはモジュール(必 要がないとロードしない)として存在するかもしれません。コマンドラインで 次のように入力して探してください:

 $  ls -R /lib/modules/X.XX/kernel/drivers 

'X.XX' にはお使いのカーネルバージョンの数字が入ります。次の出力は USB スキャナーが使用可能になっている例です(ここに示したものがすべてではなく、 関連する行を短く編集しています):


./usb:
scanner.o
usbcore.o

(初心者へのヒント:dmesg 情報や モジュールリストの表示が速すぎて見えない なら、'less' ( less がないなら 'more')で出力をパイプしてみましょう。 ls -R /lib/modules/X.XX/kernel/drivers | less あるいは、次のようにして、ファイルに書きだします。 ls -R /lib/modules/X.XX/kernel/drivers > file.txt 'file.txt' には、情報が書きだされますから、 cat [file] | lessで、ファイルにアクセスできます。)

次の情報は、スキャナーインターフェースのタイプを基準にして並べてあ ります。お使いのカーネルに必要なサポートが含まれていないなら、カーネルの再 構築をしましょう。カーネルの再構築に不慣れなら、詳細については Kernel HOWTO の指示に従いましょう。

2.7.1. カーネル SCSI サポート

SCSI タイプのインターフェースなら、make configmake menuconfigあるいは、make xconfig などを行うとき、お使いの固有の SCSI アダプタをサポー トするオプションを追加するのを知っておいてください。generic SCSI device support もまた必要になります。一般的なデバイスというのは /dev/sg0, /dev/sg1 になります。お使いのカードがサポー トされているかどうかは supported SCSI controllers list を読めば前もって分かるので、これらすべてはカー ネルがお使いのハードウェアをサポートしていることを確認した後にやる必要 があります。generic SCSI device は、適切なモジュールをロードするための ものです。

# modprobe CARD_MODULE_NAME

# modprobe sg

......root 権限で。 スキャナーアクセスに問題を起こす ide-scsi emulation support ( ATAPI-eide CDRW supportを使う場合)の報告がありました。お使いのハー ドウェアがサポートされているのが分かっているのに、ide-scsi module をア ンロード出来ないことがあります。:

rmmod
ide-scsi

(この問題が最新のカーネルで修正済かど うかご存知の方は、私に連絡してください。)

2.7.2. カーネル USB と USB スキャナーサポート

USB のスキャナーをサポートするには、カーネルの USB サブシステムサポー トと、usb-ohci もしくは usb-ehci もしくはお使いのシステムにあった USB ドライバ のいずれかが必要になります。USB サブシステムはカーネル 2.2 以 降から Linux のカーネルに存在してきました。一般的に USB サポートについ てのより詳しい議論は、linux-usb project site を見てください。お使いのスキャナーにアクセスする ためカーネルを(libusb の代りに、Section 2.6 に解説しまし た)にアクセスするためカーネルを使うなら、'USB scanner support' を使用 可能にしないといけません。すでに存在するかどうかは、 dmesgあるいはlsmod で確認するか、 モジュールがロードされているかどうかを調べるのは、コマンドラインか、 xterm で次のようにします。

# lsmod

上の行のプロンプト記号で示されるように、この作業は root 権限で やらないといけません。次のような出力(これだけというわけではありませ んが)になるでしょう。:

cdrom                  29312   0  (autoclean) [sr_mod]
usb-ohci               17888   0  (unused)
usbcore                56768   0  [scanner ibmcam usbvideo usb-ohci]
scanner                 8704   0 

scanner がロードされておらず、カーネルでモジュールとし て USB scanner support があるのが分かっているなら、直接ロードしてくださ い。:

# modprobe -v scanner

...次に示すものに似ている項目が見つかるはずです。:

Using /lib/modules/2.4.20/kernel/drivers/usb/scanner.o

/etc/modules(ディストリビューションによって ファイル名はさまざまであることに注意) にscanner という項目を書くことで、起動時に自動的にモジュールをロードできます。 さらに、 syslog あるいは dmesg | lessで起動時の記録を 調べてモジュールがロードされたのを確認できます。 次のような行があるはずです。


May 16 23:17:25 K7 kernel: usb.c: registered new driver usbscanner
May 16 23:17:25 K7 kernel: scanner.c: 0.4.6:USB Scanner Driver

2.8. パラレルポートスキャナー

ここまでの説明で、パラレルポートスキャナーは問題があるかもしれないのを ご存じかもしれませんが、もう一度言います。お使いのデバイスがパラレルポー トインターフェースと USB インタフェースの両方があるなら、より簡単に設 定するために USB を選択するように考えたほうがよいでしょう。

2.8.1. カーネル Parport サポート

2.2 と 2.4 カーネルシステムでは、パラレルポートサポートは組み込み、あ るいはモジュール(すでにお使いのカーネルは通常デフォルトで使用可能です) で使用可能にしなければいけません。この作業を始める前にmore generic info about parallel-port device support under the Linux kernelを読んだほ うがよいかもしれません。モジュールparportがロード されているかどうかは、dmesgを調べるか、先に説明し たように lsmod を使って調べることができます。 dmesg | lessで、次のような行(この他にも行はありま す)がないといけません。


Mar  3 08:00:25 K7 kernel: parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
Mar  3 08:00:25 K7 kernel: parport0: irq 7 detected

自分でカーネルをコンパイルするなら、'Parallel Port support'を使用可能 にします。'IEEE 1284 transfer modes,'を使用可能にし、そして、x86 タイ プアーキテクチャをお使いなら、 'PC-style hardware' も使用可能にしなければ いけません。

モジュールをロードしようとした時エラーが出るなら、 modprobeを実行するときにハードウェアアドレスを決め て与える必要があるかもしれません。通常のアドレスは x86 システムでは 0x378 です。統合されたものや ISA のパラレルポートの場合は 0x278 と 0x3BC の可能性もあります。Add-in PCI parallel ports は違ったベースアド レスを持っています。ひとつは parport_pc または parport_arc モジュール のどちらかに複数のデバイスを配置することもできますが、これはこの文書の 範囲を超えています。警告: コマンドラインでこの情報を入力する前に正しい アドレスを使っているか確認してください。さもないとあなたのマシンが不安 定になったり、故障したり壊れるかもしれません。

パラレルポートは "EPP"モード、あるいは ECP/EPP のどちらか に設定されていなければいけません。"Bidirectional(双方向) ""BPP" あるいは "PS/2")としても知 られています)ゆっくりですが動くかもしれません。 "Unidirectional(一方向)"モードはスキャンニングには不適 切です。上記設定は少なくとも x86 システムでは、通常 BIOS メニューを通 してアクセスできます。

パラレルポートスキャナーが SCSI サポートを必要とするかどうかによります が、parport-SCSI support には、お使いのカーネルにパッチがいるかもしれ ません。www.torque.net/parport/ppscsi.html でツール一式があります。これが必要なら、次の項目も有効にする必要があります。

  • SCSI support

  • SCSI generic support

  • お使いの ppSCSI コントローラのコアモジュールに関するサポート( APA-348 に対しては t348、 APA-358 と T358 には t358、より古い Shuttle EPSA-2 には epsa2、Shuttle EPST と APA-1350 には epst、OnSpec 90c26 には onscsi、SparCSI と ParaSCSI には sparcsi)。

一度これらがコンパイルされると、適切なモジュールをロードするのは簡単です。