[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

kernel parallel-post printing problem - spurious characters printed randomly interspersed in printout - since kernel (and Sarge) update

I wrote:
Since I upgraded to Debian Sarge and kernel 2.6.8 (2.6.8-2-k7-smp),
I've been getting lots of errors in my printouts. The error pattern is that at multiple, seemingly random positions in the middle of the printout, there is a spurious "d" character...
Because plain-text documents (seem to) print fi[n]e, it doesn't seem to be a kernel problem with the parallel port.

Actually, it DOES seem to be a problem in the kernel (or downstream)
after all.

If data is written slowly enough to device file /dev/lp0, the printout
is fine; otherwise, the printout is corrupted at random locations,
seemingly by extra or missing bytes, as I described before
[ http://lists.debian.org/debian-user/2006/10/msg00133.html ].

That strongly suggests a problem with handshaking or interrupt handling
in the kernel (and not with the parallel port and printer since
printing worked fine with Woody and kernel 2.4 and still works fine
under Windows).

I configured lpd to write to a file instead of /dev/lp0.  I printed a
Postscript file, and after having it rastered for my printer, lpd wrote
the print data to the specified file.

Then I copied the file's contents to /dev/lp0 in a way that slowed
things down, like this (subject to typos and any "rememberos"):

   cat x.dat | ( while dd bs=1 count=1 ; do : ; done ) | cat >/dev/lp0

When the block size was 1 or maybe also when it was 2, the printout
would be fine.

When the block size was 3 or more, I'd almost always get errors in
random locations.  (Repeated attempts with the same block size
would get errors in different positions.)

Does anyone know what's going on?

Does the kernel have a bug in its parallel-port handshaking or
interrupted-handling logic?

Do I have something configured wrong?

Is my hardware (Asus A7M266-D motherboard (AMD 768 chip)) buggy near
the parallel port?


Reply to: