SANE/スキャナー別の問題

提供: ArchWiki
移動先: 案内検索

この記事では SANE を使う時のスキャナーあるいはメーカー別の問題を扱っています。

Agfa

Snapscan e40

こちら にあるファームウェア Snape40.bin が必要です。

USB の自動サスペンドが有効になっている場合、スキャンを実行する前にプリンターを一度オフにしてから再度オンにする必要があります。USB 自動サスペンドは powertop で無効化できます。

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 スキャナーページ で使用している機種を検索してください。

それから適切なパッケージをインストールしてください:

ドライバーをインストールすると 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 --list-devices を使って sane からスキャナーが認識されているか確認してください。確認できない場合、Sane がネットワークデバイスとして認識できるようになっているか確認してください ([1] を参照)。/etc/sane.d/dll.confbrotherX (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, FILESCAN_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.confbjnp://10.0.0.20 という形式で追加してください。

これで Sane はデバイスを見つけられるはずです。詳しくは sane-pixma(5) を参照。

一部の Canon Pixma オールインワンプリンター・スキャナーはネットワークを介して認識されないことがあります。そのような場合は scangearmp2AUR パッケージを使ってみてください。

Epson

Epson 製のスキャナーでは "Image Scan! for Linux" が使えます。

  • iscan パッケージをインストールしてください。
  • 使用しているスキャナーにあわせて適切な iscan-plugin パッケージをインストールしてください (例えば Epson Perfection Photo V600 の場合は iscan-plugin-gt-x820AUR)。
  • 再起動すると udev によってデバイスがスキャナーとして認識され適切なパーミッションが設定されます。

ネットワークスキャナー (Wi-Fi を含む) の場合、iscaniscan-plugin-networkAUR をインストールしてから /etc/sane.d/epkowa.conf を編集して以下の行を追加してください:

net {IP_OF_SCANNER}

Image Scan v3

一部のモデルでは "Image Scan! for Linux" ではなく "Image Scan 3" が必要です。ベースプログラムは imagescanAUR パッケージでインストールできます。デフォルトでサポートされている USB スキャナーを自動的に認識します。ネットワークスキャナを利用したい場合は imagescan-plugin-networkscanAUR もインストールしてください。そして /etc/utsushi/utsushi.conf を編集してスキャナーの IP アドレスを入力してください:

[devices]
myscanner.udi    = esci:networkscan://<ip-address-here>:1865
myscanner.vendor = Epson
myscanner.model  = Model-name

Image Scan v3 の起動時に、左上にスキャンの名前が表示されます。接続に問題が発生する場合、エラーダイアログが表示されます。

Epson Perfection V550 Photo

iscan-plugin-perfection-v550AUR パッケージをインストールしてください。

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 が使えるようになります。

ノート: X と Y の値を定義しないと次のようなエラーが発生してスキャンできないことがあります: scanimage: sane_start: Error during device I/O
  • 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 Perfection 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> を使ってください。

HP のネットワークスキャナーを使用する別の方法

  • 使用したい HP のネットワークスキャナーの IP アドレスを確認してください。ここでは例として 192.168.1.8 とします。
  • hp-makeuri ユーティリティを使用してデバイス URI を作成:
hp-makeuri 192.168.1.8
  • hpaio:/net/DeskJet_3630_series?ip=192.168.1.8 のように URI が出力されます。
  • 出力された URI を xsane や scanimage ツールで使ってください。例:
xsane "hpaio:/net/DeskJet_3630_series?ip=192.168.1.8"
scanimage --device "hpaio:/net/DeskJet_3630_series?ip=10.12.129.6" --format=png --resolution 300 >scan01.png

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 アドレスに置き換えてください。