「SANE」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
(リンクを修正)
 
(4人の利用者による、間の22版が非表示)
1行目: 1行目:
[[Category:イメージング]]
+
[[Category:デジタルイメージング]]
[[en:Sane]]
+
[[en:SANE]]
[[es:Sane]]
+
[[zh-hans:SANE]]
[[fr:Sane]]
 
[[it:Sane]]
 
[[zh-CN:Sane]]
 
 
{{Related articles start}}
 
{{Related articles start}}
  +
{{Related|SANE/スキャナー別の問題}}
{{Related3|User:Cchabanois/Scan print and save Script|Scan print and save Script}}
 
{{Related4|Scanner Button Daemon}}
+
{{Related|Scanner Button Daemon}}
 
{{Related articles end}}
 
{{Related articles end}}
   
Sane GNU/Linux でスキャナを使うためのライブラリとコマンドラインツールを提供しています。
+
[http://www.sane-project.org/ SANE] ([[wikipedia:Scanner Access Now Easy|Scanner Access Now Easy]]) は、GNU/Linux でスキャナを使うためのライブラリとコマンドラインツールを提供します。
[http://www.sane-project.org/sane-supported-devices.html ここで] あなたのスキャナーを Sane がサポートしているか確認できます。
 
   
 
== インストール ==
 
== インストール ==
[[Official Repositories|公式リポジトリ]]から {{Pkg|sane}} を[[pacman|インストール]]してください。
 
   
  +
{{Pkg|sane}} パッケージを[[インストール]]してください。ほとんどのフロントエンドとドライバはこのパッケージを依存関係としてインストールするため、たいてい、このパッケージを明示的にインストールする必要はありません。
== 設定 ==
 
sane があなたのスキャナーを認識しているか試すことができます:
 
$ scanimage -L
 
これが失敗したのなら、スキャナーがコンピュータに接続されているか確認してください。{{ic|/etc/udev/rules.d/sane.rules}} があなたのスキャナーを見つけるためにスキャナーのプラグを一度抜く必要があるかもしれません。
 
   
  +
=== スキャナドライバ ===
それから sane が実際に動作するか確認してください:
 
$ scanimage --format=tiff > test.tiff
 
   
  +
最近のスキャナの多くは "ドライバレス" スキャンをサポートしています。[https://help.ubuntu.com/community/sane#Installing_Network_Scanners] デバイスの互換性については、[https://github.com/alexpevzner/sane-airscan#compatibility sane-airscan GitHub] や [https://support.apple.com/en-us/HT201311#printers Apple AirPrint devices] で調べられます。
=== HP 製品 ===
 
HP のハードウェアを動かすには[[Official Repositories|公式リポジトリ]]から {{Pkg|hplip}} をインストールしたり [[Arch User Repository|AUR]] から {{AUR|hpoj}} をインストールする必要があるかもしれません。
 
   
  +
あなたのスキャナが "ドライバレス" モードで動作することが分かっている場合は、{{Pkg|sane-airscan}} パッケージを[[インストール]]してください。スキャナが USB を使用する場合は、USB 接続で IPP プロトコルを使用できるようにするために、{{Pkg|ipp-usb}} パッケージを[[インストール]]し、 {{ic|ipp-usb.service}} を[[起動/有効化]]してください。
* {{ic|/etc/sane.d/dll.conf}} に {{Ic|hpaio}} や {{Ic|hpoj}} を追加(アンコメント)する。
 
* root 権限で {{Ic|hp-setup}} を実行するとデバイスを追加するのに役立つかもしれません。
 
* {{Ic|hp-plugin}} は 'HPLIP Plugin Download and Install Utility' です。
 
* {{Ic|hp-scan}} は 'HPLIP Scan Utility' です。
 
Hewlett-Packard の OfficeJet, PSC, LaserJet, PhotoSmart プリンター複合機を動かすには、root で {{ic|ptal-init setup}} を実行して指示に従って下さい。その後 '''ptal-init''' [[Daemons|デーモン]]を起動してください。
 
   
  +
"ドライバレス" で動作しないかもしれない場合は、[http://www.sane-project.org/sane-supported-devices.html SANE - Supported Devices] と [[SANE/スキャナー別の問題]] を確認し、あなたのスキャナが別のドライバで動作するかどうかを調べてください。
=== Brother 製品 ===
 
{{Tip|brscan ドライバーは AUR からインストールすることができ、以下のセットアップが自動的に行われます。}}
 
   
ブラザーのスキャナーやプリンター・スキャナー複合機を使用するには正しいドライバを (AUR から) インストールする必要があります
+
ほとんどのスキャナは特に設定をしなくても動作します。動作しない場合は、[[SANE/スキャナー別の問題]] インストール手順を確認してください
ドライバの種類は4つあります (brscan1-4)。正しいドライバを見つけるためにあなたのスキャナーのモデルを [http://support.brother.com/g/s/id/linux/en/download_scn.html brother linux スキャナーページ]で検索してください。
 
   
  +
{{Note|一部のドライバ ({{Pkg|sane-airscan}} を含む) は、ネットワークスキャナを探索するためにマルチキャストを使用します。[[iptables#マルチキャストのトラフィックを許可する]] で、ファイアウォールを正しく設定する方法を確認してください。}}
ドライバをインストールした後は sane によってドライバ・スキャナーを認識させるために次を実行する必要があります (例: brscan2 互換デバイスの setupSaneScan2):
 
# /usr/local/Brother/sane/setupSaneScan2 -i
 
brscan4 の場合:
 
# /opt/brother/scanner/brscan4/setupSaneScan4 -i
 
   
  +
=== フロントエンド ===
ネットワークスキャナーには、Brother が設定ツールを提供しています:
 
$ brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP>
 
例:
 
$ brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110
 
   
  +
SANE には多数のフロントエンドが存在しています。不完全なリストは [http://www.sane-project.org/sane-frontends.html SANE プロジェクトのウェブサイト]で見られます。
==== Scan-key-tool ====
 
   
  +
* {{App|[[Wikipedia:Simple Scan|Simple Scan]]|XSane よりも [[GNOME]] デスクトップにより良く統合され、より使いやすくなるように設計されたシンプルな GUI。{{Grp|gnome}} の一部。|https://gitlab.gnome.org/GNOME/simple-scan|{{Pkg|simple-scan}}}}
接続したコンピュータではなくスキャナー自体からユーザーが操作してスキャンをすることができるツールを Brother はリリースしています (例: キーパッドで "Scan to email" などを選択)。AUR から {{aur|brscan-skey}} をインストールして [[systemd#ユニットを使う|systemd]] を使って {{ic|brscan-skey.service}} を起動することでセットアップできます。デフォルトではこのサービスは AUR パッケージによって作成される ''brscan-skey'' ユーザーで動作します。
 
  +
* {{App|[[Wikipedia:Skanlite|Skanlite]]|画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。|https://apps.kde.org/skanlite/|{{Pkg|skanlite}}}}
  +
* {{App|Skanpage|複数ページのスキャンやドキュメントと画像の保存のために設計されたシンプルなスキャンアプリケーション。|https://apps.kde.org/skanpage/|{{Pkg|skanpage}}}}
  +
* {{App|[[Wikipedia:Scanner Access Now Easy#XSane|XSane]]|懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。|http://www.xsane.org/|{{Pkg|xsane}}}}
   
  +
一部の [[アプリケーション一覧/ドキュメント#OCR ソフトウェア|OCR ソフトウェア]]は SANE を使って画像をスキャンできます: gImageReader、[[Wikipedia:Scanner Access Now Easy#gscan2pdf|gscan2pdf]]、Linux-Intelligent-Ocr-Solution、[[Wikipedia:OCRFeeder|OCRFeeder]]、[https://openpaper.work Paperwork]。
キーパッドでスキャンのタイプが選択されたときに何を行うかを変更することが可能です。変更するには {{ic|/opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg}} を編集します。スキャンタイプが選択されると {{ic|IMAGE}}, {{ic|OCR}}, {{ic|EMAIL}}, {{ic|FILE}} の {{ic|SCAN_COMMAND}} 変数が実行されます:
 
   
  +
{{Note|
$ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME
 
  +
* 16ビットの色深度モードで XSane を使って直接 PDF にスキャンすると [https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/539162 破損したファイル] が生成される既知のバグがあり、{{ic|pacman}} の出力でも警告されます。8ビットモードでは問題ないことが知られています。
   
  +
{{Accuracy|skanlite が mDNS を''処理する''必要はありません。[[Avahi#ホスト名の解決|mDNS ホスト名解決]]が正しく設定されていて、スキャナのアドレスが {{ic|''hostname''.local}} として指定されている限り、動作するはずです。これは hplip の制限/バグのようです。}}
{{ic|$SCAN_COMMAND}} はクォートでかこまれていないので、複数の位置パラメータを指定して実行することができます。{{ic|$SCANNER_DEVICE}} はデバイスの名前を参照し、sane のフロントエンドに指定する必要があります (例: {{ic|scanimage}} を使う場合は {{ic|--device-name}} フラグ)。例えば: {{ic|brother3:bus4;dev2}}。{{ic|$SCANNER_FRIENDLY_NAME}} はヒューマンリーダブルなスキャナーの名前です。
 
   
  +
* フロントエンドを使用するというだけでは設定が不要になるわけではありません。特に [[mDNS]] でデバイスを設定する場合などです。例えば {{ic|skanlite}} は mDNS を扱うことができないため、ネットワークスキャナを正しく認識するにはコマンドラインに情報を追加する必要があります。HP Officejet Pro L7590 での設定例: {{ic|1=skanlite --device "hpaio:/net/Officejet_Pro_L7500?ip=192.168.0.17"}}。
brscan-key のセットアップスクリプトを実行:
 
  +
}}
# /opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-1.sh
 
ツールを実行して以前にインストールしたスキャナーが認識されるか確認:
 
$ /opt/brother/scanner/brscan-skey/brscan-skey -l
 
   
=== Epson 製品 ===
+
== 検証 ==
(Wi-Fi 含む) ネットワークスキャナーには、"Image Scan! for Linux" を使うことができます。
 
   
  +
インストールが終わった今、sane がスキャナを認識するかどうか試してみることができます:
[[Arch User Repository|AUR]] から {{AUR|iscan}} と {{AUR|iscan-plugin-network}} をインストールして、{{ic|/etc/sane.d/epkowa.conf}} に次の行を追加してください:
 
net {IP_OF_SCANNER}
 
   
  +
$ scanimage -L
=== Samsung 製品 ===
 
Samsung MFP プリンターを使うためには {{ic|/etc/sane.d/xerox_mfp.conf}} を編集しなくてはなりません。
 
   
  +
上記のコマンドが失敗する場合、root で再度コマンドを実行してパーミッションが問題なのかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。また、{{ic|/usr/lib/udev/rules.d/65-sane.rules}} にスキャナを認識させるために、スキャナを抜き差しする必要があるかもしれません。
エントリの例:
 
#Samsung SCX-3200
 
usb 0x04e8 0x3441
 
   
  +
確認したら、スキャナが実際に動作するかどうか確認できます:
プリンターモデルを必要なものに変更してください。ipVendor と idProduct のコードは {{ic|lsusb}} で取得できます。[https://bbs.archlinux.org/viewtopic.php?id=123934 このスレッド]を見て下さい。
 
   
  +
$ scanimage --format=png --output-file test.png --progress
=== plustek スキャナー ===
 
plustek スキャナー (Canoscan スキャナー) にはロックディレクトリが必要なものがあります。/var/lock/sane ディレクトリを作り、そのパーミッションが 660 で、所有者が <user>:scanner になるようにしてください。このディレクトリのパーミッションが間違っていると、スキャナーを使えるのが root ユーザーだけになってしまいます。libusb を使うプログラム (xsane と kooka) にはノーマルユーザーで /proc/bus/usb にアクセスするために scanner グループと rw パーミッションが必要なプログラムもあるようです (少なくとも x86-64 には)。
 
   
  +
{{ic|scanimage: sane_start: Invalid argument}} というメッセージを吐いてスキャンが失敗する場合、デバイスを指定する必要がある場合があります:
==ファームウェア==
 
{{Note|このセクションはスキャナーにファームウェアをアップロードする必要があるときだけ読んで下さい。}}
 
   
  +
{{hc|$ scanimage -L|
一般的にファームウェアの拡張子は '''{{Ic|.bin}}''' です。
 
  +
device `v4l:/dev/video0' is a Noname Video WebCam virtual device
  +
device `pixma:04A91749_247936' is a CANON Canon PIXMA MG5200 multi-function peripheral
  +
}}
   
  +
以下のように実行してみてください:
まずファームウェアをどこか安全なところに置いて下さい、{{ic|/usr/share/sane}} のサブディレクトリが推奨です。
 
   
  +
$ scanimage --device "pixma:04A91749_247936" --format=tiff --output-file test.tiff --progress
それから sane にファームウェアの場所を教える必要があります:
 
*[http://www.sane-project.org/sane-supported-devices.html sane supported devices list] からあなたのスキャナーのバックエンドの名前を見つけて下さい。
 
*{{ic|/etc/sane.d/<backend-name>.conf}} ファイルを開きます。
 
*該当ファームウェアエントリのコメントが外されているのを確認しファイルパスを先ほど置いたファームウェアファイルに書き換えてください。{{Ic|scanner}} グループのユーザーが {{ic|/etc/sane.d/<backend-name>.conf}} ファイルにアクセスできるようにしてください。
 
   
あなたのスキャナのバックエンドが sane パッケージに含まれていない場合 (hplip 一部 hpaio.conf など)、/etc/sane.d/dll.d/hplip 内の関係するエントリをアンコメントする必要があります。
+
Sane は、数々のスキャナのタイプに対して多く特別なバックエンドオプションを提供しています。あデバイス用バックエンドは何か確認するには:
   
  +
$ scanimage -A
==フロントエンドのインストール==
 
XSane は Sane の GTK ベースのフロントエンドを提供します。XSane は[[Official Repositories|公式リポジトリ]]にある {{Pkg|xsane}} パッケージから[[pacman|インストール]]可能です。
 
{{Note|16ビット色深度モードで Xsane を使って直接 pdf に出力すると[https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/539162 ファイルが壊れる]既知のバグがあります。8ビットモードで動作させて下さい。}}
 
   
  +
== ファームウェア ==
他のフロントエンドを探すには:
 
*{{Ic|pacman -Ss}} を使って "sane" や "scanner" といったキーワードで検索する
 
*sane-project ウェブサイトの [http://www.sane-project.org/sane-frontends.html list of frontends] を見る
 
   
  +
{{Note|このセクションが必要になるのは、スキャナにファームウェアをアップロードする必要がある場合だけです。}}
==ネットワークスキャニング==
 
==== ネットワークを介してスキャナーを共有する ====
 
   
  +
通常、ファームウェアには ''.bin'' 拡張子が付いています。
スキャナーをネットワーク上の sane を使っている他のホストと共有することができます。サーバーをセットアップするためには、まずネットワーク上のどのホストにアクセス許可を与えるのか指定してください。
 
   
  +
まず、ファームウェアをどこか安全なところに置いてください。{{ic|/usr/share/sane/}} のサブディレクトリ内に置くことが推奨されます。
{{ic|/etc/sane.d/saned.conf}} ファイルを変更して下さい、例:
 
  +
# required
 
  +
次に、ファームウェアの場所を sane に教える必要があります:
  +
  +
* [http://www.sane-project.org/sane-supported-devices.html sane によってサポートされているデバイスのリスト]からあなたのスキャナ用のバックエンドの名前を見つけてください。
  +
* {{ic|/etc/sane.d/''backend-name''.conf}} ファイルを開いてください。
  +
* 該当するファームウェアエントリをアンコメントし、ファイルのパスをあなたのスキャナ用のファームウェアファイルの場所に設定してください。{{ic|scanner}} グループのメンバーが {{ic|/etc/sane.d/''backend-name''.conf}} ファイルにアクセスできるようにしてください。
  +
  +
あなたのスキャナのバックエンドが sane パッケージに含まれていない場合 ({{Pkg|hplip}} の {{ic|hpaio.conf}} など)、{{ic|/etc/sane.d/dll.d}} か {{ic|/etc/sane.d/dll.conf}} 内の関連するエントリをアンコメントする必要があります。
  +
  +
== ネットワークを介してスキャナを共有する ==
  +
  +
''sane'' や ''xsane''、xsane を有効化した ''GIMP'' を使用する、ネットワーク上の他のホストとスキャナを共有することができます。サーバをセットアップするには、まず、ネットワーク上のどのホストにアクセスを許可するか指定してください。{{ic|/etc/sane.d/saned.conf}} ファイルを変更してください。例えば:
  +
  +
# 必要
 
localhost
 
localhost
  +
# ローカルサブネットを許可
# allow local subnet
 
 
192.168.0.0/24
 
192.168.0.0/24
 
{{ic|nf_conntrack_sane}} モジュールを iptables に加えてファイアウォールが saned の接続を記録するようにしてください。
 
   
  +
次に、マルチキャストでスキャナを発見できるようにするために、サーバ上で [[avahi]]-daemon をインストールし、有効化、起動してください (avahi-daemon がまだアクティブでない場合)。あるいは、スキャナが Airscan によってサポートされている場合、代わりに {{Pkg|sane-airscan}} パッケージをインストールしても良いです。
[[Official Repositories|公式リポジトリ]]から {{Pkg|xinetd}} を[[pacman|インストール]]してください。
 
   
  +
[[iptables]] を使っている場合、{{ic|nf_conntrack_sane}} モジュールを[[カーネルモジュール|追加]]し、ファイアーウォールが {{ic|saned}} の接続を追跡するようにしてください。
次に、{{ic|/etc/xinetd.d/sane}} という名のファイルが存在しているのを確認して disabled を no に設定します:
 
service sane-port
 
{
 
port = 6566
 
socket_type = stream
 
wait = no
 
user = root
 
group = scanner
 
server = /usr/sbin/saned
 
disable = no
 
}
 
   
  +
Conntrack ヘルパはデフォルトで無効化されているようです。[https://home.regit.org/wp-content/uploads/2011/11/secure-conntrack-helpers.html] 以下のコマンドでアクティブ化できます:
そして次の行を {{ic|/etc/services}} に追加してください:
 
sane-port 6566/tcp
 
   
  +
# echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper
'''xinetd''' [[Daemons|デーモン]]を起動してください。
 
   
  +
これを永続化するには、{{ic|nf_conntrack}} モジュールに対して {{ic|1=nf_conntrack_helper=1}} オプションを設定してください ([[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う]] を参照)。
LAN を介して、他のワークステーションからスキャナーが使えるようになったはずです。
 
   
  +
そして、{{ic|saned.socket}} を[[起動/有効化]]してください。これで、スキャナがネットワークを介して利用可能になりました。詳細は {{man|8|saned}} を参照してください。
==== リモートのワークステーションからスキャナーにアクセス ====
 
リモートの Arch Linux ワークステーションからネットワークが有効になったスキャナーにアクセスすることができます。
 
   
  +
{{Note|saned は意図的に net: バックエンドを使用するスキャナの共有を拒否することがあります (一部 USB スキャナも含まれます)。{{Bug|54786}} に共有を許可するパッチが存在しますが、ネットワークによっては問題が発生します。サーバーで {{ic|scanimage -L}} の出力からスキャナの URL を確認してください。}}
ワークステーションをセットアップするため、まず[[Official Repositories|公式リポジトリ]]から {{Pkg|xsane}} を[[pacman|インストール]]してください。
 
   
  +
=== リモートのワークステーションからスキャナにアクセスする ===
次に、{{ic|/etc/sane.d/net.conf}} ファイルにサーバーのホストネームか IP アドレスを明示します:
 
  +
# static IP address
 
  +
{{Note|一部のネットワークスキャナーでは別の設定が必要です。[[SANE/スキャナー別の問題]]を見てください。}}
  +
  +
リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。
  +
  +
まず {{ic|/etc/sane.d/net.conf}} ファイルにサーバーのホストネームあるいは IP アドレスを指定してください:
  +
  +
# 静的 IP アドレス
 
192.168.0.1
 
192.168.0.1
  +
# あるいはホスト名
# or host name
 
 
stratus
 
stratus
   
root ないログインプロンプからワークステーションの接続ストしてください:
+
次に、サーバ側の設定に応じて、リモートワークステーションに avahi-daemon インストール、起動、そして有効化するか、あるいは、sane-airscan をインストールしてください
  +
$ xsane
 
  +
そして、ワークステーションの接続をテストしてください。
   
または
 
 
$ scanimage -L
 
$ scanimage -L
   
しばらくすxsane がリモースキャナーを見つけてネットワークスキャニングの準備できるはずです。
+
[[#フロンエンド|フロントエンド]]にネットワークスキャ表示されるはずです。
   
  +
=== Windows クライアント ===
HP のオールインワンネットワークプリンター・スキャナー・ファックスを使うには設定が必要です:
 
$ hp-setup <printer ip>
 
   
  +
SANE の Windows 移植版は[https://web.archive.org/web/20151207111023/http://www.xsane.org/xsane-download.html サポートされておらず、古くなっていて、入手するのが難しい]ため、代わりに [https://sourceforge.net/projects/sanewinds/ SANEWinDS] や [https://sanetwain.ozuzo.net/ SaneTwain] (古い) を試すことができます。
==== Canon Pixma オールインワンプリンター/スキャナーを使ってネットワークを介してスキャン ====
 
プリンター/スキャナーの IP アドレスを確認して、{{ic|/etc/sane.d/pixma.conf}} に 'bjnp://10.0.0.20' という形式で追加してください。
 
   
  +
== トラブルシューティング ==
これで Sane はデバイスを見つけられるはずです。詳しくは 'man sane-pixma' を参照。
 
   
  +
:[[SANE/スキャナー別の問題]] も見てください。
==トラブルシューティング==
 
  +
===Invalid argument===
 
  +
=== Invalid argument ===
xsane などの sane フロントエンドで "Invalid argument" エラーが出る場合、理由として以下のような状態が考えられます:
 
  +
  +
xsane などの sane フロントエンドで "Invalid argument" エラーが出る場合、理由として以下のような理由が考えられます:
   
 
==== ファームウェアファイルがない ====
 
==== ファームウェアファイルがない ====
スキャナーのためのファームウェアファイルが存在しない(詳しくは上を見て下さい)。
 
   
==== 間違ったファームウェアファイルミッション ====
+
スキャナーを使うめのファームウェアファイルが存在していません (詳しくは [[#ファムウェア]] を参照)。
ファームウェアファイルのパーミッションが間違っている。修正するには:
 
# chown root:scanner /usr/share/sane/SCANNER_MODEL/FIRMWARE_FILE
 
# chmod ug+r /usr/share/sane/SCANNER_MODEL/FIRMWARE_FILE
 
   
==== 複数クエスキャナーを要求している ====
+
==== ファームウェアファイルパーミションが間違っている ====
It may happen, that multiple backends support (or pretend to support) your scanner, and sane chooses one that doesn't do after all (the scanner won't be displayed by scanimage -L then). This has happend with older Epson scanners and the <code>epson2</code> resp. <code>epson</code> backends. In this case, the solution is to comment out the unwanted backend in <code>/etc/sane.d/dll.conf</code>. In the Epson case, that would be to change
 
   
  +
ファームウェアファイルのパーミッションが間違っています。パーミッションを修正してください:
epson2
 
#epson
 
   
  +
# chown root:scanner /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE''
to
 
  +
# chmod ug+r /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE''
   
  +
==== 複数のバックエンドがスキャナを要求している ====
#epson2
 
epson
 
   
  +
あなたのスキャナをサポートしている (または、サポートしているように見せかけている) 複数のバックエンドが複数あり、sane が、その中からあなたのスキャナをサポートしていないバックエンドを選んでしまうことがあります (この場合、スキャナは {{ic|scanimage -L}} で表示されません)。これは、旧式の Epson スキャナと {{ic|epson2}} や {{ic|epson}} バックエンドを使用した際に発生します。その場合、解決策は、{{ic|/etc/sane.d/dll.conf}} 内の使用しないバックエンドをコメントアウトすることです。Epson の場合、以下のように epson2 をコメントアウトします:
==== USB 3.0 ====
 
スキャナーを USB 3.0 ポートに接続しているときもこのエラーメッセージが [https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/478761/comments/43 発生] することがあります。この問題では場合によって {{ic|WARN Event TRB for slot 1 ep 10 with no TDs queued?}} や {{ic|ep 0x85 - rounding interval to 512 microframes, ep desc says 800 microframes}} というエラーメッセージがカーネルログに表示されることもあります。現在のところ、既知の解決方法は USB 2.0 ポート (もしくは USB ハブ) を使うしかありません。
 
   
  +
{{hc|/etc/sane.d/dll.conf|
===起動が遅い===
 
  +
#epson2
起動が遅い場合 (例: {{ic|xsane}} や {{ic|scanimage -L}} がスキャナーを見つけるのに時間がかかる) おそらくスキャナーをサポートしているドライバが複数あるのが原因です。
 
  +
epson
  +
}}
   
  +
独立した {{AUR|iscan}} の {{ic|epkowa}} バックエンドが {{ic|snapscan}} バックエンド (epson スキャナ) と干渉することもあります。{{ic|scanimage -L}} コマンドを使ったときにこのエラーが表示されるでしょう。({{Pkg|xsane}} などの) スキャナーアプリを2回起動することで問題は解決します。もしくは {{ic|/etc/sane.d/epkowa.conf}} の設定が間違っていないか確認したり、あるいは {{AUR|iscan}} パッケージを削除してください。
{{ic|/etc/sane.d/dll.conf}} を開いて不要なものをコメントアウトしてください (例: epson, epson2, epkowa を有効にしている場合、epson か epkowa だけアンコメント)
 
   
  +
==== xHCI による通信ができない (旧式のスキャナ) ====
===パーミッション問題===
 
{{Ic|lsusb}} を (root で) 実行したときだけしかスキャナーが見えないときは、ユーザーを {{Ic|scanner}} や {{Ic|lp}} に追加することで解決できることがあります。
 
# gpasswd -a username scanner
 
# gpasswd -a username lp
 
HP のオールインワンモデル (e.g., PSC 1315 や PSC 2355) で有効なことが報告されています。
 
   
  +
一部の古いモデルのスキャナーでは USB3 端子で接続した場合にスキャナーが機能しません。この問題が発生する場合、フロントエンドを起動する前に {{ic|1=SANE_USB_WORKAROUND=1}} [[環境変数]]を設定してみてください。[https://lists.alioth.debian.org/pipermail/sane-announce/2017/000036.html][https://salsa.debian.org/debian/sane-backends/-/blob/master/ChangeLog#L2251-2262]
You can also try to change permissions of usb device but this is not recommended, a better solution is to fix the Udev rules so that your scanner is recognized.
 
   
  +
上記の設定で問題が解決しない場合、以下の回避策を試してみてください:
Example:
 
   
  +
* 可能であれば、USB3 端子ではなく USB2 端子を使ってみる。
First, as root, check connected usb devices with {{ic|lsusb}}:
 
  +
* BIOS/EFI で xHCI を無効化する。eHCI が使われるようになってスキャナーが動作します。欠点として全ての USB3 端子の速度が落ちます。
#Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 
  +
* (一部の) Intel のチップセットでは {{ic|setpci}} コマンドを使って特定の USB 端子で xHCI と eHCI コントローラーのどちらを使うか指定することができます。詳しくは、[https://forums.opensuse.org/showthread.php/507627-Suse-13-2-scanner-no-longer-working-on-64-bit-version?p=2714695#post2714695 ここ]{{Dead link|2023|05|06|status=404}}と[https://superuser.com/questions/812022/force-a-single-usb-3-0-port-to-work-as-usb-2-0 ここ] ("setpci" について書かれている部分までスクロールしてください) を見てください。シンプルなシェルスクリプトでひとつの USB ポートだけモードを切り替えることができます。
#Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 
  +
* サポートされていれば、ネットワーク経由でスキャナに接続する。
#Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 
#Bus 003 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc.
 
#Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd
 
#Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 
#Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 
#Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard
 
#Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200
 
#Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
   
  +
==== ファイアーウォール ====
In our example we see scanner - ''''Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard''''
 
   
  +
ネットワークスキャンスキャナがハングすると、invalid argument (無効な引数) エラーが発生します。
Now edit {{ic|/usr/lib/udev/rules.d/49-sane.rules}} and look for the first part of the ID number found previously and check if there is a line that also reports the second part of the number (model numer), in this example 2504. If not found change or copy a line and enter the idVendor and idProduct of your scanner, in this example it would be:
 
   
  +
saned はデータポートの範囲を使用するため、6566/tcp と /etc/sane.d/saned.conf の data_portrange への接続を有効化するか、または、sane が上記のデータポートを有効化できるようにするために conntrack ファイアーウォールモジュールを使用しなければなりません。
# Hewlett-Packard ScanJet 4100C
 
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2504", MODE="0664", GROUP="scanner",
 
ENV{libsane_matched}="yes"
 
   
  +
=== 起動が遅い ===
Save the file, plug out and back in your scanner and the file permissions should be now correct.
 
   
  +
起動が遅い場合 (例: {{ic|xsane}} や {{ic|scanimage -L}} が結果を返すまでに非常に長い時間がかかる)、使用していないドライバのどれかが原因である場合があります。
Another tip, is that you can add your device (scanner) in backend file:
 
  +
  +
{{ic|/etc/sane.d/dll.conf}} を編集して、使用しないスキャナドライバをコメントアウトすることで、この問題を解決できます。{{ic|scanimage -L}} を使うことで、どのドライバが必要であるかを判断することができます:
  +
  +
{{hc|$ scanimage -L|
  +
device `brother4:net1;dev0' is a Brother DCP-L2550DW
  +
device `v4l:/dev/video0' is a Noname Logitech Webcam C925e virtual device
  +
device `<nowiki>escl:http://192.168.1.2:80'</nowiki> is a Brother DCP-L2550DW series adf,platen scanner
  +
}}
  +
  +
出力の {{ic|`}} と {{ic|:}} の間の部分が、対象のデバイスのドライバを示しています。例えば、[[ウェブカメラ]]や汎用スキャナドライバを使用せず、Brother スキャナだけを使用したい場合は、{{ic|/etc/sane.d/dll.conf}} 内の {{ic|brother4}} ドライバ以外はすべてコメントアウトできます。
  +
  +
=== Device busy ===
  +
  +
{{Accuracy|ユーザを scanner グループに追加する必要はないはずです ([[ユーザーとグループ#systemd 以前のグループ]] を参照)。}}
  +
  +
USB デバイスが {{ic|scanimage -L}} で表示されるのに、テストで {{ic|1=scanimage pixma:04A9173E_11DAD1 --format=tiff --output-file test.tiff}} を実行すると必ず 'Device busy' エラーが発生する場合、あなたのユーザ名を scanner グループに追加し ({{ic|usermod -a -G scanner yourusername}})、{{ic|/etc/modprobe.d/no-usblp.conf}} 内に {{ic|blacklist usblp}} を記述して {{ic|usblp}} カーネルモジュールをブラックリスト化してみてください (スキャンのサポートのために {{ic|usblp}} がロードされることを防ぎます。このモジュールは xsane や関連するツールでは必要なく、[[CUPS/トラブルシューティング#usblp と衝突する|CUP と競合する]]かもしれません)。最後に再起動してください。[https://cromwell-intl.com/linux/canon-pixma-printer-scanner.html]
  +
  +
これに加えて、一部の Cannon プリンタは、スキャンモードが "Computer" に設定されている場合、"device busy" と返します。"Remote Scanner" モードに設定することで、問題が解決するはずです。[https://alioth-lists.debian.net/pipermail/sane-devel/2014-March/032169.html]
  +
  +
=== パーミッションの問題 ===
  +
  +
systemd によって {{ic|scanner}} と {{ic|lp}} グループは廃止されました。あなたのユーザーをグループに追加する必要はありません。詳しくは[[ユーザーとグループ#systemd 以前のグループ]]を見てください。
  +
  +
USB デバイスのパーミッションを変更することもできますが推奨されません。[[Udev ルール]]を使ってスキャナーが認識されるように修正するほうが良いでしょう。
  +
  +
まずは {{ic|lsusb}} で接続されている USB デバイスを確認してください:
  +
  +
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  +
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  +
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  +
Bus 003 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc.
  +
Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd
  +
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  +
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  +
Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard
  +
Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200
  +
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  +
  +
上記の場合はスキャナーは {{ic|Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard}} です。{{ic|03f0}} が ''vendorID'' で {{ic|2504}} が ''productID'' です。
  +
  +
または、{{ic|sane-find-scanner}} を root 権限で実行しても、同じ ''vendorID'' と ''productID'' 得ることができます。
  +
  +
{{ic|/usr/lib/udev/rules.d/65-sane.rules}} を開いてあなたのスキャナーの ''vendorID'' と ''productID'' が書かれた行が存在するか確認してください。存在しない場合、新しいファイル {{ic|/etc/udev/rules.d/65-sane-missing-scanner.rules}} を以下の内容で作成します:
  +
  +
ATTRS{idVendor}=="'''vendorID'''", ATTRS{idProduct}=="'''productID'''", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"
  +
  +
ファイルを保存したら、スキャナを一度切断してから再接続すればファイルのパーミッションが正しく設定されているはずです。
  +
  +
{{Accuracy|正しいバックエンドファイルにスキャナを追加する必要があります。全てのスキャナで {{ic|hp4200.conf}} が機能するわけではありません。}}
  +
  +
デバイス (スキャナー) をバックエンドファイルに追加することもできます:
  +
  +
{{ic|usb 0x03f0 0x2504}} を {{ic|/etc/sane.d/hp4200.conf}} に追加すると以下のようになります:
   
Add ''''usb 0x03f0 0x2504'''' to {{ic|/etc/sane.d/hp4200.conf}} so it looks like this:
 
 
#
 
#
 
# Configuration file for the hp4200 backend
 
# Configuration file for the hp4200 backend
239行目: 247行目:
 
usb 0x03f0 0x2504
 
usb 0x03f0 0x2504
   
  +
==== パラレルポート接続のスキャナ ====
===Epson Perfection 1270===
 
 
Epson Perfection 1270 には esfw3e.bin というファームウェアが必要です。Windows ドライバをインストールすることでこのファームウェアを入手できます。
 
   
  +
パラレルポートで接続されたデバイスは全てプリンターとして認識され {{ic|lp}} グループが割り当てられます。[[udev]] ルールを作成して該当するパラレルポートを {{ic|libsane_matched}} として設定するか、あるいはユーザーを {{ic|lp}} [[ユーザグループ]]に追加してください。CUPS も設定ファイルを読み取るために {{ic|lp}} グループを使うため、ユーザーを {{ic|lp}} グループに追加すると潜在的にセキュリティ上問題があります。詳しくは [[CUPS#接続インターフェイス]] を参照。
Modify the configuration file of the snapscan backend, {{ic|/etc/sane.d/snapscan.conf}}. Change the firmware path line with yours:
 
   
  +
=== avahi-daemon は必須ではありません ===
<pre>
 
# 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
 
</pre>
 
   
  +
一部のスキャナアプリケーションでは、起動時に ''avahi-daemon'' が起動している必要があります。実は、これは SANE が原因なのです。有線スキャナを使っていたり、スキャナのドライバがセットアップ時にすでにネットワークをサポートしていたりして ''avahi-daemon'' サービスを有効化する必要がない場合、SANE の設定ファイルから {{ic|net}} バックエンドをコメントアウトしてください:
And add the following line in the end or anywhere you like
 
   
  +
{{hc|/etc/sane.d/dll.conf|
<pre>
 
  +
# The next line enables the network backend; comment it out if you do not
# Epson Perfection 1270
 
  +
# need to use a remote SANE scanner over the network -- see sane-net(5)
usb 0x04b8 0x0120
 
  +
# and saned(8) for details.
</pre>
 
  +
#net
  +
}}
   
  +
そして、{{ic|saned}} デーモンを再起動してください。
You can get such code information (''usb 0x04b8 0x0120'') by "sane-find-scanner" command.
 
   
  +
== 参照 ==
Also add such information lines to {{ic|/etc/hotplug/usb/libsane.usermap}} to setup your privilege, like:
 
 
#Epson Perfection 1270
 
libusbscanner 0x0003 0x04b8 0x0120 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x00 0x00000000
 
   
  +
* [[Wikipedia:WS-Discovery]] (Microsoft の "ドライバレス" プロトコル)
Replug scanner, you have a working Epson Perfection 1270 now.
 
   
  +
{{TranslationStatus|SANE|2023-07-13|780345}}
NOTE: I can scan image if I define the X and Y value, but without that error message occurs like: "scanimage: sane_start: Error during device I/O", if anyone know why, please complete the section.
 

2023年12月14日 (木) 16:45時点における最新版

関連記事

SANE (Scanner Access Now Easy) は、GNU/Linux でスキャナを使うためのライブラリとコマンドラインツールを提供します。

インストール

sane パッケージをインストールしてください。ほとんどのフロントエンドとドライバはこのパッケージを依存関係としてインストールするため、たいてい、このパッケージを明示的にインストールする必要はありません。

スキャナドライバ

最近のスキャナの多くは "ドライバレス" スキャンをサポートしています。[1] デバイスの互換性については、sane-airscan GitHubApple AirPrint devices で調べられます。

あなたのスキャナが "ドライバレス" モードで動作することが分かっている場合は、sane-airscan パッケージをインストールしてください。スキャナが USB を使用する場合は、USB 接続で IPP プロトコルを使用できるようにするために、ipp-usb パッケージをインストールし、 ipp-usb.service起動/有効化してください。

"ドライバレス" で動作しないかもしれない場合は、SANE - Supported DevicesSANE/スキャナー別の問題 を確認し、あなたのスキャナが別のドライバで動作するかどうかを調べてください。

ほとんどのスキャナは特に設定をしなくても動作します。動作しない場合は、SANE/スキャナー別の問題 でインストール手順を確認してください。

ノート: 一部のドライバ (sane-airscan を含む) は、ネットワークスキャナを探索するためにマルチキャストを使用します。iptables#マルチキャストのトラフィックを許可する で、ファイアウォールを正しく設定する方法を確認してください。

フロントエンド

SANE には多数のフロントエンドが存在しています。不完全なリストは SANE プロジェクトのウェブサイトで見られます。

  • Simple Scan — XSane よりも GNOME デスクトップにより良く統合され、より使いやすくなるように設計されたシンプルな GUI。gnome の一部。
https://gitlab.gnome.org/GNOME/simple-scan || simple-scan
  • Skanlite — 画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。
https://apps.kde.org/skanlite/ || skanlite
  • Skanpage — 複数ページのスキャンやドキュメントと画像の保存のために設計されたシンプルなスキャンアプリケーション。
https://apps.kde.org/skanpage/ || skanpage
  • XSane — 懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。
http://www.xsane.org/ || xsane

一部の OCR ソフトウェアは SANE を使って画像をスキャンできます: gImageReader、gscan2pdf、Linux-Intelligent-Ocr-Solution、OCRFeederPaperwork

ノート:
  • 16ビットの色深度モードで XSane を使って直接 PDF にスキャンすると 破損したファイル が生成される既知のバグがあり、pacman の出力でも警告されます。8ビットモードでは問題ないことが知られています。
この記事またはセクションの正確性には問題があります。
理由: skanlite が mDNS を処理する必要はありません。mDNS ホスト名解決が正しく設定されていて、スキャナのアドレスが hostname.local として指定されている限り、動作するはずです。これは hplip の制限/バグのようです。 (議論: トーク:SANE#)
  • フロントエンドを使用するというだけでは設定が不要になるわけではありません。特に mDNS でデバイスを設定する場合などです。例えば skanlite は mDNS を扱うことができないため、ネットワークスキャナを正しく認識するにはコマンドラインに情報を追加する必要があります。HP Officejet Pro L7590 での設定例: skanlite --device "hpaio:/net/Officejet_Pro_L7500?ip=192.168.0.17"

検証

インストールが終わった今、sane がスキャナを認識するかどうか試してみることができます:

$ scanimage -L

上記のコマンドが失敗する場合、root で再度コマンドを実行してパーミッションが問題なのかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。また、/usr/lib/udev/rules.d/65-sane.rules にスキャナを認識させるために、スキャナを抜き差しする必要があるかもしれません。

確認したら、スキャナが実際に動作するかどうか確認できます:

$ scanimage --format=png --output-file test.png --progress

scanimage: sane_start: Invalid argument というメッセージを吐いてスキャンが失敗する場合、デバイスを指定する必要がある場合があります:

$ scanimage -L
device `v4l:/dev/video0' is a Noname Video WebCam virtual device
device `pixma:04A91749_247936' is a CANON Canon PIXMA MG5200 multi-function peripheral

以下のように実行してみてください:

$ scanimage --device "pixma:04A91749_247936" --format=tiff --output-file test.tiff --progress

Sane は、数々のスキャナのタイプに対して多く特別なバックエンドオプションを提供しています。あなたのデバイス用のバックエンドは何か確認するには:

$ scanimage -A

ファームウェア

ノート: このセクションが必要になるのは、スキャナにファームウェアをアップロードする必要がある場合だけです。

通常、ファームウェアには .bin 拡張子が付いています。

まず、ファームウェアをどこか安全なところに置いてください。/usr/share/sane/ のサブディレクトリ内に置くことが推奨されます。

次に、ファームウェアの場所を sane に教える必要があります:

  • sane によってサポートされているデバイスのリストからあなたのスキャナ用のバックエンドの名前を見つけてください。
  • /etc/sane.d/backend-name.conf ファイルを開いてください。
  • 該当するファームウェアエントリをアンコメントし、ファイルのパスをあなたのスキャナ用のファームウェアファイルの場所に設定してください。scanner グループのメンバーが /etc/sane.d/backend-name.conf ファイルにアクセスできるようにしてください。

あなたのスキャナのバックエンドが sane パッケージに含まれていない場合 (hpliphpaio.conf など)、/etc/sane.d/dll.d/etc/sane.d/dll.conf 内の関連するエントリをアンコメントする必要があります。

ネットワークを介してスキャナを共有する

sanexsane、xsane を有効化した GIMP を使用する、ネットワーク上の他のホストとスキャナを共有することができます。サーバをセットアップするには、まず、ネットワーク上のどのホストにアクセスを許可するか指定してください。/etc/sane.d/saned.conf ファイルを変更してください。例えば:

# 必要
localhost
# ローカルサブネットを許可
192.168.0.0/24

次に、マルチキャストでスキャナを発見できるようにするために、サーバ上で avahi-daemon をインストールし、有効化、起動してください (avahi-daemon がまだアクティブでない場合)。あるいは、スキャナが Airscan によってサポートされている場合、代わりに sane-airscan パッケージをインストールしても良いです。

iptables を使っている場合、nf_conntrack_sane モジュールを追加し、ファイアーウォールが saned の接続を追跡するようにしてください。

Conntrack ヘルパはデフォルトで無効化されているようです。[2] 以下のコマンドでアクティブ化できます:

# echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper  

これを永続化するには、nf_conntrack モジュールに対して nf_conntrack_helper=1 オプションを設定してください (カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う を参照)。

そして、saned.socket起動/有効化してください。これで、スキャナがネットワークを介して利用可能になりました。詳細は saned(8) を参照してください。

ノート: saned は意図的に net: バックエンドを使用するスキャナの共有を拒否することがあります (一部 USB スキャナも含まれます)。FS#54786 に共有を許可するパッチが存在しますが、ネットワークによっては問題が発生します。サーバーで scanimage -L の出力からスキャナの URL を確認してください。

リモートのワークステーションからスキャナにアクセスする

ノート: 一部のネットワークスキャナーでは別の設定が必要です。SANE/スキャナー別の問題を見てください。

リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。

まず /etc/sane.d/net.conf ファイルにサーバーのホストネームあるいは IP アドレスを指定してください:

# 静的 IP アドレス
192.168.0.1
# あるいはホスト名
stratus

次に、サーバ側での設定に応じて、リモートワークステーションに avahi-daemon をインストール、起動、そして有効化するか、あるいは、sane-airscan をインストールしてください。

そして、ワークステーションの接続をテストしてください。

$ scanimage -L

これで、フロントエンドにネットワークスキャナが表示されるはずです。

Windows クライアント

SANE の Windows 移植版はサポートされておらず、古くなっていて、入手するのが難しいため、代わりに SANEWinDSSaneTwain (古い) を試すことができます。

トラブルシューティング

SANE/スキャナー別の問題 も見てください。

Invalid argument

xsane などの sane フロントエンドで "Invalid argument" エラーが出る場合、理由として以下のような理由が考えられます:

ファームウェアファイルがない

スキャナーを使うためのファームウェアファイルが存在していません (詳しくは #ファームウェア を参照)。

ファームウェアファイルのパーミッションが間違っている

ファームウェアファイルのパーミッションが間違っています。パーミッションを修正してください:

# chown root:scanner /usr/share/sane/SCANNER_MODEL/FIRMWARE_FILE
# chmod ug+r /usr/share/sane/SCANNER_MODEL/FIRMWARE_FILE

複数のバックエンドがスキャナを要求している

あなたのスキャナをサポートしている (または、サポートしているように見せかけている) 複数のバックエンドが複数あり、sane が、その中からあなたのスキャナをサポートしていないバックエンドを選んでしまうことがあります (この場合、スキャナは scanimage -L で表示されません)。これは、旧式の Epson スキャナと epson2epson バックエンドを使用した際に発生します。その場合、解決策は、/etc/sane.d/dll.conf 内の使用しないバックエンドをコメントアウトすることです。Epson の場合、以下のように epson2 をコメントアウトします:

/etc/sane.d/dll.conf
#epson2
epson

独立した iscanAURepkowa バックエンドが snapscan バックエンド (epson スキャナ) と干渉することもあります。scanimage -L コマンドを使ったときにこのエラーが表示されるでしょう。(xsane などの) スキャナーアプリを2回起動することで問題は解決します。もしくは /etc/sane.d/epkowa.conf の設定が間違っていないか確認したり、あるいは iscanAUR パッケージを削除してください。

xHCI による通信ができない (旧式のスキャナ)

一部の古いモデルのスキャナーでは USB3 端子で接続した場合にスキャナーが機能しません。この問題が発生する場合、フロントエンドを起動する前に SANE_USB_WORKAROUND=1 環境変数を設定してみてください。[3][4]

上記の設定で問題が解決しない場合、以下の回避策を試してみてください:

  • 可能であれば、USB3 端子ではなく USB2 端子を使ってみる。
  • BIOS/EFI で xHCI を無効化する。eHCI が使われるようになってスキャナーが動作します。欠点として全ての USB3 端子の速度が落ちます。
  • (一部の) Intel のチップセットでは setpci コマンドを使って特定の USB 端子で xHCI と eHCI コントローラーのどちらを使うか指定することができます。詳しくは、ここ[リンク切れ 2023-05-06]ここ ("setpci" について書かれている部分までスクロールしてください) を見てください。シンプルなシェルスクリプトでひとつの USB ポートだけモードを切り替えることができます。
  • サポートされていれば、ネットワーク経由でスキャナに接続する。

ファイアーウォール

ネットワークスキャンスキャナがハングすると、invalid argument (無効な引数) エラーが発生します。

saned はデータポートの範囲を使用するため、6566/tcp と /etc/sane.d/saned.conf の data_portrange への接続を有効化するか、または、sane が上記のデータポートを有効化できるようにするために conntrack ファイアーウォールモジュールを使用しなければなりません。

起動が遅い

起動が遅い場合 (例: xsanescanimage -L が結果を返すまでに非常に長い時間がかかる)、使用していないドライバのどれかが原因である場合があります。

/etc/sane.d/dll.conf を編集して、使用しないスキャナドライバをコメントアウトすることで、この問題を解決できます。scanimage -L を使うことで、どのドライバが必要であるかを判断することができます:

$ scanimage -L
device `brother4:net1;dev0' is a Brother DCP-L2550DW
device `v4l:/dev/video0' is a Noname Logitech Webcam C925e virtual device
device `escl:http://192.168.1.2:80' is a Brother DCP-L2550DW series adf,platen scanner

出力の `: の間の部分が、対象のデバイスのドライバを示しています。例えば、ウェブカメラや汎用スキャナドライバを使用せず、Brother スキャナだけを使用したい場合は、/etc/sane.d/dll.conf 内の brother4 ドライバ以外はすべてコメントアウトできます。

Device busy

この記事またはセクションの正確性には問題があります。
理由: ユーザを scanner グループに追加する必要はないはずです (ユーザーとグループ#systemd 以前のグループ を参照)。 (議論: トーク:SANE#)

USB デバイスが scanimage -L で表示されるのに、テストで scanimage pixma:04A9173E_11DAD1 --format=tiff --output-file test.tiff を実行すると必ず 'Device busy' エラーが発生する場合、あなたのユーザ名を scanner グループに追加し (usermod -a -G scanner yourusername)、/etc/modprobe.d/no-usblp.conf 内に blacklist usblp を記述して usblp カーネルモジュールをブラックリスト化してみてください (スキャンのサポートのために usblp がロードされることを防ぎます。このモジュールは xsane や関連するツールでは必要なく、CUP と競合するかもしれません)。最後に再起動してください。[5]

これに加えて、一部の Cannon プリンタは、スキャンモードが "Computer" に設定されている場合、"device busy" と返します。"Remote Scanner" モードに設定することで、問題が解決するはずです。[6]

パーミッションの問題

systemd によって scannerlp グループは廃止されました。あなたのユーザーをグループに追加する必要はありません。詳しくはユーザーとグループ#systemd 以前のグループを見てください。

USB デバイスのパーミッションを変更することもできますが推奨されません。Udev ルールを使ってスキャナーが認識されるように修正するほうが良いでしょう。

まずは lsusb で接続されている USB デバイスを確認してください:

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 04d9:1603 Holtek Semiconductor, Inc.
Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard
Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

上記の場合はスキャナーは Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard です。03f0vendorID2504productID です。

または、sane-find-scanner を root 権限で実行しても、同じ vendorIDproductID 得ることができます。

/usr/lib/udev/rules.d/65-sane.rules を開いてあなたのスキャナーの vendorIDproductID が書かれた行が存在するか確認してください。存在しない場合、新しいファイル /etc/udev/rules.d/65-sane-missing-scanner.rules を以下の内容で作成します:

ATTRS{idVendor}=="vendorID", ATTRS{idProduct}=="productID", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

ファイルを保存したら、スキャナを一度切断してから再接続すればファイルのパーミッションが正しく設定されているはずです。

この記事またはセクションの正確性には問題があります。
理由: 正しいバックエンドファイルにスキャナを追加する必要があります。全てのスキャナで hp4200.conf が機能するわけではありません。 (議論: トーク:SANE#)

デバイス (スキャナー) をバックエンドファイルに追加することもできます:

usb 0x03f0 0x2504/etc/sane.d/hp4200.conf に追加すると以下のようになります:

#
# Configuration file for the hp4200 backend
#
#
# HP4200
#usb 0x03f0 0x0105
usb 0x03f0 0x2504

パラレルポート接続のスキャナ

パラレルポートで接続されたデバイスは全てプリンターとして認識され lp グループが割り当てられます。udev ルールを作成して該当するパラレルポートを libsane_matched として設定するか、あるいはユーザーを lp ユーザグループに追加してください。CUPS も設定ファイルを読み取るために lp グループを使うため、ユーザーを lp グループに追加すると潜在的にセキュリティ上問題があります。詳しくは CUPS#接続インターフェイス を参照。

avahi-daemon は必須ではありません

一部のスキャナアプリケーションでは、起動時に avahi-daemon が起動している必要があります。実は、これは SANE が原因なのです。有線スキャナを使っていたり、スキャナのドライバがセットアップ時にすでにネットワークをサポートしていたりして avahi-daemon サービスを有効化する必要がない場合、SANE の設定ファイルから net バックエンドをコメントアウトしてください:

/etc/sane.d/dll.conf
# The next line enables the network backend; comment it out if you do not
# need to use a remote SANE scanner over the network -- see sane-net(5)
# and saned(8) for details.
#net

そして、saned デーモンを再起動してください。

参照

翻訳ステータス: このページは en:SANE の翻訳バージョンです。最後の翻訳日は 2023-07-13 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。