FreeBSD では、画像スキャナに対するアクセスは SANE (Scanner Access Now Easy) によって実現されており、 FreeBSD の Ports Collection で提供されています。 SANE はスキャナのハードウェアにアクセスするために FreeBSD デバイスドライバを使用します。
FreeBSD は SCSI 接続および USB 接続のスキャナのどちらにも対応しています。 スキャナのインタフェースに依存して、異なるドライバが必要となります。 設定を始める前に、 SANE がスキャナに対応していることを確認してください。 対応しているスキャナに関してのより詳細な情報については、 http://www.sane-project.org/sane-supported-devices.html をご覧ください。
この節では、FreeBSD がどのようにしてスキャナを認識するかについて説明します。 その後、FreeBSD システム上で SANE を設定して使用する方法の概要について説明します。
GENERIC
カーネルには USB
スキャナに対応するためのデバイスドライバが搭載されています。
カスタムカーネルを使用する際には、
以下の行がカーネルコンフィグレーションファイルにあることを確認してください。
device usb device uhci device ohci device ehci device xhci
USB スキャナが認識されたかを確認するには、
スキャナを接続して、dmesg
を利用し、
システムメッセージバッファで、
スキャナが認識されているかどうかを確認してください。
認識されていたら、以下のようなメッセージが表示されます。
ugen0.2: <EPSON> at usbus0
この例では、EPSON
Perfection® 1650
USB スキャナが
/dev/ugen0.2
上で認識されています。
スキャナのインタフェースが 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
を使用して
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) を経由してスキャナに対するアクセスを提供します。 バックエンドが対応している画像スキャナについては、http://www.sane-project.org/sane-supported-devices.html を参照してください。 グラフィカルなスキャニングインタフェースは、 Kooka (graphics/kooka) または XSane (graphics/xsane) といったサードパーティ製のアプリケーションによって提供されています。 SANE のバックエンドは、 スキャナを試すには十分です。
バイナリ package から、バックエンドをインストールするには、 以下のように実行してください。
#
pkg install sane-backends
あるいは、Ports Collection からインストールするには、 以下のように実行してください。
#
cd /usr/ports/graphics/sane-backends
#
make install clean
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
が付属します。
このコマンドを使用すると、
デバイスの一覧を表示したり画像を取得することができます。
スキャナデバイスの一覧を表示するには、
-L
オプションを使ってください。
以下の最初の例は、SCSI スキャナ用のもので、
次の例は、USB スキャナ用のものです。
#
scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner#
scanimage -L
device 'epson2:libusb:000:002' is a Epson GT-8200 flatbed scanner
2 番目の出力において、
epson2
がバックエンド名で、
libusb:000:002
は
/dev/ugen0.2
を意味し、
スキャナが使用するデバイスノードです。
scanimage
がスキャナの認識に失敗した場合には、
以下のようなメッセージが表示されます。
#
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/
にあるバックエンドの設定ファイルを編集して、
使用するスキャナデバイスを設定してください。
例えば、認識されなかったスキャナのモデルが、
EPSON
Perfection® 1650 で、epson2
バックエンドを使っているのであれば、
/usr/local/etc/sane.d/epson2.conf
を編集してください。
編集作業を行う際には、
使用するインタフェースとデバイスノードを指定する行を追加します。
この例では、以下の行を追加します。
usb /dev/ugen0.2
編集を保存し、 適切なバックエンド名とデバイスノードでスキャナが認識されたかどうかを確認してください。
#
scanimage -L
device 'epson2:libusb:000:002' is a Epson GT-8200 flatbed scanner
scanimage -L
を実行してスキャナが認識されたことがわかれば、設定は終了です。
スキャナを使用する準備ができました。
scanimage
を使用してコマンドラインから画像を取得することができますが、
GUI を使用して画像を取得できることが望ましいでしょう。
Kooka や
xsane といったアプリケーションは、
広く使われているスキャニングフロントエンドです。
これらには、さまざまなスキャニングモード、
色補正、バッチスキャンなど先進的な機能があります。
XSane は、GIMP
のプラグインとして使用することもできます。
スキャナにアクセスするには、
ユーザはスキャナが使用するデバイスノードへの読み込み権限と書き込み権限が必要です。
今回の例では、USB スキャナは
/dev/ugen0.2
デバイスノードを使用しています。
このデバイスノードは、
/dev/usb/0.2.0
へのシンボリックリンクです
シンボリックリンクとデバイスノードは、
それぞれ wheel
および
operator
グループが所有しています。
ユーザをこれらのグループに加えると、
スキャナを使用できるようになりますが、
ユーザを wheel
に追加することは、セキュリティの観点からお勧めできません。
良い方法は、
スキャナデバイスにアクセスできるグループを作成することです。
この例では、
という名前のグループを作成します。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 デバイスにアクセスしたい場合には、 代わりに以下のルールセットを使ってください。
[system=5] add path 'ugen*' mode 0660 group usb add path 'usb/*' mode 0666 group usb
このファイルの詳細については、 devfs.rules(5) を参照してください。
つぎに、/etc/rc.conf でルールセットを有効にしてください。
devfs_system_ruleset="system"
そして、devfs(8) システムを再起動してください。
#
service devfs restart
最後に、スキャナを利用するユーザを
グループに追加してスキャナを利用できるようにしてください。usb
#
pw groupmod usb -m
joe
詳細については、pw(8) をご覧ください。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。