和在Windows下共享網絡上其它主機所連接的打印機一樣,在裝有SCO Unix主機的網絡上也能很方便地實現打印機的共享。對於TCP/IP網絡,遠程打印機聯網為Client/Server模式。在聯網的計算機中,沒有安裝打印機的Unix系統機器,可以將打印作業發送到安裝了打印機的Unix系統機器上。本文所討論的網絡打印機,和真正意義上的完全通過網絡安裝與配置的打印機不同,是通過配置假脫機程序達到經過網絡在遠程主機所連接的打印機上打印的目的。本文不涉及網絡本身的討論,假定TCP/IP網絡是開通的,下面就網絡打印機的配置過程做一簡要敘述。
該方法需要在打印服務器上配置一個本地打印機,並使它能接受遠程主機的打印請求。具體步驟如下。
1.配置打印接口
此項工作的實質是把相應口的驅動程序連入核心。打印機既可以安裝在Unix主機的並口上,也可以安裝在串口上。
(1)若安裝在COM1口上,則不必在系統中配置,它是系統默認的串口。若連接在COM2口或其它非智能多串卡的口上時,則需執行mkdev serial 命令,或進入scoadmin,選擇Hardware/Kernel Manager-> Serial port,此時屏幕顯示:
Description Ports IRQ I/O addr
IBM-COM1 1 4 3F8
並有Add、Delete、Modify三個選項。選擇Add,此時屏幕顯示:
Description Ports IRQ :[ 3 ]
IBM-COM2 1
AST 4 I/O addr [2f8]
…
其中第一列為串口或多口卡的名稱,第二列為端口數。隨著每行選項的不同, 顯示的IRQ和I/O addr取值也不同,但可直接修改。選中IBM-COM2後回車,此時在IBM-COM1下顯示: IBM-COM2 1 3 2F8, 表明串口配置成功。
(2)若安裝在並口上,則需執行mkdev parallel命令或進入scoadmin,選擇Hardware/Kernel Manager ->Parallel Port, 此時屏幕顯示:
Parallel Port Initialization
There are no parallel ports configured
Do you wish to:
1.Add a parallel port
2.Remove a parallel port
3.show configuration
4.help
select an option or enter q to quit:
敲入1,回車,此時屏幕顯示:
Please select the I/O address for the adapter:
1.Parallel Adapter at address :378-37f
2.Parallel Adapter at address:3bc-3be
3.Parallel Adapter at address: 278-27a
4.Other configuration
Select an option or enter q to quit:
這裡給出四種選擇。這一步應根據系統硬件的實際配置進行選擇,同時還應兼顧給出的I/O地址范圍。一般情況下,可選擇1,回車後屏幕提示:
Should this port use interrupt (default [7]):
如果使用中斷向量7則回車,屏幕顯示:The device node is /dev/lp0 ,表明並口配置成功。
(3)新的核心生成後,使用命令hwconfig -c檢查該口與其它設備有無沖突。顯示的信息內容:
name=serial base=0x2F8 offset=0x7 vec=3 dma=- unit=0 type=standard nports=1
name=parallel base=0x378 offset=0x2 vec=7 dma= - unit=0
若最後顯示No obvious conflicts in hardware settings 則表示沒有沖突。若提示有vector 或address沖突,則需要刪除所加口,選擇其它配置。
(4)對所設接口和打印機的連接進行檢查。檢查的辦法是直接給打印機發送數據。對於串行打印機使用命令: date > /dev/ttynn ,ttynn代表打印機所用串口(如COM1為tty1a,COM2為tty2a);對於並行打印機使用命令:date >/dev/lpn,lpn代表打印機所用並口(主並口為lp0)。命令把當前日期送到打印機上打印,如果打印機打印正確,表明所用接口配置正確。若打印機沒有輸出,把打印機及打印電纜連接到另外一個能正常打印的系統上測試:如果工作正常,說明所用打印接口的硬件有問題,應刪除此接口並重新配置其它接口。
2.設置打印機
(1)使用mkdev lp 命令或進入scoadmin,選擇Printers->Printer Manager->Printer->Add Local,此時屏幕顯示:
Add Local Printer
Name:[ ]
Description:[ ]
Model:[ ]
Device:[ ]
這一步要逐一填入相應的內容。Name代表准備添加的打印機名;Description代表注釋字段;Model代表打印機類的名字,可用↓選擇,如Epson、HP等,一般可選standard;Device代表打印接口的名字,如/dev/tty1a、/dev/lp0,也可用↓選擇。選OK後回車,打印機就設置完成了。再選Set To Default將它設為缺省打印機。
(2) 進入settings->Control,此時屏幕顯示:
Printer Control
[ ]Enable Printing
[ ]Accept New Local Jobs
[ ]Accept New Remote Jobs
將光標移到各選項後按空格鍵,若在[ ]中加上 ,表示選中此項,使打印機既接受本地打印,又接受遠程打印。
3.為客戶機建立信任
在/etc/hosts文件中加入客戶機的IP地址及主機名,在/etc/hosts.equiv中加入客戶機的主機名及需要使用遠程打印機的用戶名。若客戶機上所有用戶均需使用遠程打印機,則只加入客戶機的主機名即可。
經過上述3步,打印服務器上需做的工作就完成了。下面再敘述一下客戶機上需做的工作。
1/etc/hosts中加入打印服務器的IP地址和主機名。
2用命令mkdev lp或進入scoadmin,選擇Printer->Printer Manager->Printer->Add Remote->Unix,此時屏幕顯示:
Add Remote Unix printer
Host :[ ]
Printer:[ ]
在Host選項中填入(或用↓選擇)打印服務器的主機名,在Printer選項中填入打印服務器上所加的打印機名稱。選OK後回車,打印機就設置完成了。再選Set To Default將它設為缺省打印機。
客戶機上打印機的設置與打印服務器上打印機的設置是完全不同的,因此,不需對串口(或並口)進行配置,打印機本身也是虛擬的。
上述工作完成後,在客戶機上就可用lp命令直接在遠程打印機上打印了。lp不是直接操作打印的命令,它的功能是向打印服務提交打印作業的請求。Unix系統的打印工作是由打印服務進程來控制的,每當系統引導進入多用戶狀態時,打印服務便自動地啟動。lp命令提交的每個請求對應一個唯一的ID號request-id,在對打印請求注銷、修改或查看時,都要用到ID號。在SCO Unix系統中,打印請求的信息分別存放在目錄:/usr/spool/lp/temp 和/usr/spool/lp/requests下。在temp下,每個打印請求有request-id-0和request-id-1兩個文件。request-id-0中存放諸如打印文件名、優先級、打印機類型、打印份數等內容;request-id-1是打印源文件的完全拷貝,打印的數據就取自這個拷貝。在requests下,文件名為request-id-0,內容為打印請求的一些描述信息。在客戶機上使用lp命令後,在本機上並不產生打印請求,而是通過網絡在打印服務器上產生打印請求,打印文件的內容通過網絡復制到打印服務器的/usr/spool/lp/temp/request-id-1文件中,並通過遠程打印機打印出來。