Comment # 113 on bug 920937 from
From an USB expert I got the information that
the printer's firmware is the root cause of the issue.

When the libusb-based CUPS backend 'usb' is used
something in the printer's firmware does not behave well
which leads to failures.

In contrast up to CUPS 1.5.4 where the CUPS backend 'usb'
uses the usblp kernel module the printer's firmware is used
in a bit different way where it works.

Because in very most cases (i.e. for very most printer models)
the CUPS 'usb' backend "just works" (otherwise there would be more
bug reports here at SUSE and also at least one at CUPS upstream),
I assume that the CUPS 'usb' backend is basically o.k.
but in some special cases (i.e. for some printer models)
it needs to do some model specific special stuff.

Fortunately the libusb-based CUPS 'usb' backend already
supports printer model dependant special case handling
via so called "USB quirks", see the comments in
/usr/share/cups/usb/org.cups.usb-quirks (excerpt):
-------------------------------------------------------------------------
# USB backend 'quirks' file.
#
# This file lists known issues with various vendors or printers.  Each
# line contains either a comment (starting with #) or the USB vendor ID,
# product ID (omit for all vendor products), and a list of known issues:
#
#   blacklist     The printer is not functional with the USB backend.
#   no-reattach   Do no re-attach usblp kernel module after printing.
#   soft-reset    Do a soft reset after printing for cleanup.
#   unidir        Only supported unidirectional I/O
#   usb-init      Needs vendor USB initialization string.
#   vendor-class  Uses vendor-specific class or subclass.
#   whitelist     The printer is functional with the USB backend.

...

# Prolific Technology, Inc. PL2305 Parallel Port (USB -> Parallel adapter),
# https://bugs.launchpad.net/bugs/987485
0x067b 0x2305 no-reattach soft-reset unidir

...

# All Samsung devices, https://bugs.launchpad.net/bugs/1032456
0x04e8 soft-reset

...
-------------------------------------------------------------------------

When a particular printer model does not work with the defaults
of the libusb-based CUPS 'usb' backend, it might help to specify
model specific appropriate "USB quirks".

Usually one should have selfmade "USB quirks" in a separated file
like /usr/share/cups/usb/selfmade.usb-quirks (the 'usb' backend
reads all files in /usr/share/cups/usb/).


You are receiving this mail because: