「SANE」の版間の差分
(→スキャナードライバーのインストール: 削除) |
細 (リンクを修正) |
||
(2人の利用者による、間の10版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category:イメージング]] |
+ | [[Category:デジタルイメージング]] |
[[en:SANE]] |
[[en:SANE]] |
||
[[zh-hans:SANE]] |
[[zh-hans:SANE]] |
||
31行目: | 31行目: | ||
* {{App|[[Wikipedia:Simple Scan|Simple Scan]]|XSane よりも [[GNOME]] デスクトップにより良く統合され、より使いやすくなるように設計されたシンプルな GUI。{{Grp|gnome}} の一部。|https://gitlab.gnome.org/GNOME/simple-scan|{{Pkg|simple-scan}}}} |
* {{App|[[Wikipedia:Simple Scan|Simple Scan]]|XSane よりも [[GNOME]] デスクトップにより良く統合され、より使いやすくなるように設計されたシンプルな GUI。{{Grp|gnome}} の一部。|https://gitlab.gnome.org/GNOME/simple-scan|{{Pkg|simple-scan}}}} |
||
* {{App|[[Wikipedia:Skanlite|Skanlite]]|画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。|https://apps.kde.org/skanlite/|{{Pkg|skanlite}}}} |
* {{App|[[Wikipedia:Skanlite|Skanlite]]|画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。|https://apps.kde.org/skanlite/|{{Pkg|skanlite}}}} |
||
− | * {{App|Skanpage| |
+ | * {{App|Skanpage|複数ページのスキャンやドキュメントと画像の保存のために設計されたシンプルなスキャンアプリケーション。|https://apps.kde.org/skanpage/|{{Pkg|skanpage}}}} |
* {{App|[[Wikipedia:Scanner Access Now Easy#XSane|XSane]]|懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。|http://www.xsane.org/|{{Pkg|xsane}}}} |
* {{App|[[Wikipedia:Scanner Access Now Easy#XSane|XSane]]|懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。|http://www.xsane.org/|{{Pkg|xsane}}}} |
||
45行目: | 45行目: | ||
== 検証 == |
== 検証 == |
||
+ | |||
− | sane があなたのスキャナーを認識しているか確認してください: |
||
+ | インストールが終わった今、sane がスキャナを認識するかどうか試してみることができます: |
||
+ | |||
$ scanimage -L |
$ scanimage -L |
||
− | 上記のコマンドが失敗する場合、root で再度コマンドを実行してパーミッションが問題なのかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。スキャナーを一度切断して再度接続すると {{ic|/usr/lib/udev/rules.d/49-sane.rules}} がスキャナーを認識することもあります。 |
||
+ | 上記のコマンドが失敗する場合、root で再度コマンドを実行してパーミッションが問題なのかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。また、{{ic|/usr/lib/udev/rules.d/65-sane.rules}} にスキャナを認識させるために、スキャナを抜き差しする必要があるかもしれません。 |
||
− | 実際にスキャンができるかどうか確認するには: |
||
+ | |||
− | $ scanimage --format=png > test.png |
||
+ | 確認したら、スキャナが実際に動作するかどうか確認できます: |
||
+ | |||
+ | $ scanimage --format=png --output-file test.png --progress |
||
+ | |||
+ | {{ic|scanimage: sane_start: Invalid argument}} というメッセージを吐いてスキャンが失敗する場合、デバイスを指定する必要がある場合があります: |
||
− | {{ic|scanimage: sane_start: Invalid argument}} というメッセージを吐いてスキャンが失敗する場合、デバイスを指定する必要があります: |
||
{{hc|$ scanimage -L| |
{{hc|$ scanimage -L| |
||
device `v4l:/dev/video0' is a Noname Video WebCam virtual device |
device `v4l:/dev/video0' is a Noname Video WebCam virtual device |
||
− | device `pixma:04A91749_247936' is a CANON Canon PIXMA MG5200 multi-function peripheral |
+ | device `pixma:04A91749_247936' is a CANON Canon PIXMA MG5200 multi-function peripheral |
+ | }} |
||
以下のように実行してみてください: |
以下のように実行してみてください: |
||
− | $ scanimage --device "pixma:04A91749_247936" --format=tiff > test.tiff |
||
+ | $ scanimage --device "pixma:04A91749_247936" --format=tiff --output-file test.tiff --progress |
||
− | Sane はスキャナーのタイプにあわせて多数のバックエンドを用意しちえます。あなたのデバイスのバックエンドを確認するには: |
||
+ | |||
+ | Sane は、数々のスキャナのタイプに対して多く特別なバックエンドオプションを提供しています。あなたのデバイス用のバックエンドは何か確認するには: |
||
+ | |||
$ scanimage -A |
$ scanimage -A |
||
+ | == ファームウェア == |
||
− | ==フロントエンドのインストール== |
||
− | SANE には多数のフロントエンドが存在しています。[http://www.sane-project.org/sane-frontends.html sane-project のウェブサイト] にはフロントエンドのリストが載っています。もしくは {{ic|pacman}} を使って "sane" や "scanner" などのキーワードで[[Pacman#パッケージ・データベースに問い合わせる|リポジトリを検索]]してください。 |
||
+ | {{Note|このセクションが必要になるのは、スキャナにファームウェアをアップロードする必要がある場合だけです。}} |
||
− | * {{App|[[Wikipedia:Scanner_Access_Now_Easy#gscan2pdf|gscan2pdf]]|スキャンした文章から PDF, TIFF, DjVu を生成する GTK2 ベースの GUI。他のエンジンを使うことで [[OCR]] をすることもできます。|http://gscan2pdf.sourceforge.net/|{{Pkg|gscan2pdf}}}} |
||
− | * {{App|[[Wikipedia:Scanner_Access_Now_Easy#Simple_Scan|Simple Scan]]|[[GNOME]] デスクトップに統合され XSane よりも使いやすいシンプルな GUI。元は Ubuntu 用に作られたソフトウェアで Canonical Ltd. の Robert Ancell によって GNU/Linux 版はメンテナンスされています。|https://launchpad.net/simple-scan|{{Pkg|simple-scan}}}} |
||
− | * {{App|[[Wikipedia:Skanlite|Skanlite]]|画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。|https://www.kde.org/applications/graphics/skanlite|{{Pkg|skanlite}}}} |
||
− | * {{App|[[Wikipedia:Scanner_Access_Now_Easy#XSane|XSane]]|懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。|http://www.xsane.org/|{{Pkg|xsane}}}} |
||
+ | 通常、ファームウェアには ''.bin'' 拡張子が付いています。 |
||
− | {{Note| |
||
+ | |||
− | * 16ビットの色深度モードで XSane を使って直接 PDF にスキャンすると [https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/539162 破損したファイル] が生成される既知のバグがあります。8ビットモードでは問題ありません。 |
||
+ | まず、ファームウェアをどこか安全なところに置いてください。{{ic|/usr/share/sane/}} のサブディレクトリ内に置くことが推奨されます。 |
||
− | * フロントエンドを使用するというだけでは設定が不要になるわけではありません。特に [[Avahi|mDNS]] でデバイスを設定する場合などです。例えば {{ic|skanlite}} は mDNS を扱うことができないため、ネットワークスキャナを正しく認識するにはコマンドラインに情報を追加する必要があります。HP Officejet Pro L7590 での設定例: {{ic|1=skanlite --device "hpaio:/net/Officejet_Pro_L7500?ip=192.168.0.17"}}。}} |
||
+ | |||
+ | 次に、ファームウェアの場所を 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}} ファイルを変更してください。例えば: |
|
+ | # 必要 |
||
− | {{ic|/etc/sane.d/saned.conf}} ファイルを変更して下さい。例: |
||
− | # required |
||
localhost |
localhost |
||
+ | # ローカルサブネットを許可 |
||
− | # allow local subnet |
||
192.168.0.0/24 |
192.168.0.0/24 |
||
+ | 次に、マルチキャストでスキャナを発見できるようにするために、サーバ上で [[avahi]]-daemon をインストールし、有効化、起動してください (avahi-daemon がまだアクティブでない場合)。あるいは、スキャナが Airscan によってサポートされている場合、代わりに {{Pkg|sane-airscan}} パッケージをインストールしても良いです。 |
||
− | [[iptables]] を使っている場合、{{ic|nf_conntrack_sane}} [[カーネルモジュール|モジュール]]を追加してファイアウォールが {{ic|saned}} の接続を記録するようにしてください。 |
||
+ | [[iptables]] を使っている場合、{{ic|nf_conntrack_sane}} モジュールを[[カーネルモジュール|追加]]し、ファイアーウォールが {{ic|saned}} の接続を追跡するようにしてください。 |
||
− | その後 [[systemd]] を使って {{ic|saned.socket}} を[[起動]]・[[有効化]]してください。それでネットワークからスキャナーが使えるようになります。詳しくは {{man|8|saned}} を参照。 |
||
+ | |||
+ | Conntrack ヘルパはデフォルトで無効化されているようです。[https://home.regit.org/wp-content/uploads/2011/11/secure-conntrack-helpers.html] 以下のコマンドでアクティブ化できます: |
||
+ | |||
+ | # echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper |
||
+ | |||
+ | これを永続化するには、{{ic|nf_conntrack}} モジュールに対して {{ic|1=nf_conntrack_helper=1}} オプションを設定してください ([[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う]] を参照)。 |
||
+ | |||
+ | そして、{{ic|saned.socket}} を[[起動/有効化]]してください。これで、スキャナがネットワークを介して利用可能になりました。詳細は {{man|8|saned}} を参照してください。 |
||
{{Note|saned は意図的に net: バックエンドを使用するスキャナの共有を拒否することがあります (一部 USB スキャナも含まれます)。{{Bug|54786}} に共有を許可するパッチが存在しますが、ネットワークによっては問題が発生します。サーバーで {{ic|scanimage -L}} の出力からスキャナの URL を確認してください。}} |
{{Note|saned は意図的に net: バックエンドを使用するスキャナの共有を拒否することがあります (一部 USB スキャナも含まれます)。{{Bug|54786}} に共有を許可するパッチが存在しますが、ネットワークによっては問題が発生します。サーバーで {{ic|scanimage -L}} の出力からスキャナの URL を確認してください。}} |
||
− | === リモートのワークステーションからスキャナ |
+ | === リモートのワークステーションからスキャナにアクセスする === |
+ | |||
{{Note|一部のネットワークスキャナーでは別の設定が必要です。[[SANE/スキャナー別の問題]]を見てください。}} |
{{Note|一部のネットワークスキャナーでは別の設定が必要です。[[SANE/スキャナー別の問題]]を見てください。}} |
||
+ | |||
リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。 |
リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。 |
||
まず {{ic|/etc/sane.d/net.conf}} ファイルにサーバーのホストネームあるいは IP アドレスを指定してください: |
まず {{ic|/etc/sane.d/net.conf}} ファイルにサーバーのホストネームあるいは IP アドレスを指定してください: |
||
+ | |||
− | # static IP address |
||
+ | # 静的 IP アドレス |
||
192.168.0.1 |
192.168.0.1 |
||
+ | # あるいはホスト名 |
||
− | # or host name |
||
stratus |
stratus |
||
− | + | 次に、サーバ側での設定に応じて、リモートワークステーションに avahi-daemon をインストール、起動、そして有効化するか、あるいは、sane-airscan をインストールしてください。 |
|
+ | |||
+ | そして、ワークステーションの接続をテストしてください。 |
||
+ | |||
$ scanimage -L |
$ scanimage -L |
||
− | これで[[#フロントエンド |
+ | これで、[[#フロントエンド|フロントエンド]]にネットワークスキャナが表示されるはずです。 |
=== Windows クライアント === |
=== Windows クライアント === |
||
− | SANE の Windows 版は |
+ | 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] (古い) を試すことができます。 |
− | ==トラブルシューティング== |
+ | == トラブルシューティング == |
+ | |||
− | [[SANE/スキャナー別の問題]]も見てください。 |
||
+ | :[[SANE/スキャナー別の問題]] も見てください。 |
||
+ | |||
+ | === Invalid argument === |
||
− | ===Invalid argument=== |
||
xsane などの sane フロントエンドで "Invalid argument" エラーが出る場合、理由として以下のような理由が考えられます: |
xsane などの sane フロントエンドで "Invalid argument" エラーが出る場合、理由として以下のような理由が考えられます: |
||
==== ファームウェアファイルがない ==== |
==== ファームウェアファイルがない ==== |
||
− | スキャナーを使うためのファームウェアファイルが存在しない (詳しくは[[#ファームウェア|ファームウェア]]を参照)。 |
||
− | + | スキャナーを使うためのファームウェアファイルが存在していません (詳しくは [[#ファームウェア]] を参照)。 |
|
+ | |||
− | ファームウェアファイルのパーミッションが間違っている場合、以下のコマンドを実行してください: |
||
+ | ==== ファームウェアファイルのパーミッションが間違っている ==== |
||
+ | |||
+ | ファームウェアファイルのパーミッションが間違っています。パーミッションを修正してください: |
||
+ | |||
# chown root:scanner /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE'' |
# chown root:scanner /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE'' |
||
# chmod ug+r /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE'' |
# chmod ug+r /usr/share/sane/''SCANNER_MODEL''/''FIRMWARE_FILE'' |
||
− | ==== 複数のバックエンドがスキャナ |
+ | ==== 複数のバックエンドがスキャナを要求している ==== |
− | スキャナーをサポートしているバックエンドが複数ある場合、Sane はサポートがないバックエンドを選んでしまうことがあります (その場合 {{ic|scanimage -L}} でスキャナーが表示されません)。旧式の Epson 製スキャナーと {{ic|epson2}} と {{ic|epson}} バックエンドで発生する問題です。その場合、{{ic|/etc/sane.d/dll.conf}} で使用しないバックエンドをコメントアウトすることで解決できます。Epson の場合は、以下の行を: |
||
+ | あなたのスキャナをサポートしている (または、サポートしているように見せかけている) 複数のバックエンドが複数あり、sane が、その中からあなたのスキャナをサポートしていないバックエンドを選んでしまうことがあります (この場合、スキャナは {{ic|scanimage -L}} で表示されません)。これは、旧式の Epson スキャナと {{ic|epson2}} や {{ic|epson}} バックエンドを使用した際に発生します。その場合、解決策は、{{ic|/etc/sane.d/dll.conf}} 内の使用しないバックエンドをコメントアウトすることです。Epson の場合、以下のように epson2 をコメントアウトします: |
||
− | epson2 |
||
− | #epson |
||
+ | {{hc|/etc/sane.d/dll.conf| |
||
− | 以下のように変更してください: |
||
+ | #epson2 |
||
+ | epson |
||
+ | }} |
||
+ | 独立した {{AUR|iscan}} の {{ic|epkowa}} バックエンドが {{ic|snapscan}} バックエンド (epson スキャナ) と干渉することもあります。{{ic|scanimage -L}} コマンドを使ったときにこのエラーが表示されるでしょう。({{Pkg|xsane}} などの) スキャナーアプリを2回起動することで問題は解決します。もしくは {{ic|/etc/sane.d/epkowa.conf}} の設定が間違っていないか確認したり、あるいは {{AUR|iscan}} パッケージを削除してください。 |
||
− | #epson2 |
||
− | epson |
||
+ | ==== xHCI による通信ができない (旧式のスキャナ) ==== |
||
− | {{Pkg|iscan}} の epkowa バックエンドと snapscan バックエンド (epson スキャナー) が干渉することもあります。{{ic|scanimage -L}} コマンドを使ったときにエラーが表示されます。({{Pkg|xsane}} などの) スキャナーアプリを2回起動することで問題は解決します。もしくは {{ic|/etc/sane.d/epkowa.conf}} の設定が間違っていないか確認したり、あるいは {{Pkg|iscan}} パッケージを削除してください。 |
||
+ | 一部の古いモデルのスキャナーでは 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] |
||
− | ==== xHCI による通信ができない (旧式のスキャナー) ==== |
||
− | 一部の古いモデルのスキャナーでは USB 3 端子で接続した場合にスキャナーが機能しません。この問題が発生する場合、フロントエンドを起動する前に {{ic|1=SANE_USB_WORKAROUND=1}} [[環境変数]]を設定してみてください [https://lists.alioth.debian.org/pipermail/sane-announce/2017/000036.html][https://anonscm.debian.org/cgit/sane/sane-backends.git/commit/?id=1207ce5a40664c04b934bd0a6babbc1575361356]。 |
||
− | 上記の設定で問題が解決しない場合、以下の |
+ | 上記の設定で問題が解決しない場合、以下の回避策を試してみてください: |
− | * USB3 端子の代わりに USB2 端子を使うことができる場合、使ってみる。 |
||
− | * BIOS/EFI で xHCI を無効化する。eHCI が使われるようになってスキャナーが動作します。欠点として全ての USB 端子の速度が落ちます。 |
||
− | * 一部の Intel のチップセットでは '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] や [https://superuser.com/questions/812022/force-a-single-usb-3-0-port-to-work-as-usb-2-0] を見てください ("setpci" について書かれている部分までスクロールしてください)。シンプルなシェルスクリプトでひとつの USB ポートだけモードを切り替えることができます。 |
||
− | * ネットワークを介してスキャナーを接続する (ネットワークスキャナーの場合)。 |
||
+ | * 可能であれば、USB3 端子ではなく USB2 端子を使ってみる。 |
||
− | ===起動が遅い=== |
||
+ | * BIOS/EFI で xHCI を無効化する。eHCI が使われるようになってスキャナーが動作します。欠点として全ての USB3 端子の速度が落ちます。 |
||
− | 起動が遅い場合 (例: {{ic|xsane}} や {{ic|scanimage -L}} でスキャナーが認識されるまで時間がかかる)、おそらくスキャナーをサポートしているドライバが複数あるのが原因です。 |
||
+ | * (一部の) 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 ポートだけモードを切り替えることができます。 |
||
+ | * サポートされていれば、ネットワーク経由でスキャナに接続する。 |
||
+ | ==== ファイアーウォール ==== |
||
− | {{ic|/etc/sane.d/dll.conf}} を開いて不必要なドライバーをコメントアウトしてください (例: epson, epson2, epkowa が同時に使われる場合 epson あるいは epkowa だけを残して他をコメントアウトする)。 |
||
− | ネットワークスキャナ |
+ | ネットワークスキャンスキャナがハングすると、invalid argument (無効な引数) エラーが発生します。 |
+ | saned はデータポートの範囲を使用するため、6566/tcp と /etc/sane.d/saned.conf の data_portrange への接続を有効化するか、または、sane が上記のデータポートを有効化できるようにするために conntrack ファイアーウォールモジュールを使用しなければなりません。 |
||
− | スキャンデバイスとしてウェブカメラがある場合も起動時に認識が遅くなります。{{ic|/etc/sane.d/v4l.conf}} の全ての行をコメントアウトすることでウェブカメラをブラックリストにできます。 |
||
− | === |
+ | === 起動が遅い === |
+ | 起動が遅い場合 (例: {{ic|xsane}} や {{ic|scanimage -L}} が結果を返すまでに非常に長い時間がかかる)、使用していないドライバのどれかが原因である場合があります。 |
||
− | {{ic|scanimage -L}} で USB デバイスが確認できるのに {{ic|<nowiki>scanimage pixma:04A9173E_11DAD1 --format=tiff > test.tiff</nowiki>}} でテストすると 'Device busy' エラーしか返ってこない場合、scanner グループにユーザーを追加 {{ic|usermod -a -G scanner yourusername}} してから {{ic|/etc/modprobe.d/no-usblp.conf}} に {{ic|blacklist usblp}} を記述して usblp カーネルモジュールをブラックリスト化してください (usblp がロードされなくなりますが、CUPS あるいは xsane などのツールでは必要ありません)。その後再起動してください [http://cromwell-intl.com/linux/canon-pixma-printer-scanner.html]。 |
||
+ | {{ic|/etc/sane.d/dll.conf}} を編集して、使用しないスキャナドライバをコメントアウトすることで、この問題を解決できます。{{ic|scanimage -L}} を使うことで、どのドライバが必要であるかを判断することができます: |
||
− | ===パーミッション問題=== |
||
+ | {{hc|$ scanimage -L| |
||
− | systemd によって {{ic|scanner}} と {{ic|lp}} グループは廃止されました。ユーザーをグループに追加する必要はありません。詳しくは[[ユーザーとグループ#systemd 以前のグループ]]を見てください。 |
||
+ | 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}} ドライバ以外はすべてコメントアウトできます。 |
||
− | USB デバイスのパーミッションを変更することもできますが推奨されません。Udev ルールを使ってスキャナーが認識されるように修正するほうが良いでしょう。 |
||
+ | |||
+ | === 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 デバイスを確認してください: |
まずは {{ic|lsusb}} で接続されている USB デバイスを確認してください: |
||
+ | |||
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
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 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 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 003: ID 04d9:1603 Holtek Semiconductor, Inc. |
− | Bus 003 Device 002: ID 04fc:0538 Sunplus Technology Co., Ltd |
+ | 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 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 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
||
− | Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard |
+ | Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard |
Bus 001 Device 002: ID 046d:0802 Logitech, Inc. Webcam C200 |
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 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
||
180行目: | 225行目: | ||
上記の場合はスキャナーは {{ic|Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard}} です。{{ic|03f0}} が ''vendorID'' で {{ic|2504}} が ''productID'' です。 |
上記の場合はスキャナーは {{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/49-sane.rules}} を開いてあなたのスキャナーの vendorID と productID が書かれた行が存在するか確認してください。存在しない場合、新しいファイル {{ic|/etc/udev/rules.d/49-sane-missing-scanner.rules}} を以下の内容で作成します: |
||
+ | |||
− | ATTRS{idVendor}=="'''vendorID'''", ATTRS{idProduct}=="'''productID'''", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" |
||
+ | {{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}} に追加すると以下のようになります: |
{{ic|usb 0x03f0 0x2504}} を {{ic|/etc/sane.d/hp4200.conf}} に追加すると以下のようになります: |
||
+ | |||
# |
# |
||
# Configuration file for the hp4200 backend |
# Configuration file for the hp4200 backend |
||
196行目: | 247行目: | ||
usb 0x03f0 0x2504 |
usb 0x03f0 0x2504 |
||
− | ==== パラレルポート接続のスキャナ |
+ | ==== パラレルポート接続のスキャナ ==== |
+ | |||
+ | パラレルポートで接続されたデバイスは全てプリンターとして認識され {{ic|lp}} グループが割り当てられます。[[udev]] ルールを作成して該当するパラレルポートを {{ic|libsane_matched}} として設定するか、あるいはユーザーを {{ic|lp}} [[ユーザグループ]]に追加してください。CUPS も設定ファイルを読み取るために {{ic|lp}} グループを使うため、ユーザーを {{ic|lp}} グループに追加すると潜在的にセキュリティ上問題があります。詳しくは [[CUPS#接続インターフェイス]] を参照。 |
||
+ | |||
+ | === avahi-daemon は必須ではありません === |
||
+ | |||
+ | 一部のスキャナアプリケーションでは、起動時に ''avahi-daemon'' が起動している必要があります。実は、これは SANE が原因なのです。有線スキャナを使っていたり、スキャナのドライバがセットアップ時にすでにネットワークをサポートしていたりして ''avahi-daemon'' サービスを有効化する必要がない場合、SANE の設定ファイルから {{ic|net}} バックエンドをコメントアウトしてください: |
||
+ | |||
+ | {{hc|/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 |
||
+ | }} |
||
+ | |||
+ | そして、{{ic|saned}} デーモンを再起動してください。 |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | * [[Wikipedia:WS-Discovery]] (Microsoft の "ドライバレス" プロトコル) |
||
+ | {{TranslationStatus|SANE|2023-07-13|780345}} |
||
− | パラレルポートで接続されたデバイスは全てプリンターとして認識され {{ic|lp}} グループが割り当てられます。[[udev]] ルールを作成して該当するパラレルポートを {{ic|libsane_matched}} として設定するか、あるいはユーザーを {{ic|lp}} [[グループ]]に追加してください。CUPS も設定ファイルを読み取るために {{ic|lp}} グループを使うため、ユーザーを {{ic|lp}} グループに追加すると潜在的にセキュリティ上問題があります。詳しくは [[CUPS#接続インターフェイス]]を参照。 |
2023年12月14日 (木) 16:45時点における最新版
SANE (Scanner Access Now Easy) は、GNU/Linux でスキャナを使うためのライブラリとコマンドラインツールを提供します。
インストール
sane パッケージをインストールしてください。ほとんどのフロントエンドとドライバはこのパッケージを依存関係としてインストールするため、たいてい、このパッケージを明示的にインストールする必要はありません。
スキャナドライバ
最近のスキャナの多くは "ドライバレス" スキャンをサポートしています。[1] デバイスの互換性については、sane-airscan GitHub や Apple AirPrint devices で調べられます。
あなたのスキャナが "ドライバレス" モードで動作することが分かっている場合は、sane-airscan パッケージをインストールしてください。スキャナが USB を使用する場合は、USB 接続で IPP プロトコルを使用できるようにするために、ipp-usb パッケージをインストールし、 ipp-usb.service
を起動/有効化してください。
"ドライバレス" で動作しないかもしれない場合は、SANE - Supported Devices と SANE/スキャナー別の問題 を確認し、あなたのスキャナが別のドライバで動作するかどうかを調べてください。
ほとんどのスキャナは特に設定をしなくても動作します。動作しない場合は、SANE/スキャナー別の問題 でインストール手順を確認してください。
フロントエンド
SANE には多数のフロントエンドが存在しています。不完全なリストは SANE プロジェクトのウェブサイトで見られます。
- Simple Scan — XSane よりも GNOME デスクトップにより良く統合され、より使いやすくなるように設計されたシンプルな GUI。gnome の一部。
- Skanlite — 画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。
- Skanpage — 複数ページのスキャンやドキュメントと画像の保存のために設計されたシンプルなスキャンアプリケーション。
- XSane — 懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。
一部の OCR ソフトウェアは SANE を使って画像をスキャンできます: gImageReader、gscan2pdf、Linux-Intelligent-Ocr-Solution、OCRFeeder、Paperwork。
検証
インストールが終わった今、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 パッケージに含まれていない場合 (hplip の hpaio.conf
など)、/etc/sane.d/dll.d
か /etc/sane.d/dll.conf
内の関連するエントリをアンコメントする必要があります。
ネットワークを介してスキャナを共有する
sane や xsane、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) を参照してください。
リモートのワークステーションからスキャナにアクセスする
リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。
まず /etc/sane.d/net.conf
ファイルにサーバーのホストネームあるいは IP アドレスを指定してください:
# 静的 IP アドレス 192.168.0.1 # あるいはホスト名 stratus
次に、サーバ側での設定に応じて、リモートワークステーションに avahi-daemon をインストール、起動、そして有効化するか、あるいは、sane-airscan をインストールしてください。
そして、ワークステーションの接続をテストしてください。
$ scanimage -L
これで、フロントエンドにネットワークスキャナが表示されるはずです。
Windows クライアント
SANE の Windows 移植版はサポートされておらず、古くなっていて、入手するのが難しいため、代わりに SANEWinDS や SaneTwain (古い) を試すことができます。
トラブルシューティング
- 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 スキャナと epson2
や epson
バックエンドを使用した際に発生します。その場合、解決策は、/etc/sane.d/dll.conf
内の使用しないバックエンドをコメントアウトすることです。Epson の場合、以下のように epson2 をコメントアウトします:
/etc/sane.d/dll.conf
#epson2 epson
独立した iscanAUR の epkowa
バックエンドが 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 ファイアーウォールモジュールを使用しなければなりません。
起動が遅い
起動が遅い場合 (例: xsane
や scanimage -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
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 によって scanner
と lp
グループは廃止されました。あなたのユーザーをグループに追加する必要はありません。詳しくはユーザーとグループ#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
です。03f0
が vendorID で 2504
が productID です。
または、sane-find-scanner
を root 権限で実行しても、同じ vendorID と productID 得ることができます。
/usr/lib/udev/rules.d/65-sane.rules
を開いてあなたのスキャナーの vendorID と productID が書かれた行が存在するか確認してください。存在しない場合、新しいファイル /etc/udev/rules.d/65-sane-missing-scanner.rules
を以下の内容で作成します:
ATTRS{idVendor}=="vendorID", ATTRS{idProduct}=="productID", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"
ファイルを保存したら、スキャナを一度切断してから再接続すればファイルのパーミッションが正しく設定されているはずです。
デバイス (スキャナー) をバックエンドファイルに追加することもできます:
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
デーモンを再起動してください。
参照
- Wikipedia:WS-Discovery (Microsoft の "ドライバレス" プロトコル)