kernel parallel-post printing problem - spurious characters printed randomly interspersed in printout - since kernel (and Sarge) update
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)
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
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
Do I have something configured wrong?
Is my hardware (Asus A7M266-D motherboard (AMD 768 chip)) buggy near
the parallel port?