After leaving my printer unused for some time I suddenly found myself unable to print to my Canon ip4300 printer (which is connected using USB and should be run by CUPS). Dmesg showed the following after powering up the printer:
usb 1-3.1: new high speed USB device using ehci_hcd and address 5 usb 1-3.1: configuration #1 chosen from 1 choice usblp0: USB Bidirectional printer dev 5 if 0 alt 0 proto 2 vid 0x04A9 pid 0x10B6 usb 1-3.1: usbfs: interface 0 claimed by usblp while 'usb' sets config #1 usb 1-3.1: usbfs: interface 0 claimed by usblp while 'usb' sets config #1 usb 1-3.1: usbfs: interface 0 claimed by usblp while 'usb' sets config #1 usb 1-3.1: usbfs: interface 0 claimed by usblp while 'usb' sets config #1
The problem here is the USB Printer subsystem of the kernel called ‘usblp’. Some people might have it compiled into the kernel (like me – seemed like a good idea at the time) and others might have it as a module. If you have it as a module, unload it and blacklist it so it won’t be loaded automatically. Power cycle on the printer and it should suddenly become available to CUPS.
If you have it compiled in – like I had – recompile your kernel after disabling USB Printing. The device manager will pick it up if you connect it again so the printing subsystem can use it.
On a side note: it would have been nice to have a warning in the kernel description that using printing subsystems will not work properly if you use ‘usblp’…