apple / cups

Apple CUPS Sources
https://www.cups.org
Apache License 2.0
1.91k stars 464 forks source link

USB Epson receipt printer M129C not recognized #3971

Closed michaelrsweet closed 12 years ago

michaelrsweet commented 12 years ago

Version: 1.5.0 CUPS.org User: nleonard

The USB receipt printer Epson/Seiko TM-T88IV (M129C) is not recognized by the cups usb backend. This printer returns to Vendor-Specific values for bInterfaceClass and bInterfaceSubClass USB attributes which prevents it to be properly detected as a 'regular' printer. The output of 'lsusb -v' for such a printer is attached It's correctly detected by usblp, since several years, thanks to this patch: http://www.spinics.net/lists/linux-usb-devel/msg03603.html.

I've made and tested successfully the same kind of patch for backend/usb-libusb.c.

A related drawback is that this device doesn't have any IEEE-1284 device ID, so the output of backend/usb is something like direct usb://Unknown/(null)?serial=J4LG008211 "/(null)?serial=J4LG008211" "/(null)?serial=J4LG008211" "" "" It could also be fixed using hard-wire values, but I haven't done such additions in my patch. This device ID problem doesn't prevent the printer to work perfectly.

Let me know if you want me to do additional tests - I really need this printer to be recognized properly by cups.

Thanks

michaelrsweet commented 12 years ago

CUPS.org User: mike

Sorry, but we don't want to try supporting non-standard USB printers with the USB backend - we have enough trouble supporting the ones that "follow" the standard printer class.

You can still use "file:///dev/usb/lp0" to refer to the kernel USB printer device, assuming that the kernel folks continue supporting their hack.

michaelrsweet commented 12 years ago

CUPS.org User: jsmeix.suse

FYI:

In any case you could use a selfmade backend for such very special cases, have a look at

http://en.opensuse.org/SDB:Using_Your_Own_Backends_to_Print_with_CUPS

michaelrsweet commented 12 years ago

CUPS.org User: nleonard

Well, I understand the policy of just handling "regular printers". It's just that its some kind of regression caused by the transition from usblp to libusb.

Anyway, thanks for the link on how to make custom backends - it's a temporary, but "not-so-ugly" way to solve my problem.

michaelrsweet commented 12 years ago

"cups-usb-backend-epson.patch":

--- orig/cups-1.5.0/backend/usb-libusb.c 2011-11-01 02:28:20.000000000 +0100 +++ cups-1.5.0/backend/usb-libusb.c 2011-11-02 00:54:05.000000000 +0100 @@ -339,9 +339,11 @@ * 1284.4 (packet mode) protocol as well. */

@@ -402,7 +403,6 @@ bEndpointAddress; return (&printer); }