Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Apr 1999 22:59:50 -0800
From:      "Morgan Davis" <mdavis@cts.com>
To:        <freebsd-stable@freebsd.org>
Subject:   Printing snafu in 3.1 may lead to my death
Message-ID:  <NBBBLJLIKEECAFCFNAKFEEOGCCAA.mdavis@cts.com>

next in thread | raw e-mail | index | archive | help
Recently, I reported that with a completely new installation of 3.1-RELEASE
(and a subsequent -stable cvsup and "make world" as of yesterday), printing
no longer works properly.  Prior to that, I'd been successfully using
FreeBSD 2.2.8 as a print server to an HP DeskJet 870cxi connected to the
parallel port.  I could print locally via Netscape through Ghostscript, as
well as from remote Windows machines via Samba.  I'm not seeing reports of
this from anyone else, so I must be doing something wrong with 3.1.  If I
don't get this resolved soon, my wife and kids, who need the printer more
than I do, are going to kill me.  You don't want that on your conscience.
:-)

First, here's the Trouble.  Start a print job in any of three ways:
X+Netscape+Ghostscript locally, remote Windows machine via Samba, or Windows
2000 via LPR-mode TCP/IP printing.  Either way, a job lands in the spool,
the printer kicks in and starts chugging.  It prints about an inch or two of
the document, then goes nuts.  The start of the image (e.g., a web page with
graphics or a Windows "test page") is clearly recognizable, but it suddenly
falls out of graphics mode, and garbage characters begin (like a flow
control or buffer overrun problem).  The finale is page after blank page
ejected, until I intervene and kill the lpd process, turn off the printer,
etc.

I verified that the Windows machines are queuing and printing properly by
directly connecting one of them to the printer using the same parallel
cable.  I was able to print plain text from within the Unix environment, and
I got several pages of "od" output with only minor artifacts (like either a
character duplicated or a character missing -- maybe one error in three or
four pages).  So it's not the source machines, cable or printer.  It's
something local to the FreeBSD machine itself.  Again, this all used to work
until the OS changed from 2.2.8 to 3.1-stable -- a new installation (not an
upgrade).

System ingredients:

- HP DeskJet 870cxi
- FreeBSD 3.1-stable on a Pentium 120, 96MB RAM
- Standard parallel port
  (EPP and ECP modes in BIOS also tested with no success)
- Kernel based on GENERIC, with all the parallel stuff:

# Parallel port
device          ppc0    at isa? port? net irq 7
controller      ppbus0
device          nlpt0   at ppbus?
device          plip0   at ppbus?
device          ppi0    at ppbus?

Here's what the probe sees:

ppc0 at 0x378 irq 7 on isa
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppb0: IEEE1284 device found /NIBBLE/PS2/ECP
Probing for PnP devices on ppbus0:
ppbus0: <HEWLETT-PACKARD DESKJET 870C> PCL,MLC,PML
nlpt0: <generic printer> on ppbus 0
nlpt0: Interrupt-driven port
ppi0: <generic parallel i/o> on ppbus 0
plip0: <PLIP network interface> on ppbus 0

I read the entire printing section in the handbook, and as far as I can
tell, I'm doing all the right things in printcap (the same configuration
worked with 2.2.8).  Here's the one used by the Windows machines (\033E is
Escape-E, which resets the printer):

djraw|hpdjraw:HP DeskJet 870Cxi Raw Output:\
        :lp=/dev/lpt0:mx#0:\
        :sd=/var/spool/lpd/hpdjraw:\
        :lf=/var/log/lpd-errs:\
        :ff=\033E:fo:sh:tr=\033E:

I read the 3.1 release notes about ppbus and ppc replacing the "now
deprecated lpt", and as instructed, I read the man pages aloud as an
incantation.  I looked through MAKEDEV to find a device target for nlpt, but
there is none.  I hunted around through kernel sources looking for major and
minor device numbers for nlpt so I could do my own mknod, etc.  I tried
using ppi0 instead of lpt0 (not allowed).  So it's all been a fruitless
exercise.  As you can see, the level of desparation has sent me back here
where the Geniuses hang out.

Certainly someone has an idea of what to try next.  I'm willing to try
anything, including putting the old FreeBSD 2.2.8 drive back into the case
to verify that it really did work for two+ years on this same hardware.  I'm
not sure what it would prove, one way or the other, with respect to 3.1, so
I'm hesitant to go through that trouble just yet.

--Morgan



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?NBBBLJLIKEECAFCFNAKFEEOGCCAA.mdavis>