在UNIX系统工作环境下,一旦遇到打印机系统故障,必然会不同程度地影响到工作。下面就是UNIX系统下打印机系统的6大故障及其排除方法,相信会对读者解决遇到的类似问题有所助益。
在UNIX系统工作环境下,经常会因为碰到因打印机系统故障致使打印机不能打印或打印效果不尽如人意的问题而伤脑筋,影响工作。笔者根据多年的实践经验,总结出在UNIX系
统下几种打印机系统故障的排除方法,供同行借鉴:
故障一:打印机不能打印
如果在打印命令发出之后打印机不动作,没有打印输出,则应做如下检查:
1.确保打印机电源接好。
2.检查打印机的硬件是否正常。一般可用自检的方法进行检查。
3.检查打印机电缆,保证它正常地连接到打印机接口和计算机打印端口上。
4.确保打印机配置正确。要建立并行或串行打印机使之能正确接收数据。如果打印机是串行的,应保证计算机向打印机发送数据的波特率与打印机的波特率相匹配。
5.应保证打印机处于有效状态。为此应启动sysadmsh并选择:
Printers→Schedule→Accept
Printers→Schedule→Enable
6.确保系统在启动时能够识别打印机端口。在版权信息之后,系统对每个端口都应显示类似下面的信息:
Parallel 0x378-ox37A 07-Unit=0
如果系统没有显示对应打印机的此类信息,则应按照下面故障三中提到的有关命令执行。
7.确保端口配置的中断向量正确,并且没有其它硬件在使用同一中断向量。
8.测试打印机端口的连接,办法是将命令的输出直接重定向至设备。
对于并行打印机LP0,键入:
date>dev/lp0
对于串行打印机ttyla,键入:
(stty options;date)>/dev/ttyla
这里options是波特率、校验码以及别的你要传给串行打印机的设置。
如果重定向命令的输出不能打印,应按照下面故障二中“不能重定向输出至打印机”的命令执行。
如果重定向命令的输出能打印,则提交一个标准文件(如/etc/motd),启动sysadmsh进行打印,选择:
Dirs/Files→Print
如果硬件连接正常,打印机有效且配置也正确,但打印请求仍得不到执行,则应作以下检查:
1.检查lpsched进程是否在运行:
ps-Ulp
2.如果lpsched进程不在运行,则重新启动:
/usr/lib/lpshut
/usr/lib/lpsched
3.检查打印请求是否经过筛选:
lpstat-o-1
该命令显示有关输出请求的状态,打印机名以及相关设备的详细情况。
4.如果打印机检测出错误,不会马上继续自动打印过程。通过使打印机有效,强制继续该过程。
故障二:不能重定向输出至打印机
如果将输出直接重定向至并行或串行端口,结果毫无动静,或者系统显示“不能建立”的消息,则应作如下检查:
1.检查该端口对应的设备文件在/dev目录
中是否存在。确保此文件是一个设备文件而不是文本文件。
2.从一个正常的系统上取下电缆用在本系统中以测试电缆的连接情况。
3.如果有DOS分区,则从DOS操作系统打印一个文件。如果在DOS下能够正常打印文件在UNIX系统下却不能,则应做如下检查:
确保端口系统启动时已被识别,并且端口配置正确;
如果端口配置正确,而还是不能将输出重定向至端口,则应换一个设备名试试;比如,对并行端口来讲,用LP1来替换LP0;对串行端口而言,用tty2a替换ttyla;
如果换了一个设备名还是不能打印,则可能是打印机有缺陷,应检查随打印机附带的硬件文献以试求解决办法。
4.如果在DOS下也不能打印,则应检查打印机配置。
如果打印机的配置正确,而还是不能将输出重定向至打印机,则问题很可能出在硬件上。这时应再次检查电缆和端口。如果问题还是不能解决,可与打印机供应商联系。
故障三:系统启动时没能识别端口
如果系统在启动时未能识别端口(即在版权信息之后未显示对应于端口的“parallel”或“serial”内容的一行信息),应作如下检查:
1.确认并行或串行卡的设置正确。
关掉电源,打开机器;
从总线上拔出打印卡,再重新插入。
2.如果并行卡多于一块,则可能是其中一块与另一块发生冲突,应移去第一块。
3.检查打印卡配置是否正确,这可以通过对照随卡附带的手册来实现。如有可能,可将卡设置为另一种配置试一试。
4.打印卡可能坏了,换一块试试。
故障四:打印机的输出非法
如果打印机打印出非法输出,则应对其作出如下检查:
1.确定串行打印机的波特率,看它与计算机的波特率是否匹配(如果打印机是通过并行端口连接的,则与波特率没有关系)。为达到最佳性能可将波特率设置为9600。
要将打印机服务所用的波特率作一改变,应使用如下的sysadmsh选择:
Printers→Configure→Parameters
在“Default initial settings(缺省初始设置)”部分的“stty”域内填入波特率数值。然后将一个标准样本文件提交打印。
2.确定打印机的奇偶校验设置情况,看它与打印机的奇偶校验设置是否匹配(如果打印机通过导线与计算机直接相连,且相关距离小于15.25m,则没有必要使用奇偶校验位)。
设置奇偶校验位后,应使用如下的sysadmsh选择:
Printers→Configure→Parameters
在表格的“Default initial settings”部分对“stty”域增加下列三项之一:
oddp设置产生奇校验
evenp设置产生偶校验
-parity设置不用校验位(缺省值)
故障五:打印输出格式不对
如果打印机的输出是合法的,但格式不对,则应启动sysadmsh并选择:
Printers→Configure→Parameters
针对下面的每一种情况,调整“Default initial settings”部分“stty”域的设置:
如果打印机输出的间距是正常情况下的两倍,则使用-onler或者-tabs选项;
如果输出的正文挤在一起,应输入-tabs选项;
如果打印机的输出呈锯齿状,则应输入-onlcr选择项(该选项是缺省设置的,但管理员可能由于误操作将其去掉)。
故障六:并行打印速度缓慢
如果打印机打印速度异常地慢,则应检查打印机安装过程中各项配置是否设置好。
如果在确认并行端口配置正确之后打印机速度仍然很慢,则问题可能在于并行端口产生中断的能力不够。
要加快并行打印机的打印速度,可以改变硬件和打印驱动程序通信的方式。可以使并行打印机的驱动程序“假脱机”于并行端口,这样驱动程序即可不依赖于从并行端口产生的中断(注:当打印机驱动程序“假脱机”并行脱口时,可能会遇到系统资源用完的问题)。
要对并行端口或并行打印机建立假脱机机制,应建立所谓的“特殊设备节点(special device node)”。执行步骤如下:
1.注意一下在系统启动时识别的那个并行打印机端口(可以在/usr/adm/mcssagcs文件中查看最后的启动信息)。比如:
parallel 0x378 0x374 unit=0
2.作为超级用户注册。
根据打印机的需要设置匹配的选项。
3.检查“Tab”的设置是否正确。
如果这些设置及波特率都正确,而输出还是不正常,则应检查打印机类型正确与否。如果在用打印服务建立打印机时选择的打印机类型不对,就会将不正确的控制字符传送给打印机,这会引起打印机的输出消失或者非法。另外,还可能是由于设置了错误的字符集所致。
如果不知道打印机类型,则应使用以下步骤查出打印机类型:
1.如果认为打印机是某一类型的而又不能确信,可在系统提示符下输入如下命令:
TERM=printer-type tput longname
一段对由printer-type指定的打印机的简单描述会出现在终端上。如果认为该描述与你的打印机不相符,可以另换一个printer-type试试,重复这一过程直到描述与实际打印机相符为止。
2.如果不知道用什么名字(printer-type)来试,可用以下命令来检查:
/usr/lib/terminfo目录,以得到打印机类型名清单:
ls -R/usr/lib/terminfo/more
从所得清单中选出一个词或数字来代表打印机类型。比如,名字495即代表AT&&T495打印机。用清单中的每一个名字来替换第1步的命令中的printer-type,直到满意为止。
当你获得自己认为是正确的打印机类型名之后,可改变打印机类型设置。为此应按以下步骤进行:
1.启动sysadmsh并选择:
Printers→Configure→Parameters
2.在打印机名(terminfo数据库)域中,输入打印机的类型名。
3.输入下列命令的一个以建立对应打印机的特殊设备文件:
对lp0,键入:mknod/dev/lp0p c 6 64
对lp1,键入:mknod/dev/lp1p c 6 65
对lp2,键入:mknod/dev/lp2p c 6 66
4.对所有想要配置的打印机都输入以下命令。比如,对/dev/lp0,应输入:
chown bin /dev/lp0p
chgrp bin /dev/lp0p
chmod 222 /dev/lp0p
5.如果正在使用打印机的假脱机程序,现在就必须将新的并行假脱机设备通知假脱机程序。
启动sysadmsh并选择:
Printers→Configure→Modify
6.在“Device mame(设备名)”域中,不要用标准并行设备名,应该用/dev/lp0p,/dev/lplp,或者/dev/lp2p。