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水木清华站∶精华区