SANE/スキャナー別の問題
この記事では SANE を使う時のスキャナーあるいはメーカー別の問題を扱っています。
BenQ/Acer
Acer (BenQ) 製の USB スキャナーを使用する場合、適切なファームウェアバイナリをダウンロードして /etc/sane.d/snapscan.conf
を設定する必要があります。
- 使用しているモデルを確認して USB ID をメモしてください:
$ lsusb
Bus 002 Device 010: ID 04a5:20b0 Acer Peripherals Inc. (now BenQ Corp.) S2W 3300U/4300U
- snapscan のメインページを開いてスキャナーがサポートされているかどうかや必要なファームウェアを確認してください (例:
u176v046.bin
)。 - インターネットでファームウェアイメージを検索して
/usr/share/sane/snapscan/
にダウンロードしてください。 /etc/sane.d/snapscan.conf
を編集して以下の2行を設定してください:
firmware /usr/share/sane/snapscan/u176v046.bin /dev/usb/scanner0 bus=usb
Brother
Brother のスキャナーやプリンター・スキャナー複合機を使うには適切なドライバーが必要です。Brother Linux スキャナーページ で使用している機種を検索してください。
それから適切なパッケージをインストールしてください:
- brscan2AUR
- brscan3AUR
- brscan4AUR
- libsane-dsseriesAUR
ドライバーをインストールすると SANE からスキャナーが認識されるようになります。
ネットワークスキャナーの場合、Brother は brscan のバージョンにあわせて設定ツールを用意しています (例: brscan2 互換デバイスの場合は brsaneconfig2):
# brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP>
例:
# brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110
ネットワークスキャニング
WiFi などによるネットワークスキャニングの場合、Sane がスキャナーを認識できないことがあります。その場合、/etc/sane.d/net.conf
ファイルにスキャナーの IP アドレスを指定してください。
scanimage --check-devices
を使って sane からスキャナーが認識されているか確認してください。確認できない場合、Sane がネットワークデバイスとして認識できるようになっているか確認してください ([1] を参照)。/etc/sane.d/dll.conf
に brotherX
(X
は上記の brscan のバージョンと対応します) と記述されているか確認して、存在しない場合はファイルの末尾に brotherX
を追加してください。
Invalid argument
必要なパッケージを全てインストールしたのに "invalid argument" エラーが表示される場合、設定ファイルが破損している可能性があります。以下のコマンドを実行してください (brscan4 の場合):
# brsaneconfig4 -d
出力によって問題を絞り込むことができます。大抵の場合は接続が正しく設定されていないことが原因です。ネットワークスキャナーの場合は /etc/opt/brother/scanner/brscan4//brsanenetdevice4.cfg
をエディタで開いて IP アドレスが正しいことを確認してください。USB 接続の場合は設定ファイルのスキャナーのパスが正しいことを確認してください。lsusb
コマンドによって出力された値と設定ファイルの値を比較して必要に応じて値を変更してください。
Scan-key-tool
接続したコンピュータではなくスキャナー自体からユーザーが操作してスキャンをすることができるツールを Brother はリリースしています (例えばスキャナーのキーパッドで "Scan to email" や "Scan to image" を選択するなど)。brscan-skeyAUR パッケージをインストールして systemd を使って brscan-skey.service
を起動してください。デフォルトではパッケージによって作成される brscan-skey ユーザーとしてサービスが実行されます。ホームディレクトリは /srv/brscan-skey
です。
Brother はキーパッドでスキャンタイプが選択されたときに実行されるデフォルトスクリプトを用意しています。スクリプトを使うには brscan-skeyAUR パッケージの任意の依存パッケージをインストールする必要があります。"Scan to email" 以外のオプションでは作成された結果は $HOME/brscan
に出力されます。$HOME
はツールを実行したユーザーのホームディレクトリです (systemd で起動した場合は /srv/brscan-skey
になります)。
キーパッドでスキャンのタイプが選択されたときに何を行うかを変更することが可能です。変更するには /opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg
を編集します。スキャンタイプが選択されると IMAGE
, OCR
, EMAIL
, FILE
の SCAN_COMMAND
変数が実行されます:
$ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME
$SCAN_COMMAND
はクォートでかこまれていないので、複数の位置パラメータを指定して実行することができます。$SCANNER_DEVICE
はデバイスの名前を参照し、sane のフロントエンドに指定する必要があります (例: scanimage
を使う場合は --device-name
フラグ)。例えば: brother3:bus4;dev2
。$SCANNER_FRIENDLY_NAME
はヒューマンリーダブルなスキャナーの名前です。
xsane がクラッシュする
xsane が =bugchk_free(ptr==(nil))@brother_modelinf.c(482)
というメッセージを吐いて終了する場合は /usr/local/Brother -> /usr/share/brother
のリンクを作成してください。
Canon
Canon Pixma オールインワンプリンター/スキャナーを使ってネットワークを介してスキャン
プリンター/スキャナーの IP アドレスを確認して、/etc/sane.d/pixma.conf
に bjnp://10.0.0.20
という形式で追加してください。
これで Sane はデバイスを見つけられるはずです。詳しくは man sane-pixma
を参照。
Epson
Epson 製のスキャナーでは "Image Scan! for Linux" が使えます。
- iscan パッケージをインストールしてください。
- 使用しているスキャナーにあわせて適切な iscan-plugin パッケージをインストールしてください (例えば Epson Perfection Photo V600 の場合は iscan-plugin-gt-x820AUR)。
- 再起動すると udev によってデバイスがスキャナーとして認識され適切なパーミッションが設定されます。
ネットワークスキャナー (Wi-Fi を含む) の場合、iscan と iscan-plugin-networkAUR をインストールしてから /etc/sane.d/epkowa.conf
を編集して以下の行を追加してください:
net {IP_OF_SCANNER}
Epson Perfection 1270
Epson Perfection 1270 の場合、esfw3e.bin
という名前のファームウェアが必要です。Windows 版のドライバーをインストールすることで入手できます。
snapscan バックエンドの設定ファイル /etc/sane.d/snapscan.conf
を編集してファームウェアのパスを変更してください:
# Change to the fully qualified filename of your firmware file, if # firmware upload is needed by the scanner firmware /mnt/mydata/Backups/firmware/esfw3e.bin
そして以下の行を追加してください:
# Epson Perfection 1270 usb 0x04b8 0x0120
sane-find-scanner コマンドを実行することでコード情報 (usb 0x04b8 0x0120
) は取得できます。
それから以下のような行を /etc/hotplug/usb/libsane.usermap
に追加して権限を設定してください:
# Epson Perfection 1270 libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
スキャナーを再接続することで Epson Perfection 1270 が使えるようになります。
scanimage: sane_start: Error during device I/O
というエラーでスキャナーがフリーズしないように、ADF (automatic document feed) を有効にしてスキャンするときは、/etc/sane.d/dll.conf
から全てのバックエンドを削除・コメントアウトしてバックエンドを次のファイルに追加する必要があります:snapscan
。
修正しても Error during device I/O
メッセージが表示される場合はスキャナーの (下部に存在する) 転送ロックが解除されていることを確認してください。
Epson Perfection 1670/2480/2580/3490/3590
使用している Epson の機種にあわせて適切なファームウェアをダウンロードしてください。モデルとドライバーについては [2] や [3] で確認できます。ファームウェアのダウンロードリンクは壊れていますが こちらのリンク からダウンロードできます。ファームウェアのファイル名は使用してるモデルにあわせて変更してください。Epson の公式サイトからファームウェアソースをダウンロード・解凍したい場合は こちらのガイド を読んでください。
AUR の sane-epson-perfection-firmwareAUR パッケージでもファームウェアをインストールできます。公式のソースからダウンロードしてバイナリが抽出され /usr/share/sane/snapscan/
にインストールされます。
snapscan バックエンドの設定ファイル /etc/sane.d/snapscan.conf
を編集してファームウェアのパスを指定してください:
# Change to the fully qualified filename of your firmware file, if # firmware upload is needed by the scanner firmware /usr/share/sane/snapscan/esfw52.bin
Epson Perfection 3590 では他に設定の変更は必要ありませんが他の機種では設定が必要かもしれません。問題が発生する場合は iscan パッケージを完全に削除することで問題が解決することがあります。
Fujitsu
S300M
S300M スキャナーを使うにはファームウェアファイル /usr/share/sane/epjitsu/300M_0C00.nal
が必要です。こちら からダウンロードするか Windows のドライバーから抽出してください。
HP
hplip によってサポートされている HP 製のデバイスを使用する場合、hplip パッケージをインストールしてください。
パッケージには3つのツールが付属しています:
- デバイスを追加・セットアップするための hp-setup。
- hp-plugin は 'HPLIP Plugin Download and Install Utility' です。
- hp-scan は 'HPLIP Scan Utility' です。ツールを使う必要がある場合、python-pillow をインストールしてください。
hp-setup で GUI を使用する場合は Python Qt4 が必要です。古い Qt4 ツールチェインをインストールしたくない場合、引数に -i
を付けて hp-setup を実行することで CLI インターフェイスが使えます。
デバイスが USB で接続されている場合、hp-setup を root で実行して画面上の指示に従ってください。
デバイスがネットワークで接続されている場合、# hp-setup <printer ip>
を使ってください。
Mustek
BearPaw 2400CU
sane-gt68xx (sane-gt68xx-firmware) で動作します。
Samsung
Samsung MFP プリンターを使うためには /etc/sane.d/xerox_mfp.conf
を編集しなくてはなりません。
エントリの例:
#Samsung SCX-3200 usb 0x04e8 0x3441
必要に応じてプリンターモデルを変更してください。ipVendor と idProduct のコードは lsusb
で取得できます。このスレッド を見てください。
USB インターフェイスではなくネットワークを介してスキャナーにアクセスするには、/etc/sane.d/xerox_mfp.conf
に以下のような行を追加してください:
#Samsung scx4500w wireless ip network address tcp xx.xx.xx.xx
xx.xx.xx.xx はプリンターの固定 IP アドレスに置き換えてください。