[SOLVED] USB Printer no longer recognized with cups 1.5.3
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Running Slackware64-current. Printer is a Canon PIXMA MP-258. This printer is attached to this computers USB port.
Before updating to -current it worked (cups 1.4.8). After updating (cups 1.5.3) it quit.
The problem is not the driver, that works, I upgraded to gutenprint (5.2.8) prior to upgrading.
The problem is that the usb device is not recognized by cups, 'lpinfo -v' does not show the printer.
Code:
message log
kernel: [ 8.515058] usb 1-3: new high-speed USB device number 3 using ehci_hcd
kernel: [ 8.633687] usb 1-3: New USB device found, idVendor=04a9, idProduct=173a
kernel: [ 8.635202] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [ 8.636710] usb 1-3: Product: MP250 series
kernel: [ 8.638217] usb 1-3: Manufacturer: Canon
kernel: [ 8.639710] usb 1-3: SerialNumber: 931088
lsusb output
Bus 001 Device 003: ID 04a9:173a Canon, Inc.
cups 1.4.6
~# lpinfo -v
network lpd
network http
direct hp
network socket
network beh
network ipp
network smb
direct scsi
direct hpfax
direct usb://Canon/MP250%20series
cups 1.5.3
~# lpinfo -v
network http
network ipp
network socket
direct hp
network smb
network ipps
network https
network beh
network lpd
direct hpfax
I tried recompiling with the patch applied without success.
I have also tried compiling with --enable-libusb set, though I believe this is now default. At any rate it did nothing.
I also tried blacklisting the kernel module usblp; which of course did nothing.
My work around solution was to go back to cups 1.4.6.
Definitely open to ideas.
Perhaps I will have to wait until cups 1.6?
Well it's past my bed time... off to bed...
I think I *might* know what's going on here. Since even before CUPS 1.4.6, CUPS has been trying to migrate all USB printer support from the kernel usblp module to going through libusb instead. Until a patch was applied to CUPS 1.4.6, that also had similar problems with printers not being detected, and since your output shows a "direct usb" connection I can tell that your printer had been using a connection through the usblp kernel module.
The code in CUPS 1.5.x has changed to the point where it would be difficult to apply the patch restoring the old usblp backend, and as there's no upstream support for it really it should be left behind at this point (if possible). But what I'm thinking is that you've still got the usblp module loaded, and it is interfering with the libusb CUPS backend.
Here's what I'd like for you to try. First, take a look with lsmod and see if usblp is loaded. If so, remove it with 'modprobe -r usblp', and add a line for it in /etc/modprobe.d/blacklist.conf:
blacklist usblp
Then check and see if your printer is visible again. You may need to power cycle the printer and/or restart CUPS.
Let me know if this helps... if it does, probably we'll need to include this blacklist rule.
I have also had a problem with my USB printer since the upgrade. If I try to print the test page from the CUPS web interfacejob it stalls with a message "Waiting for printer to become available."
In the CUPS error log I have messages:
Quote:
E [27/Jun/2012:01:37:23 +1000] Filter "hpgltops" not found.
E [27/Jun/2012:01:37:23 +1000] Filter "pstoraster" not found.
Copying the filters hpgltops and gstoraster from my 13.37 system into /usr/lib/cups/filter and creating symlinks pstoraster -> gstoraster ( as discussed here http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638933 ) clears the error log messages but does not stop the printer stalling.
I have no problem printing the test page to a virtual PDF printer using cups-pdf.
Like the OP, I tried blacklisting the usblp kernel module and rebooting, with no effect.
In my case I am doing this in Slackware64, with the cups-compat32-1.5.3-x86_64-1.txz and glibc-solibs-2.15_multilib-x86_64-4alien.txz packages installed as this printer uses a 32bit driver.
All was working fine before the upgrade with the cups-compat32-1.4.6-x86_64-1.txz and glibc-solibs-2.15_multilib-x86_64-2alien.txz packages installed.
Reverting to the old cups-compat32-1.4.6-x86_64-1.txz package makes no difference.
One thing I did notice with the virtual pdf printer is that the owner of the file was "ANONYMOUS" whereas previously it was my user name. Could there be a permissions issue?
Ah... I see that the OP did blacklist usblp! Sorry, I should have read more closely. Unfortunately, that means that I don't currently have a good idea about what has caused CUPS to break (again), but I'm suspecting the removal of the usblp backend, since this looks all-too-much like the issues people were having with 1.4.x before that backend was restored.
Hopefully we won't have to revert to the older CUPS, but if that was working well (and this version isn't) it could be the best choice.
Tell us how to fix the issues with CUPS 1.5.x and then we won't, dolphin77. Otherwise, if we're between a rock and a hard place, we'll choose which looks the least painful.
The output of /usr/lib64/cups/backend/usb is included in the code block.
At the moment I am using the cups 1.5.3, with usblp blacklisted. So you don't have to scroll up, my printer is a Canon PIXMA MP-258, it is plugged in a usb port on this machine. This printer works fine with cups 1.4.6 and gutenprint 5.2.8. I am using Slackware64-current.
On this boot I tried something I have not tried yet. Boot with printer turned off.
I added a bold attribute to two line below that I had missed before. The first look perhaps that a udev rule is needed? The second, I have no clue, but it appear every time the printer is turned on.
Code:
# output of /usr/lib64/cups/backend/usb (printer is off)
DEBUG: list_devices
DEBUG: libusb_get_device_list=12
### Printer turned on
# output of /usr/lib64/cups/backend/usb
DEBUG: list_devices
DEBUG: libusb_get_device_list=12
direct usb://Canon/MP250%20series?serial=931088&interface=1 "Canon MP250 series" "Canon MP250 series" "MFG:Canon;CMD:BJL,BJRaster3,BSCCe,IVEC,IVECPLI;SOJ:TXT01;MDL:MP250 series;CLS:PRINTER;DES:Canon MP250 series;VER:1.020;STA:10;FSI:00;HRI:ASI;MSI:DAT,E3;PDR:6;" ""
# /var/log/messages
Jun 27 17:56:47 racermach kernel: [ 3041.154066] usb 3-3: new high-speed USB device number 6 using ehci_hcd
Jun 27 17:56:47 racermach kernel: [ 3041.270798] usb 3-3: New USB device found, idVendor=04a9, idProduct=173a
Jun 27 17:56:47 racermach kernel: [ 3041.270801] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jun 27 17:56:47 racermach kernel: [ 3041.270803] usb 3-3: Product: MP250 series
Jun 27 17:56:47 racermach kernel: [ 3041.270805] usb 3-3: Manufacturer: Canon
Jun 27 17:56:47 racermach kernel: [ 3041.270806] usb 3-3: SerialNumber: 931088
# /var/log/syslog
Jun 27 17:56:49 racermach udev-configure-printer: no corresponding CUPS device found
# dmesg
[ 3041.154066] usb 3-3: new high-speed USB device number 6 using ehci_hcd
[ 3041.270798] usb 3-3: New USB device found, idVendor=04a9, idProduct=173a
[ 3041.270801] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3041.270803] usb 3-3: Product: MP250 series
[ 3041.270805] usb 3-3: Manufacturer: Canon
[ 3041.270806] usb 3-3: SerialNumber: 931088
[ 3041.576491] Did not find alt setting 1 for intf 0, config 1
### Printer turned off
# /var/log/messages
Jun 27 18:03:16 racermach kernel: [ 3430.345756] usb 3-3: USB disconnect, device number 6
# dmesg
[ 3430.345756] usb 3-3: USB disconnect, device number 6
Well I have to go back to cups 1.4.6 right now, my daughter needs to print and so do I.
Hope the above information helps. If needed I can go back to 1.5.3 not a problem.
After logging out of KDE (runlevel 3) I decided to try removing the blacklist for usblp and load it. Here are is the log data.
Code:
# dmesg
[ 3960.721873] usblp0: USB Bidirectional printer dev 7 if 1 alt 0 proto 2 vid 0x04A9 pid 0x173A
[ 3960.721886] usbcore: registered new interface driver usblp
# /var/log/messages
Jun 27 20:10:28 racermach kernel: [ 3960.721873] usblp0: USB Bidirectional printer dev 7 if 1 alt 0 proto 2 vid 0x04A9 pid 0x173A
Jun 27 20:10:28 racermach kernel: [ 3960.721886] usbcore: registered new interface driver usblp
# /var/log/syslog
Jun 27 20:10:30 racermach udev-configure-printer: no corresponding CUPS device found
After rebooting, I now have printing and scanning working with my Brother DCP-110C.
To get the idVendor and idProduct values look at the output of 'lsusb'
It works whether usblp is blacklisted or not.
Thanks a lot, allend! You seem to have found the missing glue.
I added the appropriate udev line, didn't even blacklist usblp (which is nice, because some apps might like to use that interface), and when I rebooted all my queued documents that had been "waiting for printer to become available" began popping out of my Canon printer. Well, off to find a supported printer ID list or determine if there's a better way to do that than to enumerate them in a udev rule.
Why didn't I think of udev right away? I must be getting old...
After rebooting, I now have printing and scanning working with my Brother DCP-110C.
To get the idVendor and idProduct values look at the output of 'lsusb'
It works whether usblp is blacklisted or not.
I've got it working by this process, just deleted and readded printer after reboot. cheers!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.