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 という形式で追加してください。

ヒント: IP アドレスではなく mDNS .local アドレスも使えます。例: bjnp://MyPixmaPrinter.local

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

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

Epson

ドライバーバックエンド

Epson のスキャナーでは、2種類のバックエンドが選べます Image Scan! for Linux (iscan/epkowa) か Image Scan v3 (imagescan/utsushi)。ここiscan/epkowa がサポートしているデバイスの一覧を、ここimagescan/utsushi がサポートしているデバイスの一覧を確認できます。

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}

上流の iscan では 16bpc 色深度でのスキャンがサポートされていません。8bpc 色深度以外では iscan は警告を出さずに停止し、再起動までスキャナーが固まったままになります。16bpc でのスキャンを有効にするためには、ABS を利用し、[このスレッド] のパッチを当てる必要があります。

Image Scan v3

Image Scan v3 バックエンドが必要ならば、imagescan パッケージでインストールできます。デフォルトでサポートされている 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 を次のコマンドで起動すると、

$ utsushi

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

Epson DS-6500

epsonds バックエンドでおおむね動作します。しかし、複数ページをスキャンする際に "Error during device I / O" というエラーになることがあります。その場合は、Image Scan v3 バックエンドが使えます。ネットワークスキャナを使う場合は、上記のように imagescan-plugin-networkscanAUR をインストールしたあとに /etc/utsushi/utsushi.conf を設定できます。

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

ScanSnap S300/S300M

ScanSnap S300M スキャナーを使うにはファームウェアファイル /usr/share/sane/epjitsu/300M_0C00.nal が必要です。こちら からダウンロードするか Windows のドライバーから抽出してください。300M_0C00.nal300_0C00.nal は相互に交換できます。S300 デバイスでも 300M_0C00.nal が、S300M デバイスでも 300_0C00.nal が使えます。/etc/sane.d/epjitsu.conf の記述に適合するようにファイル名を変更するか、設定ファイルの記述を変更できます。

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 Qt5 が必要です。あるいは、引数に -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 を 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 アドレスに置き換えてください。