Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Apr 2000 15:30:58 -0700 (PDT)
From:      "Brian D. Moffet" <brianm@moffetimages.com>
To:        hackers@freebsd.org
Subject:   Okay, I'm baffled. (printer init problems.)
Message-ID:  <200004222230.PAA00767@moffetimages.com>

next in thread | raw e-mail | index | archive | help
I send this to the hackers list because it seems to be well beyond
the questions list..  If I was wrong, I apologize.

My system, or parts of the dmesg output as preface:

FreeBSD 3.3-RELEASE #41: Sat Apr 22 15:05:32 PDT 2000
CPU: Celeron (400.91-MHz 686-class CPU)
ppc0 at 0x378 irq 7 flags 0x40 on isa
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/16 bytes threshold
ppb0: IEEE1284 device found /NIBBLE/ECP
Probing for PnP devices on ppbus0:
ppbus0: <HEWLETT-PACKARD DESKJET 690C> MLC,PCL,PML
lpt0: <generic printer> on ppbus 0
lpt0: Interrupt-driven port
ppi0: <generic parallel i/o> on ppbus 0

I have a HP-694C on my parallel port, and when printing large
printjobs from a windows box to Samba, the last part of the printout
is cut off. (of a 4 page printout, 3.3 pages will be printed and the
printer will sound like it initialized right at 3.3 pages.)

I have mx=0 in the printcap file.

I put in a filter which sleeps after the print job is finished, and that
delays the cut off point, so it is not a file size problem.  I would rather
not put in a sleep of 120 seconds after each print job to allow the printer
buffer to clear.

Now many years ago, (like 10) I ran across a similar problem in SCO Unix,
which was caused by the parallel driver sending a printer INIT to the
controller port.  We fixed that problem by on initializing the printer on 
boot up, not on open or close.  The problem was that the init would cause
the printer to clear the internal buffer, and thus it would lose the
data that it had accepted, but not printed.

I noticed in the lpt.c driver in ppbus that a LPT_NINIT is sent to the 
control port in lptattach, lptopen, and lptclose.  So, I modified it so
that it was only done in the lptattach routine.  Unfortunately, this 
did not solve the problem.  I did verify that I was actually using that
driver by putting in a kernel printf in lptclose().

Any suggestions?  Am I missing something in the way that
the ppbus driver works, or the parallel port/driver?  Has anyone else
already solved this problem?

I looked in the various FAQs, archives, etc...  But I only found reference
to the mx variable in printcap.

Thanks very much
Brian Moffet


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




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