USB timeouts with Canon iP4300

Bug #1032385 reported by Nils Durner on 2012-08-02
This bug affects 4 people
Affects Status Importance Assigned to Milestone
cups (Ubuntu)

Bug Description

Most of the time when I try to print to my Canon Pixma 4300, only a fraction of the page actually gets printed. Sometimes the desktop notification "connecting-to-device" is shown. The printer just hangs then.

Noteworthy log entries with "$ cupsctl LogLevel=debug":
D [02/Aug/2012:22:28:13 +0200] [Job 47] Got USB transaction timeout during write.
D [02/Aug/2012:22:28:13 +0200] [Job 47] Wrote 7680 bytes of print data...
D [02/Aug/2012:22:28:13 +0200] [Job 47] Got USB transaction timeout during read.

The same printer and cable used to work with Oneiric and continue to work with Windows Vista.
Things that did not help:
 - blacklisting usblp
 - switching the printer language from PDF to PS
 - changing paper format from A4 to Letter
 - lowering resolution
 - removing and re-adding printer
 - TurboPrint

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: cups 1.5.3-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-27.43-generic 3.2.21
Uname: Linux 3.2.0-27-generic x86_64
NonfreeKernelModules: fglrx
ApportVersion: 2.0.1-0ubuntu11
Architecture: amd64
Date: Thu Aug 2 23:52:06 2012
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
 device for Fax: ffgtk-cups:/
 device for iP4300: usb://Canon/iP4300?serial=9547D7
 device for iP4300-TurboPrint: usb://Canon/iP4300?serial=9547D7
MachineType: To Be Filled By O.E.M. To Be Filled By O.E.M.
Papersize: a4
 iP4300-TurboPrint: Canon_PIXMA_iP4300 TurboPrint
 iP4300: Canon PIXMA iP4300 - CUPS+Gutenprint v5.2.8-pre1
 Fax: ffgtk fax printer, 1.0
 PATH=(custom, no user)
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-27-generic root=UUID=3c1886fb-25bf-419a-816a-bd0e4f6d6969 ro quiet splash vt.handoff=7
SourcePackage: cups
UpgradeStatus: Upgraded to precise on 2012-04-29 (95 days ago) 10/01/2010
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: P2.20 X58 Extreme3
dmi.board.vendor: ASRock
dmi.chassis.asset.tag: To Be Filled By O.E.M.
dmi.chassis.type: 3
dmi.chassis.vendor: To Be Filled By O.E.M.
dmi.chassis.version: To Be Filled By O.E.M.
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrP2.20:bd10/01/2010:svnToBeFilledByO.E.M.:pnToBeFilledByO.E.M.:pvrToBeFilledByO.E.M.:rvnASRock:rnX58Extreme3:rvr:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.: To Be Filled By O.E.M.
dmi.product.version: To Be Filled By O.E.M.
dmi.sys.vendor: To Be Filled By O.E.M.
mtime.conffile..etc.cups.cupsd.conf: 2012-08-02T23:17:29.083612

Nils Durner (ndurner) wrote :
Nils Durner (ndurner) wrote :

- plugging USB cable into a different USB port did not help
- CUPS status on http://http://localhost:631/: "Rendering completed"
- even if the print job is completed successfully, some lines on the page are missing (between 4 and 10 lines on an A4 page).

Till Kamppeter (till-kamppeter) wrote :

Can you try the fix proposed in comment #7 of bug 1032456 and tellhere whether it also helps for your case?

Changed in cups (Ubuntu):
status: New → Incomplete
Nils Durner (ndurner) wrote :

1.5.3-0ubuntu3~ppa1 does not fix this

tigerente (f-wenzel) wrote :

Affects me as well, same errors as described above, also after doing a dist-upgrade today.

The update seemed to have a newer cups-version in the main feed than in Till's ppa.

Adding "blacklist usblp" in /etc/modprobe.d/blacklist.conf solves it (as a workaround, inspired by 997040).

Till Kamppeter (till-kamppeter) wrote :

Can you all remove the blacklisting of usblp and then try to force uni-directional access to your printer via

lpadmin -p <printer> -o usb-unidir-default=true

Does printing now work correctly? If not, remove this option via

lpadmin -p <printer> -R usb-unidir-default

and try blocking the re-attaching of the kernel module after printing via

lpadmin -p <printer> -o usb-no-reattach-default=true

Try also with both options.

Turn off and turn on your printer before each test.

tigerente (f-wenzel) wrote :

Thanks. First of all, the "blacklist usblp" only seemed to have an effect on some type of printings. Photos with high quality settings still failed when printing over network to my ubuntu print server (32bit by the way). Data size problem?

Anyhow, I removed the blacklist usblp (even manually loaded it then successfully) and until now the usb-unidir-default=true seemed to do the trick (have not tried no-reattach-default=true since it was suggested as a backup workaround).

I will post my new findings here again if things do not work and would volunteer for testing ppa updates that do not require the unidir-setting.

Till Kamppeter (till-kamppeter) wrote :

tigerente, which printer model do you have?

tigerente (f-wenzel) wrote :

Canon pixma ip4300.

Thank you very much.

So everyone suffering this bug has the Canon Pixma iP4300, so I will add a quirk rule to the USB CUPS backend to do only uni-directional communication with this printer.

Everyone, to worjk arounbd this problem please run the following command in a terminal window:

lpadmin -p <printer> -o usb-unidir-default=true

Changed in cups (Ubuntu):
status: Incomplete → Triaged
importance: Undecided → Medium

I have created a patch now and submitted it upstream on

Changed in cups (Ubuntu):
status: Triaged → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cups - 1.6.1-0ubuntu2

cups (1.6.1-0ubuntu2) quantal; urgency=low

  * debian/patches/usb-backend-reset-after-job-only-for-specific-devices.patch:
    Force-uni-directional access for Canon Pixma iP4200 (CUPS STR #4155) and
    iP4300 (LP: #1032385).
 -- Till Kamppeter <email address hidden> Fri, 10 Aug 2012 19:43:30 +0200

Changed in cups (Ubuntu):
status: In Progress → Fix Released
tigerente (f-wenzel) wrote :

Thanks for the fix. If you have time for answering (I am curious):

1. Why has this become a problem in Ubuntu 12.04 since it worked before?

2. Even though I fix it myself due to time constraints: Would there be any advantage in making bi-directional communication working? E.g. support for ink level control or color print head calibration?

3. What scope does your fix apply? Also vanilla cups (which is also e.g. used on MacOS) or specifically on Ubuntu-specific features?

Thanks again for the quick solution!

Simon Clift (ssclift-gmail) wrote :

I can confirm the bug and the fix with a different model of printer:
   * Canon iP4500
   * TurboPrint 2.30-1
   * KUbuntu 13.10, Kernel 3.11.0-14-generic #21-Ubuntu x86_64

Before fixing the uni-directional access flag I would be able to print a single job after rebooting or power cycling the printer. After the single job I would get a message "Printer status failed - no access" in the TurboPrint Monitor application. With the cups LogLevel=debug I was unable to spot anything particularly wrong. At LogLevel=info I was not seeing any useful messages.

Applying the fix (Comment #10 above) I am able to print multiple jobs (several test pages) with no trouble.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers