Difference between revisions of "Sane (日本語)"

From ArchWiki
Jump to: navigation, search
m
m (ネットワークを介してスキャナーを共有する)
Line 96: Line 96:
 
  # allow local subnet
 
  # allow local subnet
 
  192.168.0.0/24
 
  192.168.0.0/24
 +
 +
{{ic|nf_conntrack_sane}} モジュールを iptables に加えてファイアウォールが saned の接続を記録するようにしてください。
  
それから[[Official Repositories (日本語)|公式リポジトリ]]から {{Pkg|xinetd}} を[[pacman (日本語)|インストール]]してください。
+
最近では以下の情報は必要なくなっています。Sane はデーモンとして実行できるようになり xinetd は必要ありません。
 +
 
 +
[[Official Repositories (日本語)|公式リポジトリ]]から {{Pkg|xinetd}} を[[pacman (日本語)|インストール]]してください。
  
 
次に、{{ic|/etc/xinetd.d/sane}} という名のファイルが存在しているのを確認して disabled を no に設定します:
 
次に、{{ic|/etc/xinetd.d/sane}} という名のファイルが存在しているのを確認して disabled を no に設定します:

Revision as of 08:18, 20 March 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Sane は GNU/Linux でスキャナーを使うためのライブラリとコマンドラインツールを提供しています。 ここで あなたのスキャナーを Sane がサポートしているか確認できます。

インストール

公式リポジトリから saneインストールしてください。

設定

sane があなたのスキャナーを認識しているか試すことができます:

$ scanimage -L

これが失敗したのなら、スキャナーがコンピュータに接続されているか確認してください。/etc/udev/rules.d/sane.rules があなたのスキャナーを見つけるためにスキャナーのプラグを一度抜く必要があるかもしれません。

それから sane が実際に動作するか確認してください:

$ scanimage --format=tiff > test.tiff

HP 製品

HP のハードウェアを動かすには公式リポジトリから hplip をインストールしたり AUR から hpojAUR をインストールする必要があるかもしれません。

  • /etc/sane.d/dll.confhpaiohpoj を追加(アンコメント)する。
  • root 権限で hp-setup を実行するとデバイスを追加するのに役立つかもしれません。
  • hp-plugin は 'HPLIP Plugin Download and Install Utility' です。
  • hp-scan は 'HPLIP Scan Utility' です。

Hewlett-Packard の OfficeJet, PSC, LaserJet, PhotoSmart プリンター複合機を動かすには、root で ptal-init setup を実行して指示に従って下さい。その後 ptal-init デーモンを起動してください。

Brother 製品

ブラザーのスキャナーやプリンター・スキャナー複合機を使用するには正しいドライバを (AUR から) インストールする必要があります。 ドライバの種類は4つあります (brscan1-4)。正しいドライバを見つけるためにあなたのスキャナーのモデルを brother linux スキャナーページで検索してください。

ドライバをインストールした後は sane によってドライバ・スキャナーを認識させるために次を実行する必要があります。

# /usr/local/Brother/sane/setupSaneScan1 -i

ネットワークスキャナーには、Brother が設定ツールを提供しています:

$ brsaneconfig2 -a name=<ScannerName> model=<ScannerModel> ip=<ScannerIP>

例:

$ brsaneconfig2 -a name=SCANNER_DCP770CW model=DCP-770CW ip=192.168.0.110

Epson 製品

(Wi-Fi 含む) ネットワークスキャナーには、"Image Scan! for Linux" を使うことができます。

AUR から iscanAURiscan-plugin-networkAUR をインストールして、/etc/sane.d/epkowa.conf に次の行を追加してください:

net {IP_OF_SCANNER}

Samsung 製品

Samsung MFP プリンターを使うためには /etc/sane.d/xerox_mfp.conf を編集しなくてはなりません。

エントリの例:

#Samsung SCX-3200
usb 0x04e8 0x3441

プリンターモデルを必要なものに変更してください。ipVendor と idProduct のコードは lsusb で取得できます。このスレッドを見て下さい。

plustek スキャナー

plustek スキャナー (Canoscan スキャナー) にはロックディレクトリが必要なものがあります。/var/lock/sane ディレクトリを作り、そのパーミッションが 660 で、所有者が <user>:scanner になるようにしてください。このディレクトリのパーミッションが間違っていると、スキャナーを使えるのが root ユーザーだけになってしまいます。libusb を使うプログラム (xsane と kooka) にはノーマルユーザーで /proc/bus/usb にアクセスするために scanner グループと rw パーミッションが必要なプログラムもあるようです (少なくとも x86-64 には)。

