apple / cups

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

USB connected Brother, Canon, Konica, and Minolta can't do bi-directional. #3626

Closed michaelrsweet closed 12 years ago

michaelrsweet commented 14 years ago

Version: -feature CUPS.org User: rickr.mn.rr

In 1.4.2 backend/usb-unix.c: / * Disable backchannel data when printing to Brother, Canon, or * Minolta USB printers - apparently these printers will return * the IEEE-1284 device ID over and over and over when they get * a read request... /

use_bc = strcasecmp(hostname, "Brother") &&
         strcasecmp(hostname, "Canon") &&
         strncasecmp(hostname, "Konica", 6) &&
         strncasecmp(hostname, "Minolta", 7);

But a USB connected Konica-Minolta magicolor 1600W (and others, e.g. 1680MF, 1690MF, and Okidata C110) has bidi capability. Only the Oki C110 works right. I patched this on my copy of backend/usb, and no harm is done. The marker levels from /usr/lib/cups/filter/command2foo2lava-pjl are right now.

From: Rick Richardson Date: 08:03 Fri

I think this should be in a file (hostname/resource/blacklist/whitelist)and not compiled in.

From: Michael Sweet Date: 08:08 Fri

Please do. It would make sense to add a PPD keyword for this, such that the driver can specify whether bidi is wanted/needed.

michaelrsweet commented 14 years ago

CUPS.org User: rickr.mn.rr

Can we pin down the PPD variable name and values so I can prepare for this?

michaelrsweet commented 14 years ago

CUPS.org User: mike

Moving to 1.5.

As for the keyword, patience grasshopper, will propose something soon...

michaelrsweet commented 14 years ago

CUPS.org User: rickr.mn.rr

"Can we pin down the PPD variable name and values so I can prepare for this?"

Bump!

michaelrsweet commented 12 years ago

CUPS.org User: till.kamppeter

This is fixed now in the libusb-based USB backend, as I have implemented a bi-di support in it which is based on the way backend/usb-darwin.c (Mac OS X) does (see STR #3477 and STR #2890). This bi-di method has no restrictions to certain manufacturers and therefore it will work with all printers. The fix is in both 1.5.x and 1.6.x SVN repositories, so it will appear in the CUPS 1.5.2 release for the first time and it will also be in Ubuntu Precise (12.04 LTS). Important is that you build the libusb-based version of the backend. You do not need to blacklist the usblp kernel modules as the backend automatically unlinks it from the printer it connects to (and even relinks it after the connection).

So this STR can be closed as fixed, but it must be mentioned in the documentation that bi-di with the usblp-based backend is restricted and the build system should default to the libusb version. Perhaps the usblp version should be removed as it does not give any advantage any more.

michaelrsweet commented 12 years ago

CUPS.org User: mike

Duping to STR #2890 which tracked the addition of bidi support to the libusb-based backend. As Till points out, we now support it for all printers.