「SANE」の版間の差分
(同期) |
|||
6行目: | 6行目: | ||
[[zh-cn:SANE]] |
[[zh-cn:SANE]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
+ | {{Related|SANE/スキャナー別の問題}} |
||
{{Related4|Scanner Button Daemon}} |
{{Related4|Scanner Button Daemon}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | + | SANE は GNU/Linux でスキャナーを使うためのライブラリとコマンドラインツールを提供しています。[http://www.sane-project.org/sane-supported-devices.html ここ] であなたのスキャナーを SANE がサポートしているか確認できます。 |
|
− | [http://www.sane-project.org/sane-supported-devices.html ここで] あなたのスキャナーを Sane がサポートしているか確認できます。 |
||
== インストール == |
== インストール == |
||
− | + | {{Pkg|sane}} パッケージを[[インストール]]してください。 |
|
− | == |
+ | == 検証 == |
− | sane があなたのスキャナーを認識しているか |
+ | sane があなたのスキャナーを認識しているか確認してください: |
$ scanimage -L |
$ scanimage -L |
||
− | + | 上記のコマンドが失敗する場合、root で再度コマンドを実行してパーミッションが問題なのかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。スキャナーを一度切断して再度接続すると {{ic|/etc/udev/rules.d/sane.rules}} がスキャナーを認識することもあります。 |
|
− | + | 実際にスキャンができるかどうか確認するには: |
|
− | $ scanimage --format= |
+ | $ scanimage --format=png > test.png |
+ | {{ic|scanimage: sane_start: Invalid argument}} というメッセージを吐いてスキャンが失敗する場合、デバイスを指定する必要があります: |
||
− | === HP 製品 === |
||
+ | {{hc|$ scanimage -L| |
||
− | HP のハードウェアを動かすには[[公式リポジトリ]]から {{Pkg|hplip}} をインストールしたり [[Arch User Repository|AUR]] から {{AUR|hpoj}} をインストールする必要があるかもしれません。 |
||
+ | 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|/etc/sane.d/dll.conf}} に {{Ic|hpaio}} や {{Ic|hpoj}} を追加(アンコメント)する。 |
||
+ | $ scanimage --device "pixma:04A91749_247936" --format=tiff > test.tiff |
||
− | * 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''' [[デーモン]]を起動してください。 |
||
+ | Sane はスキャナーのタイプにあわせて多数のバックエンドを用意しちえます。あなたのデバイスのバックエンドを確認するには: |
||
− | === Brother 製品 === |
||
+ | $ scanimage -A |
||
− | {{Tip|brscan ドライバーは AUR からインストールすることができ、以下のセットアップが自動的に行われます。}} |
||
− | + | == スキャナードライバーのインストール == |
|
+ | ほとんどのスキャナーは特に設定をしなくても動作します。動作しない場合は [[SANE/スキャナー別の問題]]を読んでください。 |
||
− | ドライバの種類は4つあります (brscan1-4)。正しいドライバを見つけるためにあなたのスキャナーのモデルを [http://support.brother.com/g/s/id/linux/en/download_scn.html brother linux スキャナーページ]で検索してください。 |
||
+ | ===ファームウェア=== |
||
− | ドライバをインストールした後は sane によってドライバ・スキャナーを認識させるために次を実行する必要があります (例: brscan2 互換デバイスの setupSaneScan2): |
||
+ | {{Note|このセクションはスキャナーにファームウェアをアップロードする必要がある場合のみ読んでください。}} |
||
− | # /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 |
||
− | |||
− | ==== Scan-key-tool ==== |
||
− | |||
− | 接続したコンピュータではなくスキャナー自体からユーザーが操作してスキャンをすることができるツールを Brother はリリースしています (例: キーパッドで "Scan to email" などを選択)。AUR から {{aur|brscan-skey}} をインストールして [[systemd#ユニットを使う|systemd]] を使って {{ic|brscan-skey.service}} を起動することでセットアップできます。デフォルトではこのサービスは AUR パッケージによって作成される ''brscan-skey'' ユーザーで動作します。 |
||
− | |||
− | キーパッドでスキャンのタイプが選択されたときに何を行うかを変更することが可能です。変更するには {{ic|/opt/brother/scanner/brscan-skey/brscan-skey-0.2.4-0.cfg}} を編集します。スキャンタイプが選択されると {{ic|IMAGE}}, {{ic|OCR}}, {{ic|EMAIL}}, {{ic|FILE}} の {{ic|SCAN_COMMAND}} 変数が実行されます: |
||
− | |||
− | $ $SCAN_COMMAND $SCANNER_DEVICE $SCANNER_FRIENDLY_NAME |
||
− | |||
− | {{ic|$SCAN_COMMAND}} はクォートでかこまれていないので、複数の位置パラメータを指定して実行することができます。{{ic|$SCANNER_DEVICE}} はデバイスの名前を参照し、sane のフロントエンドに指定する必要があります (例: {{ic|scanimage}} を使う場合は {{ic|--device-name}} フラグ)。例えば: {{ic|brother3:bus4;dev2}}。{{ic|$SCANNER_FRIENDLY_NAME}} はヒューマンリーダブルなスキャナーの名前です。 |
||
− | |||
− | 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" を使うことができます。 |
||
− | |||
− | [[Arch User Repository|AUR]] から {{AUR|iscan}} と {{AUR|iscan-plugin-network}} をインストールして、{{ic|/etc/sane.d/epkowa.conf}} に次の行を追加してください: |
||
− | net {IP_OF_SCANNER} |
||
− | |||
− | === Samsung 製品 === |
||
− | Samsung MFP プリンターを使うためには {{ic|/etc/sane.d/xerox_mfp.conf}} を編集しなくてはなりません。 |
||
− | |||
− | エントリの例: |
||
− | #Samsung SCX-3200 |
||
− | usb 0x04e8 0x3441 |
||
− | |||
− | プリンターモデルを必要なものに変更してください。ipVendor と idProduct のコードは {{ic|lsusb}} で取得できます。[https://bbs.archlinux.org/viewtopic.php?id=123934 このスレッド]を見て下さい。 |
||
− | |||
− | === plustek スキャナー === |
||
− | plustek スキャナー (Canoscan スキャナー) にはロックディレクトリが必要なものがあります。/var/lock/sane ディレクトリを作り、そのパーミッションが 660 で、所有者が <user>:scanner になるようにしてください。このディレクトリのパーミッションが間違っていると、スキャナーを使えるのが root ユーザーだけになってしまいます。libusb を使うプログラム (xsane と kooka) にはノーマルユーザーで /proc/bus/usb にアクセスするために scanner グループと rw パーミッションが必要なプログラムもあるようです (少なくとも x86-64 には)。 |
||
− | |||
− | ==ファームウェア== |
||
− | {{Note|このセクションはスキャナーにファームウェアをアップロードする必要があるときだけ読んで下さい。}} |
||
一般的にファームウェアの拡張子は '''{{Ic|.bin}}''' です。 |
一般的にファームウェアの拡張子は '''{{Ic|.bin}}''' です。 |
||
− | まずファームウェアをどこか安全なところに置いて |
+ | まずファームウェアをどこか安全なところに置いてください。{{ic|/usr/share/sane}} のサブディレクトリが推奨です。 |
それから sane にファームウェアの場所を教える必要があります: |
それから sane にファームウェアの場所を教える必要があります: |
||
− | *[http://www.sane-project.org/sane-supported-devices.html sane |
+ | *[http://www.sane-project.org/sane-supported-devices.html sane がサポートしているデバイスのリスト] からあなたのスキャナーのバックエンドの名前を確認してください。 |
*{{ic|/etc/sane.d/<backend-name>.conf}} ファイルを開きます。 |
*{{ic|/etc/sane.d/<backend-name>.conf}} ファイルを開きます。 |
||
− | *該当ファームウェアエントリ |
+ | *該当ファームウェアエントリをアンコメントしてファイルパスを先ほど置いたファームウェアファイルに書き換えてください。{{Ic|scanner}} グループのユーザーが {{ic|/etc/sane.d/<backend-name>.conf}} ファイルにアクセスできるようにしてください。 |
− | あなたのスキャナーのバックエンドが sane パッケージに含まれていない場合 (hplip |
+ | あなたのスキャナーのバックエンドが sane パッケージに含まれていない場合 ({{pkg|hplip}} の {{ic|hpaio.conf}} など)、{{ic|/etc/sane.d/dll.conf}} 内の関係するエントリをアンコメントする必要があります。 |
==フロントエンドのインストール== |
==フロントエンドのインストール== |
||
+ | SANE には多数のフロントエンドが存在しています。[http://www.sane-project.org/sane-frontends.html sane-project のウェブサイト] にはフロントエンドのリストが載っています。もしくは {{ic|pacman}} を使って "sane" や "scanner" などのキーワードで[[Pacman#パッケージ・データベースに問い合わせる|リポジトリを検索]]してください。 |
||
− | XSane は Sane の GTK ベースのフロントエンドを提供します。XSane は[[公式リポジトリ]]にある {{Pkg|xsane}} パッケージから[[pacman|インストール]]可能です。 |
||
− | {{Note|16ビット色深度モードで Xsane を使って直接 pdf に出力すると[https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/539162 ファイルが壊れる]既知のバグがあります。8ビットモードで動作させて下さい。}} |
||
+ | * {{App|[[Wikipedia:Scanner_Access_Now_Easy#gscan2pdf|gscan2pdf]]|スキャンした文章から PDF, TIFF, DjVu を生成する GTK2 ベースの GUI。他のエンジンを使うことで OCR をすることもできます。|http://gscan2pdf.sourceforge.net/|{{AUR|gscan2pdf}}}} |
||
− | 他のフロントエンドを探すには: |
||
+ | * {{App|[[Wikipedia:Scanner_Access_Now_Easy#Simple_Scan|Simple Scan]]|[[GNOME]] デスクトップに統合され XSane よりも使いやすいシンプルな GUI。元は Ubuntu 用に作られたソフトウェアで Canonical Ltd. の Robert Ancell によって GNU/Linux 版はメンテナンスされています。|http://launchpad.net/simple-scan|{{Pkg|simple-scan}}}} |
||
− | *{{Ic|pacman -Ss}} を使って "sane" や "scanner" といったキーワードで検索する |
||
+ | * {{App|[[Wikipedia:Skanlite|Skanlite]]|画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。|https://www.kde.org/applications/graphics/skanlite|{{Pkg|skanlite}}}} |
||
− | *sane-project ウェブサイトの [http://www.sane-project.org/sane-frontends.html list of frontends] を見る |
||
+ | * {{App|[[Wikipedia:Scanner_Access_Now_Easy#XSane|XSane]]|懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。|http://www.xsane.org/|{{Pkg|xsane}}}} |
||
+ | {{Note|16ビットの色深度モードで XSane を使って直接 PDF にスキャンすると [https://bugs.launchpad.net/ubuntu/+source/xsane/+bug/539162 破損したファイル] が生成される既知のバグがあります。8ビットモードでは問題ありません。}} |
||
==ネットワークスキャニング== |
==ネットワークスキャニング== |
||
− | + | === ネットワークを介してスキャナーを共有する === |
|
− | スキャナーをネットワーク上の sane を使っている他のホストと共有することができます。サーバーをセットアップするためには、まずネットワーク上のどのホストにアクセス許可を与えるのか指定してください。 |
+ | スキャナーをネットワーク上の sane を使っている他のホストと共有することができます。サーバーをセットアップするためには、まずネットワーク上のどのホストにアクセス許可を与えるのか指定してください。 |
− | {{ic|/etc/sane.d/saned.conf}} ファイルを変更して下さい |
+ | {{ic|/etc/sane.d/saned.conf}} ファイルを変更して下さい。例: |
# required |
# required |
||
localhost |
localhost |
||
# allow local subnet |
# allow local subnet |
||
192.168.0.0/24 |
192.168.0.0/24 |
||
− | |||
− | {{ic|nf_conntrack_sane}} モジュールを iptables に加えてファイアウォールが saned の接続を記録するようにしてください。 |
||
+ | iptables を使っている場合、{{ic|nf_conntrack_sane}} [[カーネルモジュール|モジュール]]を追加してファイアウォールが saned の接続を記録するようにしてください。 |
||
− | [[公式リポジトリ]]から {{Pkg|xinetd}} を[[pacman|インストール]]してください。 |
||
+ | その後 [[systemd]] を使って {{ic|saned.socket}} を起動・有効化してください。それでネットワークからスキャナーが使えるようになります。詳しくは {{man|8|saned|url=https://linux.die.net/man/8/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 |
||
− | } |
||
+ | === リモートのワークステーションからスキャナーにアクセス === |
||
− | そして次の行を {{ic|/etc/services}} に追加してください: |
||
+ | {{Note|一部のネットワークスキャナーでは別の設定が必要です。[[SANE/スキャナー別の問題]]を見てください。}} |
||
− | sane-port 6566/tcp |
||
+ | リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。 |
||
+ | まず {{ic|/etc/sane.d/net.conf}} ファイルにサーバーのホストネームあるいは IP アドレスを指定してください: |
||
− | '''xinetd''' [[デーモン]]を起動してください。 |
||
− | |||
− | LAN を介して、他のワークステーションからスキャナーが使えるようになったはずです。 |
||
− | |||
− | ==== リモートのワークステーションからスキャナーにアクセス ==== |
||
− | リモートの Arch Linux ワークステーションからネットワークが有効になったスキャナーにアクセスすることができます。 |
||
− | |||
− | ワークステーションをセットアップするため、まず[[公式リポジトリ]]から {{Pkg|xsane}} を[[pacman|インストール]]してください。 |
||
− | |||
− | 次に、{{ic|/etc/sane.d/net.conf}} ファイルにサーバーのホストネームか IP アドレスを明示します: |
||
# static IP address |
# static IP address |
||
192.168.0.1 |
192.168.0.1 |
||
148行目: | 85行目: | ||
stratus |
stratus |
||
− | + | それからワークステーションの接続をテストしてください: |
|
− | $ xsane |
||
− | |||
− | または |
||
$ scanimage -L |
$ scanimage -L |
||
− | + | これで[[#フロントエンドのインストール|フロントエンド]]にネットワークスキャナーが表示されるはずです。 |
|
+ | ==トラブルシューティング== |
||
− | HP のオールインワンネットワークプリンター・スキャナー・ファックスを使うには設定が必要です: |
||
+ | [[SANE/スキャナー別の問題]]も見てください。 |
||
− | $ hp-setup <printer ip> |
||
− | ==== Canon Pixma オールインワンプリンター/スキャナーを使ってネットワークを介してスキャン ==== |
||
− | プリンター/スキャナーの IP アドレスを確認して、{{ic|/etc/sane.d/pixma.conf}} に 'bjnp://10.0.0.20' という形式で追加してください。 |
||
− | |||
− | これで Sane はデバイスを見つけられるはずです。詳しくは 'man sane-pixma' を参照。 |
||
− | |||
− | ==トラブルシューティング== |
||
===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 の場合は、以下の行を: |
||
− | 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 |
|
+ | 以下のように変更してください: |
||
− | to |
||
− | + | #epson2 |
|
− | + | epson |
|
+ | {{Pkg|iscan}} の epkowa バックエンドと snapscan バックエンド (epson スキャナー) が干渉することもあります。{{ic|scanimage -L}} コマンドを使ったときにエラーが表示されます。({{Pkg|xsane}} などの) スキャナーアプリを2回起動することで問題は解決します。もしくは {{ic|/etc/sane.d/epkowa.conf}} の設定が間違っていないか確認したり、あるいは {{Pkg|iscan}} パッケージを削除してください。 |
||
− | ==== 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 ハブ) を使うしかありません。 |
||
+ | ==== xHCI による通信ができない (旧式のスキャナー) ==== |
||
+ | 一部の古いモデルのスキャナーでは USB 3 端子で接続した場合にスキャナーが機能しません。USB 2 端子が使える場合は大きな問題ではありません。USB 3 端子しか使えない場合、問題を解決する方法が複数あります: |
||
+ | * 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] や [http://superuser.com/questions/812022/force-a-single-usb-3-0-port-to-work-as-usb-2-0] を見てください ("setpci" について書かれている部分までスクロールしてください)。シンプルなシェルスクリプトでひとつの USB ポートだけモードを切り替えることができます。 |
||
+ | * ネットワークを介してスキャナーを接続する (ネットワークスキャナーの場合)。 |
||
===起動が遅い=== |
===起動が遅い=== |
||
− | 起動が遅い場合 (例: {{ic|xsane}} や {{ic|scanimage -L}} |
+ | 起動が遅い場合 (例: {{ic|xsane}} や {{ic|scanimage -L}} でスキャナーが認識されるまで時間がかかる)、おそらくスキャナーをサポートしているドライバが複数あるのが原因です。 |
− | {{ic|/etc/sane.d/dll.conf}} を開いて不要な |
+ | {{ic|/etc/sane.d/dll.conf}} を開いて不必要なドライバーをコメントアウトしてください (例: epson, epson2, epkowa が同時に使われる場合 epson あるいは epkowa だけを残して他をコメントアウトする)。 |
+ | |||
+ | ネットワークスキャナーが存在しない場合 "net" ドライバーもコメントアウトできます。 |
||
+ | |||
+ | スキャンデバイスとしてウェブカメラがある場合も起動時に認識が遅くなります。{{ic|/etc/sane.d/v4l.conf}} の全ての行をコメントアウトすることでウェブカメラをブラックリストにできます。 |
||
+ | |||
+ | ===Device busy=== |
||
+ | |||
+ | {{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|lsusb}} を (root で) 実行したときだけしかスキャナーが見えないときは、ユーザーを {{Ic|scanner}} や {{Ic|lp}} に追加することで解決できることがあります。 |
||
− | # gpasswd -a username scanner |
||
− | # gpasswd -a username lp |
||
− | HP のオールインワンモデル (e.g., PSC 1315 や PSC 2355) で有効なことが報告されています。 |
||
+ | systemd によって {{ic|scanner}} と {{ic|lp}} グループは廃止されました。ユーザーをグループに追加する必要はありません。詳しくは[[ユーザーとグループ#systemd 以前のグループ]]を見てください。 |
||
− | USB デバイスのパーミッションを変更することもできますが、推奨されません。Udev ルールを修正してスキャナが認識されるようにするほうが良いでしょう。 |
||
+ | |||
+ | 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|/usr/lib/udev/rules.d/49-sane.rules}} を開いて |
+ | {{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" |
ATTRS{idVendor}=="'''vendorID'''", ATTRS{idProduct}=="'''productID'''", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes" |
||
ファイルを保存したら、スキャナを一度切断してから再接続すればファイルのパーミッションが正しく設定されているはずです。 |
ファイルを保存したら、スキャナを一度切断してから再接続すればファイルのパーミッションが正しく設定されているはずです。 |
||
− | デバイス (スキャナ) をバックエンドファイルに追加することもできます: |
+ | デバイス (スキャナー) をバックエンドファイルに追加することもできます: |
− | {{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 |
2016年12月30日 (金) 21:35時点における版
SANE は GNU/Linux でスキャナーを使うためのライブラリとコマンドラインツールを提供しています。ここ であなたのスキャナーを SANE がサポートしているか確認できます。
インストール
検証
sane があなたのスキャナーを認識しているか確認してください:
$ scanimage -L
上記のコマンドが失敗する場合、root で再度コマンドを実行してパーミッションが問題なのかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。スキャナーを一度切断して再度接続すると /etc/udev/rules.d/sane.rules
がスキャナーを認識することもあります。
実際にスキャンができるかどうか確認するには:
$ scanimage --format=png > test.png
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 > test.tiff
Sane はスキャナーのタイプにあわせて多数のバックエンドを用意しちえます。あなたのデバイスのバックエンドを確認するには:
$ scanimage -A
スキャナードライバーのインストール
ほとんどのスキャナーは特に設定をしなくても動作します。動作しない場合は SANE/スキャナー別の問題を読んでください。
ファームウェア
一般的にファームウェアの拡張子は .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.conf
内の関係するエントリをアンコメントする必要があります。
フロントエンドのインストール
SANE には多数のフロントエンドが存在しています。sane-project のウェブサイト にはフロントエンドのリストが載っています。もしくは pacman
を使って "sane" や "scanner" などのキーワードでリポジトリを検索してください。
- gscan2pdf — スキャンした文章から PDF, TIFF, DjVu を生成する GTK2 ベースの GUI。他のエンジンを使うことで OCR をすることもできます。
- Simple Scan — GNOME デスクトップに統合され XSane よりも使いやすいシンプルな GUI。元は Ubuntu 用に作られたソフトウェアで Canonical Ltd. の Robert Ancell によって GNU/Linux 版はメンテナンスされています。
- Skanlite — 画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。
- XSane — 懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。
ネットワークスキャニング
ネットワークを介してスキャナーを共有する
スキャナーをネットワーク上の sane を使っている他のホストと共有することができます。サーバーをセットアップするためには、まずネットワーク上のどのホストにアクセス許可を与えるのか指定してください。
/etc/sane.d/saned.conf
ファイルを変更して下さい。例:
# required localhost # allow local subnet 192.168.0.0/24
iptables を使っている場合、nf_conntrack_sane
モジュールを追加してファイアウォールが saned の接続を記録するようにしてください。
その後 systemd を使って saned.socket
を起動・有効化してください。それでネットワークからスキャナーが使えるようになります。詳しくは saned(8) を参照。
リモートのワークステーションからスキャナーにアクセス
リモートの Arch Linux ワークステーションからネットワークスキャナーにアクセスすることができます。
まず /etc/sane.d/net.conf
ファイルにサーバーのホストネームあるいは IP アドレスを指定してください:
# static IP address 192.168.0.1 # or host name stratus
それからワークステーションの接続をテストしてください:
$ scanimage -L
これでフロントエンドにネットワークスキャナーが表示されるはずです。
トラブルシューティング
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 #epson
以下のように変更してください:
#epson2 epson
iscan の epkowa バックエンドと snapscan バックエンド (epson スキャナー) が干渉することもあります。scanimage -L
コマンドを使ったときにエラーが表示されます。(xsane などの) スキャナーアプリを2回起動することで問題は解決します。もしくは /etc/sane.d/epkowa.conf
の設定が間違っていないか確認したり、あるいは iscan パッケージを削除してください。
xHCI による通信ができない (旧式のスキャナー)
一部の古いモデルのスキャナーでは USB 3 端子で接続した場合にスキャナーが機能しません。USB 2 端子が使える場合は大きな問題ではありません。USB 3 端子しか使えない場合、問題を解決する方法が複数あります:
- BIOS/EFI で xHCI を無効化する。eHCI が使われるようになってスキャナーが動作します。欠点として全ての USB 端子の速度が落ちます。
- 一部の Intel のチップセットでは 'setpci' コマンドを使って特定の USB 端子で xHCI と eHCI コントローラーのどちらを使うか指定することができます。詳しくは [1] や [2] を見てください ("setpci" について書かれている部分までスクロールしてください)。シンプルなシェルスクリプトでひとつの USB ポートだけモードを切り替えることができます。
- ネットワークを介してスキャナーを接続する (ネットワークスキャナーの場合)。
起動が遅い
起動が遅い場合 (例: xsane
や scanimage -L
でスキャナーが認識されるまで時間がかかる)、おそらくスキャナーをサポートしているドライバが複数あるのが原因です。
/etc/sane.d/dll.conf
を開いて不必要なドライバーをコメントアウトしてください (例: epson, epson2, epkowa が同時に使われる場合 epson あるいは epkowa だけを残して他をコメントアウトする)。
ネットワークスキャナーが存在しない場合 "net" ドライバーもコメントアウトできます。
スキャンデバイスとしてウェブカメラがある場合も起動時に認識が遅くなります。/etc/sane.d/v4l.conf
の全ての行をコメントアウトすることでウェブカメラをブラックリストにできます。
Device busy
scanimage -L
で USB デバイスが確認できるのに scanimage pixma:04A9173E_11DAD1 --format=tiff > test.tiff
でテストすると 'Device busy' エラーしか返ってこない場合、scanner グループにユーザーを追加 usermod -a -G scanner yourusername
してから /etc/modprobe.d/no-usblp.conf
に blacklist usblp
を記述して usblp カーネルモジュールをブラックリスト化してください (usblp がロードされなくなりますが、CUPS あるいは xsane などのツールでは必要ありません)。その後再起動してください [3]。
パーミッション問題
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 です。
/usr/lib/udev/rules.d/49-sane.rules
を開いてあなたのスキャナーの vendorID と productID が書かれた行が存在するか確認してください。存在しない場合、新しいファイル /etc/udev/rules.d/49-sane-missing-scanner.rules
を以下の内容で作成します:
ATTRS{idVendor}=="vendorID", ATTRS{idProduct}=="productID", MODE="0664", GROUP="scanner", 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