BBS水木清华站∶精华区

发信人: sjlin@raphael.life.nthu.edu.tw (Shih-chieh Lin), 信区: Linux 
标  题: Re: About HP Laser Printer 
发信站: Godcorp (Wed Oct 25 14:12:55 1995) 
 
alfa (alfa.bbs@bbs.ntu.edu.tw) wrote: 
  大家好! 
   小弟有一个关於printer的问题,即printer 装设於 
   lp1,列印时却只出现白纸,其馀都没了;请问大家是否 
   有较好设printcap的方法,尚请不吝赐教. 
   我的 printer是HP Laser Printer 4P+ 
 
Dear Sir: 
 
        相信有些Linux的使用者会想要在Linux下印表, 档案的设定就有点 
麻烦, 我提出一些浅见, 以供大家参考. 
                                                        Vixen 
 
System: AMD CPU, kernel 1.2.13, HP LaserJet 4L(1MB), 
        Slackware 2.3.0 内付的 Ghostscript 2.6.2, lpr 
 
参考书: 第三波 Linux管理与操作手册--Shell的使用. Ch9. 
 
以下说明如何在装好Slackware 2.3.0(我不知3.0.0有没有更动)後, 设定方法. 
 
0. 确定在re-compile kernel时有选印表机. 打gs -h看看ghostscript可用否: 
 
Ghostscript version 2.6.2 (4/19/95) 
Copyright (C) 1990-1995 Aladdin Enterprises, Menlo Park, CA. 
Usage: gs [switches] [file1.ps file2.ps ...] 
Available devices: 
    x11 linux bj10e bj200 cdeskjet cdjcolor cdjmono cdj500 
    cdj550 declj250 deskjet dfaxhigh dfaxlow djet500 djet500c epson 
    eps9high epsonc escp2 ibmpro jetp3852 laserjet la50 la75 
    lbp8 ln03 lj250 ljet2p ljet3 ljet4 ljetplus m8510 
    necp6 paintjet pj pjxl pjxl300 r4081 t4693d2 t4693d4 
    t4693d8 tek4696 bit bmpmono bmp16 bmp256 bmp16m pcxmono 
    pcxgray pcx16 pcx256 pbm pbmraw pgm pgmraw ppm 
    ppmraw tiffg3   .....以下省略. 
 
        上面的device中找一下, 看看你的印表机是那一种, 
        这里我以自己的印表机ljet4作例子 
 
    再打dmesg看一下印表机 
 
Console: colour EGA+ 80x25, 1 virtual console (max 63) 
Calibrating delay loop.. ok - 50.08 BogoMips 
Serial driver version 4.11 with no serial options enabled 
tty00 at 0x03f8 (irq = 4) is a 16450 
tty01 at 0x02f8 (irq = 3) is a 16450 
lp1 at 0x0378, using polling driver 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^在这里! 
snd3 <Pro AudioSpectrum 16 rev 255> at 0x388 irq 7 drq 3 
snd2 <SoundBlaster 2.0> at 0x220 irq 5 drq 1  ^^^^^^错误示□!!! 
snd1 <Yamaha OPL-3 FM> at 0x388 irq 0 drq 0 
hda: TEKRAM DC-6X0X IDE cacheing controller, 1039MB w/0KB Cache, CHS=2112/16/63 
hdb: TEKRAM DC-6X0X IDE cacheing controller, 516MB w/0KB Cache, CHS=1049/16/63 
ide0: primary interface on irq 14 
Floppy drive(s): fd0 is 1.2M, fd1 is 1.44M 
FDC 0 is a 8272A....以下省略 
 
        再看ps -ax看lpd启动了没? 
 
  PID TTY STAT  TIME COMMAND 
    1  ?  S     1:08 init 
    6  ?  S     0:01 bdflush (daemon) 
    7  ?  S     0:09 update (bdflush) 
   29  ?  S     0:11 /usr/sbin/crond -l10 
   43  ?  S     0:17 /usr/sbin/syslogd 
   45  ?  S     0:00 /usr/sbin/klogd 
   49  ?  S     0:03 /usr/sbin/inetd 
   51  ?  S     0:00 /usr/sbin/lpd 
                        ^^^^^^^^^^^^^在这里 
   53  ?  S     0:00 /usr/sbin/rpc.mountd 
   57  ?  S     0:00 /usr/sbin/rpc.nfsd 
   61  ?  S     0:00 sendmail: accepting connections 
   69  ?  S     0:00 gpm -t ms 
   82 v01 S     0:00 /sbin/agetty 38400 tty1....以下省略 
 
   提醒一下, 我dmesg的印表机讯息并不正确, 看kernel认得printer即可 
        另外有用音效卡的朋友, 最好别用irq7 (SoundBlast预设值是irq5) 
   若没找到lpd, 先确定kernel有支援, 再 
   修改/etc/rc.d/rc.local or rc.inet2 (?) 也不迟, 有空看一下man lpr 
 
1. 以root签入系统, 设定(or建立)下列档案: 
 
        mkdir /usr/spool/lpd ; mkdir /usr/spool/lp1 
        chown root.lp /usr/spool/lpd ; chown root.lp /usr/spool/lp1 
        chmod 755 /usr/spool/lp* 
 
   看下列档案属性对否? 
 
