My first bug report was erraneous because I figured out now that this
bug is hardware-dependent, a bit hard to track, and will occur on
Windows too.

The USB->ParallelPrinter adapter "LogiLink", sold by Reichelt Elektronik
(www.reichelt.de), chip marking: "WCH CH340S" (VID==1A86, PID==7584) has
a serious built-in silicon (firmware) bug:

If write() is followed by ioctl(…PPRSTATUS…), the write() data will not
put out at all!

It seems that ioctl() must be in the /next/ USB frame, otherwise, data
of a non-full USB packet are lost.

This is important for printing! Because status-checking may eat up some
printing data. The driver behind /dev/usb/lpX should add a small (1 ms)
delay between sending data and receiving status, if VID&PID pair as
above were found. Or reject loading itself, emit a serious warning, etc.


In my case, because I use this adapter as an LPT port replacement with this 
hardware:
http://www-user.tu-chemnitz.de/~heha/viewzip.cgi/hs_freeware/DLO_UsbPrn.zip/DLO_UsbPrn.png?bin=PNG
I can simply send full USB packets (64 bytes) instead.
I couldn't measure any performance impact, for sending 64 bytes instead of 1.
Of-course, this cannot be done for printing, but it's fully okay for the '574 
latch in the schematic.

The Prolific PL-2305H (VID==06A9, PID==1991) doesn't have this bug.

henni

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1156210

Title:
  usb->parallel_printer status failure

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1156210/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to