電腦店訊:在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。