Scanner Server

in

前言︰
因為工作環境的因素,需要 scanner server 的環境,記憶中,umax 的 scanner 是有提供這樣的機制的,但是手中的那台老式掃描器,其驅動程式只提供到了 win98 的版本,而另一台 epson 的 scanner 雖然提供 win2k/xp 的驅動程式,但是並未提供 scanner server 的機制,只能獨享,所以花了點時間於網路上找資料。

果然,還是 opensource 偉大,很快的就在 sane 文件中發現了提供 scanner server 機制,心喜之餘,當然趕緊查看一下 ports 中是否有提供嘍 ^_^
這一查,還查出了問題來了,總共有三個與 sane 有關的軟件︰
sane-backends
sane-frontends
xsane

這 xsane 沒問題,早先有用過,所以知道它是一套獨立的掃描軟件,但另兩個又有何分別呢?
沒辦法,吃荳芽菜去...........
原來 sane-backends 是 scanner 的驅動程式,而 sane-frontends 則是掃描與取圖的軟件,基本上與 xsane 同性質。所以啦,聰明如您就知道首選為何啦 ^_^
當然,在開始之前,可別忘了先到 sane 的官網看一下您的 scanner 是否有被支援喲!

環境︰
Server:
FreeBSD 5.3 Release (PII-300MHz,192M-SDRAM)
Scanner:
UMAX Vista-S6E V1.7 (Fixed Scanner SCSI-2 device)
SCSI card:
AHA-2940UW (aic7880)
Client:
Win98se x1
Win2k x1
WinXP x1
三部 client 與 Scanner server 透過一台爛爛的 switch (幾百塊錢的那種)相連接。

安裝︰
SCSI card:
請自行參考此篇文章︰
Scanner 的安裝 on FreeBSD
sane-backends:
先取得 root 的權限,然後切換目錄執行安裝,如下︰
cd /usr/ports/graphics/sane-backends
make install clean

ok!收功,泡茶去^_^

設置︰
目前,sane 所提供的 daemon 需得透過 inetd 來提供服務,本身指令是沒法於背景中常駐的,所以得先設置 sane daemon 的埠編號,然後編輯 inetd 的設置。當然,這是可以偷懶為一個步驟的,老鳥自知,不過我們還是照正規步驟來進行........

首先,設置 sane daemon 的埠編號;
這兒我們得要在 /etc/services 中加入如下一行︰
sane-port 6566/tcp # SANE network scanner daemon

注意事項︰
*. 目前 sane daemon 是固定使用 6566 這個 port 來提供連線服務的,無法變更。
*. 如果 client 端要連線到 scanner server 時會經過防火牆的話,則 >1024 的 port 需釋放出來。

再來,提供 sane daemon 服務;
這兒,我們得要在 /etc/inetd.conf 中加入如下一行︰
sane-port stream tcp nowait saned:saned /usr/local/sbin/saned saned

如果您是使用其他的機制,如 xinetd or tcpd,則請自行 man saned。

為了系統安全,目前幾乎所有的 daemon 都不再像以前直接以 root 權限來執行,而是另行建立 user 身份及 group 來執行,所以這兒也不例外,我們要另外建立 user 及 group 來執行 sane daemon,如下︰
pw groupadd -n saned -g 566
pw useradd saned -c 'Sane daemon' -u 566 -g saned -d /nonexistent -s /sbin/nologin

在本例中,因為這台 scanner 的裝置節點其所有權為 root:operator,且權限為 0600,這樣子的情況是無法讓除 root 之外的 user 能夠存取 scanner 的,所以我們得要變更 scanner 裝置節點的所有權限。
而在 FreeBSD 5.x 中,是使用 devf 的模式,也就是說,這次直接修改 /dev 下的裝置節點的權限後,重開機後又需再重改一次,實在是粉麻煩的,因此我們採用修改 devf 設置檔的方式,以便一勞永逸 ^_^
請於 /etc/devfs.conf 檔案中,加入如下設置︰
own pass0 root:saned     # 修改 pass0 裝置節點檔的擁有者及群組
perm pass0 0660     # 修改 pass0 裝置節點檔的存取權限

最後,我們要設置 sane daemon 的相關設置。
如果您是使用 ports 來安裝的話,則可以在 /usr/local/etc/sane.d/ 目錄下看到一堆 *.conf 的設置檔,我們需要設置 saned.conf 這個檔案,以決定哪些 client 端可以使用 scanner。如下︰
192.168.168.0/28     # 整個 192.168.168.0/28 的子網域皆可使用 scanner
192.168.0.1     # 192.168.0.1 這部機器可使用 scanner
weon.study-area.org     # 來自 weon.study-area.org 的這部機器可使用 scanner
+     # 完全開放 scanner,只要連的上就能使用 scanner (您知道您在做啥?)

是否看出什麼端倪呢?
沒錯,您可以透過 Internet 讓遠處的網路來使用您的 scanner。只是不知和先掃好後再寄給對方哪個較好呢??

另外,您可能還得要針對您所使用的 scanner 及連結到電腦主機的傳輸模式,來設置相對映的設置檔。
以本例來說,就需將 umax.conf 中的 /dev/scanner 給置換為 /dev/pass0,如此才有辦法與 scanner 連線;當然,您也可以用另一種方式,在此且做保留,看看您是否能另舉呢?? ^_^

尾聲︰
利用 saned 來架構 scanner server,基本上是很簡單的,只要您的 scanner 有被 sane 所支援。
較麻煩的是在於 client 端應用軟件的部份,目前利用 sane 的掃描軟件似乎不多,最有名的 GUI 界面,也僅只有 xsane 這套軟件,然而它似乎僅只能做為 Gimp 的插件,除外則只能當做獨立的掃描軟件來運行了;同時因使用 GTK v:2 的原故,中文字皆會成為方框,目前的測試結果是--找不到解決方案。
另外則有 SaneTwain 這個軟件,其有提供 *.ds 的描述,可供 MS-Windows OS 上的應用程式來呼叫使用,不過目前的測試結果是只能掃出 100dpi 的解析,於印刷、美工界上實在是沒啥大用處,但辦公室或網頁處理上,則是大有可為。

拋出本文,除了因工作上的需求及備忘外,最主要的是希望能起到『拋磚引玉』的做用,畢竟個人力量有限,client 端的應用及程式實在無法完全去一一把弄、測試,希望此文的拋出,能引起有共同需求或興趣的同好,一一拋出『絕世好文』來 ^_^

關於作者
User picture

一個非常不像雙子座的雙子座頹廢男

使用者登入

書籍列表

線上使用者

目前共有 0 位註冊使用者7 位訪客 在線上。

部落格觀察

串聯

RSS feed

蟑螂的敵手

遠離過敏源,從此無需再見「小強」而抬腳 ^_^

科技 環保 省錢 乾淨 有效
有效去除蟑螂!!
小S也買了很多箱 BASF 送給親朋好友,大家都稱讚不絕呢!!
查閱細節 按此購買

最新回應

Happy Share

BlogAD Union