和在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文件中,并通过远程打印机打印出来。