lrwxrwxrwx   1 root     root           13 Aug 21 00:33 /usr/bin/lpc -> /usr/ 
sbin/lpc 
-rwxr-xr-x   1 root     bin          1628 May  5 18:53 /usr/bin/lpcntl 
-r-s--s--x   1 root     lp          16388 Apr 29 09:39 /usr/bin/lpq 
-r-s--s--x   1 root     lp          16388 Apr 29 09:39 /usr/bin/lpr 
-r-s--s--x   1 root     lp          16388 Apr 29 09:39 /usr/bin/lprm 
-r-xr-s--x   1 root     lp          20484 Apr 29 09:38 /usr/sbin/lpc 
-rwxr--r--   1 root     lp          36868 Apr 29 09:39 /usr/sbin/lpd 
-rwxr-xr-x   1 root     lp           8196 Apr 29 09:39 /usr/sbin/lpf 
-r-x------   1 root     lp           8196 Apr 29 09:39 /usr/sbin/lptest 
 
2. 修改/etc/printcap ,  不知为何我这样设会成功. 
 
# Copyright (c) 1983 Regents of the University of California. 
# All rights reserved. 

# Redistribution and use in source and binary forms are permitted 
# provided that this notice is preserved and that due credit is given 
# to the University of California at Berkeley. The name of the University 
# may not be used to endorse or promote products derived from this 
# software without specific prior written permission. This software 
# is provided ``as is'' without express or implied warranty. 

#       @(#)etc.printcap        5.2 (Berkeley) 5/5/88 


lp:lp=/dev/lp1:sd=/usr/spool/lp1:sh:if=/usr/spool/lp1/lpf:mx#0: 
ps:lp=/dev/lp1:sd=/usr/spool/lp1:sh:if=/usr/spool/lp1/ps_filter:mx#0: 

   在这两行中, 我设两个印表机名称, 以便分别印文字档与postscript档 
 
   当然, 这两个filter档要自己写: 
 
/usr/spool/lp1/lpf的内容: 
#!/bin/sh 
# Filter for HP printers to treat LF as CRLF 
# the "echo -ne" assumes that /bin/sh is really bash 
echo -ne \\033\&k2G 
cat 
echo -ne \\f 
 
/usr/spool/lp1/ps_filter的内容. 
#!/bin/sh 
/usr/bin/gs -q -dSAFER -dNOPAUSE -sDEVICE=ljet4 -sPAPERSIZE=a4 -r300 
-sOutputFile=- - 
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^要改! 
当然请记得它们的属性: 
 
/usr/spool/lp1/: 
-rwxr-xr-x   1 root     lp            145 Sep 27 19:06 lpf 
-rwxr-xr-x   1 root     lp             96 Sep 27 17:34 ps_filter 
 
3. 来测试一下!  聪明如各位一定可看出名称lp是印普通文字, 名称ps是印ps档. 
 
        先找一份大於一页的英文文件档(自己乱打也行),试试: 
 
        cat filname > /dev/lp1 
 
        看看印表机可有"动作", 它不一定会印出正确内容, 看有没有动即可. 
        若已印出正确内容, 可以考虑不用/usr/spool/lp1/lpf   filter. 
 
        再用 lpr -Plp filename 看看它有没有印对? 
 
   ps档, 可用/usr/lib/ghostscript/examples/tiger.ps当□例. 
 
gs -sDEVICE=ljet4 -sOutputFile=/dev/lp1 -sPAPERSIZE=a4 -r300 tiger.ps 
     ^^^^^^^^^^^^^^^一定要改                           ^^^^^^一定要改! 
 
        看看印出老虎没? 
 
        若有, 试试 
 
        lpr -Pps tiger.ps   看成不成. 
 
   ghostscript预视功能:   必须要有VGA 
 
        试试gs -sDEVICE=linux tiger.ps 
 
    若萤幕撑不下1024X768, 看man gs的说明 加上-r???x???x???参数: 
 
       These are the recognized video modes, (and mode numbers): 
 
       320x200x16     (1),  640x200x16    (2),  640x350x16    (3), 
       640x480x16     (4), 320x200x256    (5), 320x240x256    (6), 
       320x400x256    (7), 360x480x256    (8), 640x480x2      (9), 
       640x480x256   (10), 800x600x256   (11), 1024x768x256  (12), 
       320x200x32K   (13), 320x200x64K   (14), 320x200x16M   (15), 
       640x480x32K   (16), 640x480x64K   (17), 640x480x16M   (18), 
       800x600x32K   (19), 800x600x64K   (20), 800x600x16M   (21), 
       1024x768x32K  (22), 1024x768x64K  (23), 1024x768x16M  (24), 
       1280x1024x256 (25), 1280x1024x32K (26), 1280x1024x64K (27), 
       1280x1024x16M (28), 720x350x16    (29), 720x480x16    (30), 
 
       In  addition to -r<resolution>, these flags also work with 
       -sDEVICE=linux: 
 
 

BBS水木清华站∶精华区