8.7. 画像スキャナ
戻る | 第8章 マルチメディア | 次へ

## 8.7. 画像スキャナ

寄稿: Fonvieille Marc [FAMILY Given].

### 8.7.1. はじめに

FreeBSD では、画像スキャナに対するアクセスは SANE (Scanner Access Now Easy) API によって実現されており、 FreeBSD Ports Collection でも提供されています。 SANE はスキャナのハードウェアにアクセスするために FreeBSD デバイスドライバを使用します。

FreeBSD は SCSI 接続および USB 接続のスキャナのどちらにも対応しています。 設定を始める前に、 SANE がスキャナに対応しているか確認してください。 SANE には スキャナについての情報とその状況がまとめられている 対応デバイスの一覧 があります。

### 8.7.2. カーネルのコンフィグレーション

前述のように、FreeBSD はスキャナのインタフェースとして SCSI と USB の両方に対応しています。 スキャナのインタフェースによって、必要となるドライバが異なります。

#### 8.7.2.1. USB インタフェース

`GENERIC` カーネルにはデフォルトで USB スキャナに対応するためのデバイスドライバが搭載されています。 カスタムカーネルを使用する際には、 以下の行がカーネルコンフィグレーションファイルにあることを 確認してください。

device usb device uhci device ohci device ehci

適切なドライバを組み込んだカーネルで再起動後、 USB スキャナをシステムに接続します。 すると、メッセージバッファ (dmesg(8)) にスキャナが認識されたことを示すメッセージが出力されます。

ugen0.2: <EPSON> at usbus0

これらの例では、スキャナが `/dev/ugen0.2` デバイスノードを使用していることがわかります。 この例では、EPSON Perfection® 1650 USB スキャナが使われています。

#### 8.7.2.2. SCSI インタフェース

スキャナに付属しているインタフェースが SCSI であれば、 重要なのはどの SCSI ボードを使用すればよいか把握することです。 使用する SCSI チップセットによって、 カーネルコンフィグレーションファイルを調整する必要があります。 `GENERIC` カーネルは 一般に使用される SCSI コントローラのほとんどに対応しています。 `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)

SCSI デバイスについての詳細は、scsi(4) および camcontrol(8) のマニュアルページをご覧ください。

### 8.7.3. SANE の設定

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

これは、FreeBSD 8.X システムでの出力例であり、 `'epson2:libusb:/dev/usb:/dev/ugen0.2'` から、 使用しているスキャナのバックエンド名 (`epson2`) とデバイスノード (`/dev/ugen0.2`) の情報を得ることができます。

### 注記:

何も出力が得られなかったり、 スキャナが見つからなかったというメッセージが表示されたら、 scanimage(1) はスキャナを認識できなかったのでしょう。 このような場合は、バックエンドの設定ファイルを編集し、 使用するスキャナデバイスを定義する必要があります。 `/usr/local/etc/sane.d/` ディレクトリには、 バックエンドが使用するすべての設定ファイルがあります。 このデバイスの認識による問題は、 特定の USB スキャナで発生するものです。

たとえば、 「USB インタフェース」 で使用した USB スキャナは、 FreeBSD 8.X において正常に認識され動作します。 しかし、それより前のバージョンの (uscanner(4) ドライバを利用する) FreeBSD では、 `sane-find-scanner` コマンドを実行すると、以下のような情報が得られます。

`#` `sane-find-scanner -q` found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0

スキャナは正しく検出されました。 USB インタフェースを使用し、 `/dev/uscanner0` デバイスノードに接続されていることがわかります。 次に、スキャナが正しく認識されているかどうか確認してみましょう。

`#` `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

USB スキャナが認識されました。 ブランドやモデルがスキャナに一致しなかったとしても、それほど重要ではありません。 着目すべきは ``epson:/dev/uscanner0'` という部分で、 バックエンド名とデバイスノードが正しく認識されていることがわかります。

`scanimage -L` コマンドを実行してスキャナが認識されたことがわかれば、設定は終了です。 デバイスはスキャンする準備ができました。

scanimage(1) コマンドを使用すると コマンドラインから画像を取得することができます。その一方で、 GUI を使用して画像を取得できると一層良いでしょう。 SANE は、簡素ですが役に立つグラフィカルなインタフェース xscanimage (`graphics/sane-frontends`) を提供しています。

Xsane (`graphics/xsane`) はもう一つのグラフィカルなスキャニングフロントエンドで、 人気があります。 Xsane には、さまざまなスキャニングモード (写真、FAX など)、 色補正、バッチスキャンなど先進的な機能があります。 これらのアプリケーションの両方とも GIMP のプラグインとして使用することができます。

### 8.7.4. 他のユーザがスキャナにアクセスすることを許可する

前述の操作には、 すべて `root` 権限が必要となります。 しかしながら、他のユーザがスキャナに アクセスできるようにすることも可能です。 そのためには、スキャナが使用するデバイスノードへの 読み込み権限と書き込み権限をユーザに与えます。 一例として、USB スキャナが、`/dev/ugen0.2` デバイスノードを使用しているものとします。 このデバイスノードは、 `/dev/usb/0.2.0` へのシンボリックリンクです (`/dev` ディレクトリを調べると、 簡単に確認できます)。 シンボリックリンクとデバイスノードは、 それぞれ `wheel` および `operator` グループが所有しています。 ユーザ ``joe`` を これらのグループに加えると、彼はスキャナを使用できるようになります。 もちろん、ユーザをどんなグループ (特にグループ `wheel`) に追加する時はいつでも、 セキュリティ上の理由から二度は検討を行うべきです。 良い方法は、USB デバイスを利用するためにグループを作成し、 このグループに対してスキャナデバイスを利用できるようにすることです。

例として、``usb`` という名前のグループを使用します。 まず最初に、pw(8) コマンドを使ってグループを作成します。

`#` `pw groupadd usb`

その後、シンボリックリンク `/dev/ugen0.2` および、`/dev/usb/0.2.0` デバイスノードに対して、 `usb` グループが利用できるように適切な許可属性 (`0660` または `0664`) を設定する必要があります。 デフォルトでは、これらのファイルの所有者 (`root`) のみが書き込み可能です。 `/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) のマニュアルページをご覧ください。

戻る | 上に戻る | 次へ
8.6. MythTV | ホーム | 第9章 FreeBSD カーネルのコンフィグレーション

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。