[cups.bugs] [MOD] STR #3964: On some printers the libusb-based "usb" CUPS backend needs to send a reset signal to the printer

Till Kamppeter till.kamppeter at gmail.com
Wed Oct 19 10:44:43 PDT 2011


DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

See

https://bugs.launchpad.net/ubuntu/+source/cups/+bug/872483

The problem happens on Ubuntu Oneiric which uses CUPS 1.5.0. This is the
first Ubuntu release which deprecates (blacklists) the usblp kernel module
and uses a purely libusb-based "usb" CUPS backend.

The bug happens only for some printer models, including the Samsung
ML-2250, ML-2570, and the OKI B410d. The Dymo label writer 450 is not
affected. If the problem occurs it occurs with all drivers, PostScript,
PCL, HPLIP, Ghostscript, ..., so it is not driver-specific.

The problem is that after the printer has printed a job its USB interface
is not in the same state as before printing the job. Sending a second job,
even if it is absolutely identical with the first job, leads to garbage
being printed. Users report to work around this they have to turn off and
turn on the printer or unplug and replug the USB cable before each print
job so that the jobs get printed correctly.

A workaround was found by sending a USB reset (USBDEVFS_RESET IOCTL) to
the /dev/bus/usb/XXX/YYY file representing the printer using a little C
program (attached, compile with "gcc -o usbreset usbreset.c", then run
"./usbreset /dev/bus/usb/XXX/YYY" as root or with "sudo") between jobs.

So a possible fix would be to let the "usb" CUPS backend send this IOCTL
before (or after?) each job. The C code does not need any special library
(not even libusb), so the code can be added without introducing new
dependencies.

Link: http://www.cups.org/str.php?L3964
Version: 1.5.0
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: usbreset.c
URL: <https://lists.cups.org/pipermail/cups/attachments/20111019/f61c3006/attachment.c>


More information about the cups mailing list