![]() |
USB Printer no longer recognized with cups 1.5.3
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 logThere is a what I believe to be a related bug located here: http://www.cups.org/str.php?L4128+Qversion:1.6 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.:banghead: Perhaps I will have to wait until cups 1.6? Well it's past my bed time... off to bed... |
In my case, it's still working
Code:
direct cnijusb:/dev/usb/lp0 |
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. |
does upgrading libusb fixed this problem?
On my system, i tried to migrate to libusbx and no problems with USB-based printers |
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:
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. |
please don't revert back to 1.4.x - it has landscape printing broken...
|
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.
|
OK will try to help, but do not have USB printer here (at least till weekend).
@OP: what output gives: /usr/lib/cups/backend/usb PS is it Samsung? |
@dolphin77, PS, no it is a Canon. ;)
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)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 |
I have the same problem, and printer is Samsung (Bus 002 Device 005: ID 04e8:3426 Samsung Electronics Co., Ltd SCX-4500 Laser Printer)
disabling usblp did not help, and I didn't revert sw yet... |
Just found a solution that worked for me after seeing this. https://wiki.archlinux.org/index.php...de_permissions
I created a custom udev rule in a file /etc/udev/rules.d/10-usbprinter.rules containing Quote:
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... |
Quote:
|
| All times are GMT -5. The time now is 09:40 AM. |