LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   USB Printer no longer recognized with cups 1.5.3 (http://www.linuxquestions.org/questions/slackware-14/usb-printer-no-longer-recognized-with-cups-1-5-3-a-4175413462/)

chrisretusn 06-26-2012 08:30 AM

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 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


There 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...

willysr 06-26-2012 09:38 AM

In my case, it's still working
Code:

direct cnijusb:/dev/usb/lp0
network socket
network ipp
network http
network https
network ipps
network lpd
network smb
network beh
direct usb://Canon/iP1800%20series?serial=B0026E


volkerdi 06-26-2012 09:58 AM

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.

willysr 06-26-2012 10:09 AM

does upgrading libusb fixed this problem?
On my system, i tried to migrate to libusbx and no problems with USB-based printers

allend 06-26-2012 11:52 AM

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?

volkerdi 06-26-2012 12:16 PM

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.

dolphin77 06-26-2012 03:49 PM

please don't revert back to 1.4.x - it has landscape printing broken...

volkerdi 06-26-2012 04:23 PM

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.

dolphin77 06-26-2012 11:17 PM

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?

chrisretusn 06-27-2012 07:02 AM

@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)
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.

chrisretusn 06-27-2012 07:20 AM

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


burjast 06-27-2012 07:43 AM

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...

allend 06-27-2012 08:41 AM

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:

ATTR{idVendor}=="04f9", ATTR{idProduct}=="0169", MODE:="0660", GROUP:="lp"
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.

volkerdi 06-27-2012 11:03 AM

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...

burjast 06-27-2012 11:14 AM

Quote:

Originally Posted by allend (Post 4713316)
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

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!


All times are GMT -5. The time now is 02:52 PM.