「SANE」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Kusakata がページ「Sane」を「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 でスキャナーを使うためのライブラリとコマンドラインツールを提供しています。
+
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}} を[[pacman|インストール]]してください。
+
{{Pkg|sane}} パッケージを[[インストール]]してください。
   
== 設定 ==
+
== 検証 ==
sane があなたのスキャナーを認識しているか試すことができます:
+
sane があなたのスキャナーを認識しているか確認してください:
 
$ scanimage -L
 
$ scanimage -L
これが失敗したの、スキャナーがコンピュータに接続されている確認してください。{{ic|/etc/udev/rules.d/sane.rules}} があなたのスキャナーを見つけためにスキャナーのプラグを一度抜く必要がるかもしれせん
+
上記のコマンドが失敗する場合、root で再度コマンドを実行てパーミッションが問題のかどうか確認してください。root で実行しても失敗する場合、スキャナーがコンピュータに接続されていることを確認してください。スキャナーを一度切断して再度接続すると {{ic|/etc/udev/rules.d/sane.rules}} がスキャナーを認識すことも
   
それから sane が実際に動作するか確認してください:
+
実際にスキャンができかどうか確認するには:
$ scanimage --format=tiff > test.tiff
+
$ 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 からインストールすることができ、以下のセットアップが自動的に行われます。}}
 
   
ブラザーのスキャナーやプリンター・スキャナー複合機を使用するには正しいドライバを (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}} のサブディレクトリが推奨です。
+
まずファームウェアをどこか安全なところに置いてください{{ic|/usr/share/sane}} のサブディレクトリが推奨です。
   
 
それから sane にファームウェアの場所を教える必要があります:
 
それから sane にファームウェアの場所を教える必要があります:
*[http://www.sane-project.org/sane-supported-devices.html sane supported devices list] からあなたのスキャナーのバックエンドの名前を見つけさい。
+
*[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}} ファイルにアクセスできるようにしてください。
+
*該当ファームウェアエントリをアンコメントしファイルパスを先ほど置いたファームウェアファイルに書き換えてください。{{Ic|scanner}} グループのユーザーが {{ic|/etc/sane.d/<backend-name>.conf}} ファイルにアクセスできるようにしてください。
   
あなたのスキャナーのバックエンドが sane パッケージに含まれていない場合 (hplip の一部の hpaio.conf など)、/etc/sane.d/dll.d/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
   
root でないログインプロンプトからワークステーションの接続をテストしてください:
+
それからワークステーションの接続をテストしてください:
$ xsane
 
 
または
 
 
$ scanimage -L
 
$ scanimage -L
   
しばらくすば、xsane がリモートスキャナを見つけてネットワークスキャニングの準備できるはずです。
+
で[[#フロンエンドのインル|フロントエンド]]にネットワークスキャナー表示されるはずです。
   
  +
==トラブルシューティング==
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
+
epson2
#epson
+
#epson
   
  +
以下のように変更してください:
to
 
   
#epson2
+
#epson2
epson
+
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}} を開いて不要なものをコメントアウトしてください (例: epson, epson2, epkowa を有効している場合epson epkowa だけアンコメント)
+
{{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 ルールを使ってスキャナーが認識されるように修正するほうが良いでしょう。
   
まず、root で、{{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
   
上記の例の場合スキャナは: {{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|/usr/lib/udev/rules.d/49-sane.rules}} を開いてあなたのスキャナの vendorID と productID が書かれた行が存在するか確認してください。存在しない場合、新しいファイル {{ic|/etc/udev/rules.d/49-sane-missing-scanner.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 パッケージをインストールしてください。

検証

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 パッケージに含まれていない場合 (hpliphpaio.conf など)、/etc/sane.d/dll.conf 内の関係するエントリをアンコメントする必要があります。

フロントエンドのインストール

SANE には多数のフロントエンドが存在しています。sane-project のウェブサイト にはフロントエンドのリストが載っています。もしくは pacman を使って "sane" や "scanner" などのキーワードでリポジトリを検索してください。

  • gscan2pdf — スキャンした文章から PDF, TIFF, DjVu を生成する GTK2 ベースの GUI。他のエンジンを使うことで OCR をすることもできます。
http://gscan2pdf.sourceforge.net/ || gscan2pdfAUR
  • Simple ScanGNOME デスクトップに統合され XSane よりも使いやすいシンプルな GUI。元は Ubuntu 用に作られたソフトウェアで Canonical Ltd. の Robert Ancell によって GNU/Linux 版はメンテナンスされています。
http://launchpad.net/simple-scan || simple-scan
  • Skanlite — 画像のスキャンと保存しかできないシンプルな画像スキャンアプリケーション。KSane バックエンドがベース。
https://www.kde.org/applications/graphics/skanlite || skanlite
  • XSane — 懐古な見た目ながら豊富な機能があるフル機能の GTK ベースのフロントエンド。
http://www.xsane.org/ || xsane
ノート: 16ビットの色深度モードで XSane を使って直接 PDF にスキャンすると 破損したファイル が生成される既知のバグがあります。8ビットモードでは問題ありません。

ネットワークスキャニング

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

スキャナーをネットワーク上の 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) を参照。

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

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

リモートの 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 製スキャナーと epson2epson バックエンドで発生する問題です。その場合、/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 ポートだけモードを切り替えることができます。
  • ネットワークを介してスキャナーを接続する (ネットワークスキャナーの場合)。

起動が遅い

起動が遅い場合 (例: xsanescanimage -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.confblacklist usblp を記述して usblp カーネルモジュールをブラックリスト化してください (usblp がロードされなくなりますが、CUPS あるいは xsane などのツールでは必要ありません)。その後再起動してください [3]

パーミッション問題

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 です。

/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