sane

sane
http://www.sane-project.org/

スキャナの共有ができるらしい。
複合機をLAN上で共有しようと思っても、
プリンターしか共有できないが
これをつかえばできるようだ。

スキャナ共有
http://raijin.ddo.jp/pukiwiki/pukiwiki.php?%A5%B9%A5%AD%A5%E3%A5%CA%B6%A6%CD%AD
saneによる、玄箱のネットワークスキャナサーバ化をしてみました♪

——————————————————————————-
1.まず玄箱にログオンし、ユーザをrootにした後、saneのインストール
> apt-get install sane
→ インストールは無事完了!

2. saneのインストール後、玄箱のUSBポートに接続した我が家の複合機
EPSONPM-A850をスキャナとして認識してくれるかを確認。
> sane-find-scanner
found USB scanner (vendor=0x04b8 [EPSON], product=0x0806 [USB2.0 MFP(Hi-Speed)])
→ きっちり認識してくれてますね!!

3. saneでスキャナが認識されるかを確認(でいいのかな??)
> scanimage -L
device `epson:libusb:001:002′ is a Epson PM-A850 flatbed scanner
→ どうやらこちらも大丈夫そうです。

4. ここからネットワークで使えるようにするために玄箱を設定。
玄箱の/etc/sane.d/saned.confファイルを編集。スキャンを実施するクライアントのアドレスを追加する。
192.168.0.0/24
127.0.0.1
→上の2行を追記し、上書き保存して終了。

5. /etc/servicesの確認
sane-port 6566/tcp sane saned # SANE network scanner daemon
→ すでに記載があったため、追記する必要はなし。

6. /etc/inetd.confを編集
saned stream tcp nowait root /usr/sbin/tcpd /usr/sbin/saned
→上記の一行を追加し、上書き保存。

7. inetdの再起動
> /etc/init.d/inetd restart
→無事にinetdが再起動されました。

8. ここからはクライアント側のWindowsPCの設定です。
WindowsPCにてSaneTwainのダウンロードサイトからウィンドウズインストーラ(setup127.exe)をダウンロード。

9. WindowsPCにてインストーラを起動し、SaneTwainをインストール。
→setup127.exeファイルをダブルクリックし、後は指示通りにインストール♪

10. インストール後、SaneTwainを起動するとセットアップ画面が表示。
Sanetwain_setting.jpg
ホスト名にサーバのホスト名もしくはIPアドレスを入力し、あとはそのままOKを押します。
これで、そのままSaneTwainが起動されます!
——————————————————————————-
ここで、恐る恐るAquirePreviewのボタンを押してみると…
Sanetwain_preview.jpg
よし、ここまでくれば大丈夫だ!!

その後無事に画像のスキャンも成功し、これで我が家の家庭内LANで
EPSON PM-A850をネットワークプリンタ兼ネットワークスキャナとして使えるようになりました。
めでたし、めでたし♪

———————————

何事もなかったように始まった玄箱でスキャナ
まずは、saneを導入。

apt-get install sane

で、CannoScan Lide30を刺して、
sane-find-scanner
実行

found USB scanner (vendor=0x04a9 [Canon], product=0x220e [CanoScan], chip=LM9832/3) at libusb:003:005
何とか認識しているみたい。つづいてscanimage -Lを実行
KURO-BOX:~# scanimage -L
device `plustek:libusb:003:005′ is a Canon N1240U/LiDE30 USB flatbed scanner

デバイスファイルを作っておく。(不要かもしれないが一応ね)
KURO-BOX:/dev# ./MAKEDEV usb

上とは別に一般ユーザでもスキャナーを扱えるようにしておく(上記なら003/005だけでよいかもしれないが念のため)
KURO-BOX:/dev# chmod 0666 /proc/bus/usb/*/*
一般ユーザ(tmp-kun)で、sane-find-scannerを実行してrootと同じメッセージが出ていること。
一般ユーザで、以下のようなコマンドを打つとスキャナーが動くことを確認する。
tmp-kun@KURO-BOX:~$ scanimage | wc -c
111635
tmp-kun@KURO-BOX:~$

一応終了。
つづいてフロントエンドですが、「xsane」をwindowsに入れるのが一般的っぽいです。
でもおもちゃスキャナごときにPCへソフトをいれるのも気がすすまないので、今回の玄箱スキャナーでは
Webブラウザから操作できるようにsanecgi.tar.gzを(どこかから)ゲットします。
本家のサイトでは消されているようです。ただファイル名でgoogleにかければどっかが出るはずです。
(このプログラムではcgiにてscanimageをして画像変換ソフトにフィルターさせ、変換が終わったところで
imgリンク先を表示するIMGタグを出力させwebの応答とするだけです。作ろうと思えば自作は簡単だと思いますが
線画処理/写真処理など独特のtipsがあるようですので、自作しないのが吉。)

http://www.boutell.com/sanecgi/ の情報から、必要そうで不足していそうなプログラムを導入します。

apt-get install libjpeg-progs
apt-get install netpbm

ダウンロード&展開したファイルのscanner.cgiを/usr/lib/cgi-bin/(apache2/debianのデフォルトのcgi格納場所)
に格納する
(他に倣って)以下のとおりcgi.loadのモジュールを使用可とする。
ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/

格納したファイルscanner.cgiを修正する。
変更内容は、以下のとおり
KURO-BOX:/usr/lib/cgi-bin# diff -u /usr/lib/cgi-bin/scanner.cgi ~tmp-kun/sanecgi/
— /usr/lib/cgi-bin/scanner.cgi 2006-12-10 13:29:50.000000000 +0900
+++ /home/tmp-kun/sanecgi/scanner.cgi 2006-12-05 02:18:25.000000000 +0900
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/local/bin/perl

#REQUIRES PERL 5.004, sane (scanimage), cjpeg, the pbmplus/netpbm utilities,
#and pnmtopng! See the documentation for details!
@@ -9,8 +9,7 @@
#REQUIRED CONFIGURATION

#scanimage command, including device
-#$scanimage = “/usr/local/bin/scanimage -d microtek:/dev/scanner”;
-$scanimage = “/usr/bin/scanimage”;
+$scanimage = “/usr/local/bin/scanimage -d microtek:/dev/scanner”;

#Location of cjpeg
$cjpegdir = “/usr/bin”;
@@ -64,10 +63,10 @@

if ($img) {
print “Content-type: image/$tynn”;
– $ol = $l;
– $ot = $t;
– $ox = ($r – $l);
– $oy = ($b – $t);
+ $ol = $l * 25.4;
+ $ot = $t * 25.4;
+ $ox = ($r – $l) * 25.4;
+ $oy = ($b – $t) * 25.4;
$cmd = “($scanimage -l $ol -t $ot -x $ox -y $oy ” .
“–brightness $br –contrast $co –resolution $res ” .
“–mode $color | $conv) 2> /tmp/$$.errors |”;
@@ -112,10 +111,10 @@
$t = 0;
}
if ($r eq “”) {
– $r = 210;
+ $r = 8;
}
if ($b eq “”) {
– $b = 297;
+ $b = 11;
}
if ($res eq “”) {
$res = 72;
@@ -143,10 +142,10 @@
}
print <

Left (mm)

Top (mm)

Right (mm)

Bottom (mm)

+ Left “

+ Top “

+ Right “

+ Bottom “

Resolution (dpi)

Brightness (-100 to +100)

Contrast (-42 to +49)

KURO-BOX:/usr/lib/cgi-bin#

こんな感じで操作ができたらおしまい。