FreeBSD では、画像スキャナに対するアクセスは SANE (Scanner Access Now Easy) API によって実現されており、 FreeBSD Ports Collection でも提供されています。 SANE はスキャナのハードウェアにアクセスするために FreeBSD デバイスドライバを使用します。
FreeBSD は SCSI 接続および USB 接続のスキャナのどちらにも対応しています。 設定を始める前に、 SANE がスキャナに対応していることを確認してください。 対応しているスキャナについてのより詳細な情報については、対応デバイスの一覧 をご覧ください。
SCSI と USB の両方のインタフェースに対応しています。 スキャナのインタフェースによって、 必要となるドライバが異なります。
GENERIC
カーネルにはデフォルトで
USB スキャナに対応するためのデバイスドライバが搭載されています。
カスタムカーネルを使用する際には、
以下の行がカーネルコンフィグレーションファイルにあることを確認してください。
device usb device uhci device ohci device ehci
USB スキャナをシステムに接続してください。 dmesg(8) を利用して、スキャナが認識されているかどうか、 システムメッセージバッファで確認してください。
ugen0.2: <EPSON> at usbus0
これらの例では、スキャナが /dev/ugen0.2
または、/dev/uscanner0
を使用していることがわかります。
どちらのデバイスノードが利用されるかは FreeBSD
のバージョンに依存します。
この例では、EPSON
Perfection® 1650 USB スキャナが使われています。
スキャナのインタフェースが SCSI であれば、
どの SCSI ボードを使用するかを知ることが重要です。
使用する SCSI チップセットによって、
カーネルコンフィグレーションファイルを調整する必要があります。
GENERIC
カーネルは
一般に使用される SCSI コントローラのほとんどに対応しています。
/usr/src/sys/conf/NOTES
ファイルを読んで、
適切な行をカーネルコンフィグレーションファイルに追加してください。
また、SCSI アダプタドライバに加えて、
以下の行をカーネルコンフィグレーションファイルに記述する必要があります。
device scbus device pass
デバイスがメッセージバッファに出力されていることを確認してください。
pass2 at aic0 bus 0 target 2 lun 0 pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device pass2: 3.300MB/s transfers
システムを起動する際にスキャナの電源を入れてなければ、 camcontrol(8) コマンドを使用して SCSI バスをスキャンし、 以下のように手動でデバイスを検出させることもできます。
#
camcontrol rescan all
Re-scan of bus 0 was successful Re-scan of bus 1 was successful Re-scan of bus 2 was successful Re-scan of bus 3 was successful
すると、スキャナは SCSI デバイスの一覧に現れるでしょう。
#
camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0) <IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1) <AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3) <PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)
FreeBSD における SCSI デバイスについての詳細は、scsi(4) および camcontrol(8) をご覧ください。
SANE システムは、 二つの部分、すなわちバックエンド (graphics/sane-backends) とフロントエンド (graphics/sane-frontends) に分割されています。 バックエンドはスキャナに対するアクセスを提供します。 SANE の 対応デバイスの一覧 には、どのバックエンドが画像スキャナに対応しているかが記載されています。 デバイスを使用するためには、正しいバックエンドを決定する必要があります。 また、フロントエンドはグラフィカルなスキャニングインタフェース (xscanimage) を提供します。
graphics/sane-backends
port または package をインストールしたら、
sane-find-scanner
コマンドを使用して、
SANE
システムで検出されているスキャナを確認してください。
#
sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3
この出力から、 スキャナインタフェースの種類と システムに接続されているスキャナが使用するデバイスノードがわかります。 ベンダ名や製品のモデル名は表示されないかも知れません。
いくつかの USB スキャナではファームウェアを読み込む必要がある場合があります。 詳細については、sane-find-scanner(1) および sane(7) を参照してください。
次に、スキャナがフロントエンドで認識されるか調べてください。
SANE のバックエンドには
scanimage(1) と呼ばれるコマンドラインツールが付属します。
このコマンドを使用すると、
デバイスの一覧を表示したり画像を取得することができます。
スキャナデバイスの一覧を表示するには、
-L
オプションを使ってください。
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner
これは 「USB インタフェース」 で説明した USB スキャナにおける出力です。
#
scanimage -L
device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner
この出力の中で、
'epson2:libusb:/dev/usb:/dev/ugen0.2'
がスキャナが使用するバックエンド名
(epson2
) およびデバイスノード
(/dev/ugen0.2
) です。
何も出力が得られなかったり、
スキャナが見つからなかったというメッセージが表示されたら、
scanimage(1) はスキャナを認識できなかったのでしょう。
このような場合は、/usr/local/etc/sane.d/
にあるバックエンドの設定ファイルを編集し、
使用するスキャナデバイスを定義する必要があります。
この例では、USB スキャナは、正常に検出され動作しています。
スキャナが正しく認識されているかどうか確認してみましょう。
#
scanimage -L
No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
スキャナが認識されなかったので、
/usr/local/etc/sane.d/epson2.conf
を編集してください。この例では、
スキャナのモデルは EPSON
Perfection® 1650 なので、
epson2
バックエンドを使用します。
編集作業を行う際には、
バックエンドの設定ファイルに書かれているヘルプコメントを読んでください。
設定ファイルを変更するのは非常に簡単です。
使用しているスキャナには不適切なインタフェースをすべてコメントアウトします。
今回の場合は、スキャナは USB
インタフェースを使用するので scsi
という語で始まる行をすべてコメントアウトします。
その後、ファイルの末尾に使用するインタフェースとデバイスノードを追加します。
この例では、以下の行を追加します。
usb /dev/uscanner0
編集を保存し、 スキャナが認識されたかどうかを確認してください。
#
scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner
`epson:/dev/uscanner0'
フィールドで、
バックエンド名とデバイスノードが正しく認識されていることがわかります。
scanimage -L
を実行してスキャナが認識されたことがわかれば、設定は終了です。
デバイスはスキャンする準備ができました。
scanimage(1) を使用してコマンドラインから画像を取得することができますが、 GUI を使用して画像を取得できるとより望ましいでしょう。 graphics/sane-frontends package および port は、シンプルですが、 効率的なグラフィカルインタフェース xscanimage をインストールします。
graphics/xsane package または port からインストールされる Xsane は、 広く使われているもう一つのグラフィカルなスキャニングフロントエンドです。 Xsane には、さまざまなスキャニングモード、 色補正、バッチスキャンなど先進的な機能があります。 これらのアプリケーションの両方とも GIMP のプラグインとして使用することができます。
スキャナにアクセスするには、
ユーザはスキャナが使用するデバイスノードへの
読み込み権限と書き込み権限が必要です。
今回の例では、USB スキャナは /dev/ugen0.2
デバイスノードを使用しています。
このデバイスノードは、
/dev/usb/0.2.0
へのシンボリックリンクです
シンボリックリンクとデバイスノードは、
それぞれ wheel
および
operator
グループが所有しています。
ユーザをこれらのグループに加えると、
スキャナを使用できるようになります。
しかしながら、ユーザをグループ
(特にグループ wheel
)
に追加する時には、
セキュリティ上の理由から二度は検討を行うべきです。
良い方法は、スキャナデバイスにアクセスできるグループを作成することです。
この例では、
という名前のグループを pw(8) を使って作成します。usb
#
pw groupadd usb
その後、シンボリックリンク /dev/ugen0.2
および、/dev/usb/0.2.0
デバイスノードに対して、
usb
グループが利用できるように書き込みの許可属性
(0660
または 0664
)
を設定してください。
/etc/devfs.rules
に次の行を追加すれば設定できます。
[system=5] add path ugen0.2 mode 0660 group usb add path usb/0.2.0 mode 0666 group usb
最後に、スキャナを利用するユーザを
グループに追加してスキャナを利用できるようにしてください。usb
#
pw groupmod usb -m joe
詳細については、pw(8) をご覧ください。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。