ファームウェア

Note: このセクションはスキャナーにファームウェアをアップロードする必要があるときだけ読んで下さい。

一般的にファームウェアの拡張子は .bin です。

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

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

  • sane supported devices list からあなたのスキャナーのバックエンドの名前を見つけて下さい。
  • /etc/sane.d/<backend-name>.conf ファイルを開きます。
  • 該当ファームウェアエントリのコメントが外されているのを確認しファイルパスを先ほど置いたファームウェアファイルに書き換えてください。scanner グループのユーザーが /etc/sane.d/<backend-name>.conf ファイルにアクセスできるようにしてください。

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

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

XSane は Sane の GTK ベースのフロントエンドを提供します。XSane は公式リポジトリにある xsane パッケージからインストール可能です。

Note: 16ビット色深度モードで Xsane を使って直接 pdf に出力するとファイルが壊れる既知のバグがあります。8ビットモードで動作させて下さい。

他のフロントエンドを探すには:

  • pacman -Ss を使って "sane" や "scanner" といったキーワードで検索する
  • sane-project ウェブサイトの list of frontends を見る

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

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

スキャナーをネットワーク上の sane を使っている他のホストと共有することができます。サーバーをセットアップするためには、まずネットワーク上のどのホストにアクセス許可を与えるのか指定してください。

/etc/sane.d/saned.conf ファイルを変更して下さい、例:

# required
localhost
# allow local subnet
192.168.0.0/24

nf_conntrack_sane モジュールを iptables に加えてファイアウォールが saned の接続を記録するようにしてください。

最近では以下の情報は必要なくなっています。Sane はデーモンとして実行できるようになり xinetd は必要ありません。

公式リポジトリから xinetdインストールしてください。

次に、/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
}

そして次の行を /etc/services に追加してください:

sane-port 6566/tcp

xinetd デーモンを起動してください。

LAN を介して、他のワークステーションからスキャナーが使えるようになったはずです。

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

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

ワークステーションをセットアップするため、まず公式リポジトリから xsaneインストールしてください。

次に、/etc/sane.d/net.conf ファイルにサーバーのホストネームか IP アドレスを明示します:

# static IP address
192.168.0.1
# or host name
stratus

root でないログインプロンプトからワークステーションの接続をテストしてください:

$ xsane

または

$ scanimage -L

しばらくすれば、xsane がリモートスキャナーを見つけてネットワークスキャニングの準備ができるはずです。

HP のオールインワンネットワークプリンター・スキャナー・ファックスを使うには設定が必要です:

$ hp-setup <printer ip>

トラブルシューティング

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 epson2 resp. epson backends. In this case, the solution is to comment out the unwanted backend in /etc/sane.d/dll.conf. In the Epson case, that would be to change

 epson2
 #epson

to

 #epson2
 epson

起動が遅い

起動が遅い場合 (例: xsanescanimage -L がスキャナーを見つけるのに時間がかかる) おそらくスキャナーをサポートしているドライバが複数あるのが原因です。

/etc/sane.d/dll.conf を開いて不要なものをコメントアウトしてください (例: epson, epson2, epkowa を有効にしている場合、epson か epkowa だけアンコメント)

パーミッション問題

If you see your scanner only when running lsusb (as root), you might get it working by adding your user to scanner and/or lp group.

# gpasswd -a username scanner
# gpasswd -a username lp

This is reported to work on HP all-in-one models (e.g., PSC 1315 and PSC 2355).

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:

First, as root, check connected usb devices with lsusb:

#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

In our example we see scanner - 'Bus 001 Device 006: ID 03f0:2504 Hewlett-Packard'

Now edit /lib/udev/rules.d/53-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:

# 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.

Another tip, is that you can add your device (scanner) in backend file:

Add 'usb 0x03f0 0x2504' to /etc/sane.d/hp4200.conf so it looks like this:

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

Epson Perfection 1270

For Epson Perfection 1270, you also need a firmware named esfw3e.bin. It can be obtained by installing the Windows driver.

Modify the configuration file of the snapscan backend, /etc/sane.d/snapscan.conf. Change the firmware path line with yours:

   # 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

And add the following line in the end or anywhere you like

  # Epson Perfection 1270
  usb 0x04b8 0x0120

You can get such code information (usb 0x04b8 0x0120) by "sane-find-scanner" command.

Also add such information lines to /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

Replug scanner, you have a working Epson Perfection 1270 now.

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.