Bug 556819

Summary: HP LaserJet 1018 USB printer cannot print because its USB device file is owner root:root
Product: [openSUSE] openSUSE 11.2 Reporter: Forgotten User --EoyBps8f <forgotten_--EoyBps8f>
Component: BasesystemAssignee: Johannes Meixner <jsmeix>
Status: RESOLVED WORKSFORME QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P4 - Low CC: jeffm
Version: Final   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: hp-check.log
printer name with "-" instead of "_", which allegedly is invalid.

Description Forgotten User --EoyBps8f 2009-11-19 08:31:42 UTC
User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.1.4) Gecko/20091016 SUSE/3.5.4-1.1.2 Firefox/3.5.4

If I attach my printer and try to print (from Openoffice) on it, it does not work. The job is shown in the queue as "stopped", but nothing happens.

Running hp-check shows that the owner of /dev/bus/usb/001/003 is root and the group is root as well.

Even worse, printing a PDF from acroread results in hp-cups using 100% of one CPU forever, even after restarting cup, i.e. rccups restart. the job is shown as "printing" in the queue.

If I set the printer manually to owner root and group lp, restart cups, it prints the "printing" job whereas the "stopped" jobs remain in the queue forever until they are canceled.

Changing the group has to be repeated all over again and is not reasonable to any normal user who does not know about chown.

Reproducible: Always
Comment 1 Forgotten User --EoyBps8f 2009-11-19 08:50:37 UTC
what info?
Comment 2 Johannes Meixner 2009-11-19 09:47:10 UTC
The very basic info like what exactly is "my printer"?

How should I understand what goes on on your system
without such very basic info?

Have in mind that on my system it works of course.
Do not assume I am such stupid to submit packages
to openSUSE where I already know that they cannot work.
Always assume that your particular case is a special case
and not already known by me so that you must carefully
provide me sufficient information so that I can easily get
a clear understanding what happened on your system.
Comment 3 Forgotten User --EoyBps8f 2009-11-19 15:20:04 UTC
Created attachment 328456 [details]
hp-check.log
Comment 4 Johannes Meixner 2009-11-19 15:50:45 UTC
A HP LaserJet 1018 requires a very special setup
because it needs a proprietary module from HP
which must be downloaded and installed to make
this thingy work, see
http://hplipopensource.com/hplip-web/models/laserjet/hp_laserjet_1018.html
----------------------------------------------------------------
This printer REQUIRES a downloadable driver plug-in.
Use hp-setup to install the printer, and to download
and install the plug-in. In general, required driver
plugins are required for printing support.
Driver plug-ins are released under a proprietary (non-open)
license and are not part of the HPLIP tarball release.
----------------------------------------------------------------

Usual printer setup tools cannot set up this
piece of hardware.

The setup in this case works only with HP's tool
hp-setup
which should be run as root. It does the download and
installation of the proprietary module from HP. 

According to attachment #328456 [details]
-----------------------------------------------------------
hp-check[3800]: info: :Required plug-in status: Installed
hp-check[3800]: info: :Communication status: Good
-----------------------------------------------------------
it seems you did the setup already this way.

If it does not work for normal users after a
setup with hp-setup it looks like an issue
in HP's tool with this special piece of hardware.

We cannot fix it because this special setup
is out of our control and theerfore I can only
close this bug report as "wontfix" which
means "cantfix" in this case.

You may go to
http://hplipopensource.com/hplip-web/support.html
and report the issue there.

I cannot make the upstream bug report for you
because you may need to answer HP's question
regarding your particular printer model
(which I do not have).


According to attachment #328456 [details]
-----------------------------------------------------------
HP Device 0x4117
-----------------------------------------------------------
the USB model ID is 0x4117.

In /etc/udev/rules.d/55-hpmud.rules there is
(long lines are shown wrapped only here):
---------------------------------------------------------------------
# Check for LaserJet products (0x03f0xx17).
ATTR{idVendor}=="03f0", ATTR{idProduct}=="??17", OWNER="root",
 GROUP="lp", MODE="664", ENV{sane_hpaio}="yes"
---------------------------------------------------------------------
so that the device node file should be created by udev
with this default permissions
  crw-rw-r-- 1 root lp ... /dev/bus/usb/123/456
where 123 and 456 must be replaced with your current
actual values according to the output of "lsusb".

For details see
https://bugzilla.novell.com/show_bug.cgi?id=542473#c3

In your case the device node file is not created by udev
with the above default permissions so that it might be
a bug in udev.

But I think it is more likely an issue with this special
piece of hardware when it is connected to the USB without
any firmware loaded in it (i.e. when it was switched off
from the power supply before).

Those cheap weak printers are known to not work reliably.

Therefore a bug in udev is very unlikely in particular
because it works for my HP LaserJet 1220 with
USB IDs 03f0:0417 where exactly the same entry
in /etc/udev/rules.d/55-hpmud.rules matches.
Comment 5 Forgotten User --EoyBps8f 2009-11-19 16:37:53 UTC
Sorry, but anything that worked in 11.1 and does not in 11.2 is a regression rather than a wontfix.
Comment 6 Forgotten User --EoyBps8f 2009-11-19 16:42:03 UTC
Re-opening as this worked in 11.1 thus it cannot be blamed on the hardware since that hardware did not change.
Comment 7 Forgotten User --EoyBps8f 2009-11-19 16:58:02 UTC
This is what happens if I turn off the printer and then back on.

The device never gets the group lp, so it's not the firmware upload or anything like that that overwrites it. It's simply a regression compared to 11.1 where it worked witht he same version of hplip.


Nov 19 17:52:32 linux-fpxk kernel: [ 5945.456267] usb 1-5: USB disconnect, address 5
Nov 19 17:52:32 linux-fpxk udev-configure-printer: remove /devices/pci0000:00/0000:00:13.5/usb1/1-5
Nov 19 17:52:32 linux-fpxk udev-configure-printer: Queue ipp://[::1]:631/printers/HP-LaserJet-1018 has matching device URI
Nov 19 17:52:32 linux-fpxk udev-configure-printer: Disabled printer ipp://[::1]:631/printers/HP-LaserJet-1018 as the corresponding device was unplugged or turned off
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.557047] usb 1-5: new high speed USB device using ehci_hcd and address 6
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.692620] usb 1-5: New USB device found, idVendor=03f0, idProduct=4117
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.692653] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.692669] usb 1-5: Product: HP LaserJet 1018
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.692681] usb 1-5: Manufacturer: Hewlett-Packard
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.692693] usb 1-5: SerialNumber: KP1V5XW
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.692960] usb 1-5: configuration #1 chosen from 1 choice
Nov 19 17:52:57 linux-fpxk kernel: [ 5970.696954] usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Nov 19 17:52:57 linux-fpxk logger: loading hp_laserjet_1018 firmware 001 006
Nov 19 17:52:57 linux-fpxk udev-configure-printer: add /devices/pci0000:00/0000:00:13.5/usb1/1-5/1-5:1.0
Nov 19 17:52:57 linux-fpxk udev-configure-printer: parent devpath is /devices/pci0000:00/0000:00:13.5/usb1/1-5
Nov 19 17:52:57 linux-fpxk udev-configure-printer: Device vendor/product is 03F0:4117
Nov 19 17:52:58 linux-fpxk udev-configure-printer: add /devices/pci0000:00/0000:00:13.5/usb1/1-5/1-5:1.0/usb/lp0
Nov 19 17:52:58 linux-fpxk udev-configure-printer: failed to claim interface
Nov 19 17:52:58 linux-fpxk udev-configure-printer: invalid or missing IEEE 1284 Device ID
Nov 19 17:52:58 linux-fpxk udev-configure-printer: parent devpath is /devices/pci0000:00/0000:00:13.5/usb1/1-5
Nov 19 17:52:58 linux-fpxk udev-configure-printer: MFG:Hewlett-Packard MDL:HP LaserJet 1018 SERN:- serial:KP1V5XW
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk hp[4628]: io/hpmud/musb.c 1987: invalid usb_open: Permission denied
Nov 19 17:53:00 linux-fpxk udev-configure-printer: URI matches without serial number: usb://HP/LaserJet%201018
Nov 19 17:53:00 linux-fpxk udev-configure-printer: No serial number URI matches so using those without
Nov 19 17:53:00 linux-fpxk udev-configure-printer: Queue ipp://[::1]:631/printers/HP-LaserJet-1018 has matching device URI
Nov 19 17:53:00 linux-fpxk udev-configure-printer: Re-enabled printer ipp://[::1]:631/printers/HP-LaserJet-1018
Nov 19 17:53:01 linux-fpxk kernel: [ 5974.250334] usblp0: removed
Comment 8 Jeff Mahoney 2009-12-01 22:29:07 UTC
This looks like a udev issue. The HP driver appears to use libusb to drive the device, so it's not a kernel issue.
Comment 9 Kay Sievers 2009-12-02 09:18:00 UTC
Johannes, please have a look what needs to be fixed here. Thanks.

[Jeff, again, please do not assign all the bugs to me where some devices do not work. I'm unable to fix them. This needs to be handled by the maintainers of the subsystems (printing here) which just use udev as the infrastructure to get called when a device appears. I doubt, that the core udev has any issues here]
Comment 10 Johannes Meixner 2009-12-03 10:10:28 UTC
I cannot find out what needs to be fixed here,
see comment #4.

I also think that a bug in udev is very unlikely
in particular because it works for my HP LaserJet 1220
and because such cheap weak printers like the LaserJet 1018
the are known to not work reliably (regardless that because
of whatever reason it had worked with openSUSE 11.1).

Therfore I can only close this bug report as "worksforme".
Comment 11 Forgotten User --EoyBps8f 2009-12-03 10:33:38 UTC
I had a look at the YaST printer module and there was a second entry above the one created with hp-setup. I guess it was a left-over from 11.1 and set-up by YaST's printer module since hp uses _ for the printer name and that one had - in between the words.

After removing that entry the group is lp.

So it seems its not the printer that is cheap and not working reliably but rather openSUSE's printer set-up. Too bad.
Comment 12 Johannes Meixner 2009-12-03 11:18:31 UTC
Glad to hear that you found a way to get it working.

Of course it was not my glorious YaST printer module ;-)
because it uses no '-' in the queue name at all because
a '-' in the queue name is simply not allowed, see
http://www.cups.org/documentation.php/doc-1.1/sam.html#4_1
---------------------------------------------------------------
Each printer queue has a name associated with it;
the printer name must start with any printable character
except " ", "/", and "@". It can contain up to 127 letters,
numbers, and the underscore (_). Case is not significant,
e.g. "PRINTER", "Printer", and "printer" are considered
to be the same name.
---------------------------------------------------------------

E.g. a YaST printer module default setup
of my HP LaserJet 1220 results "hplaserjet1220"
(i.e. by default only lowercase letters and numbers)
and you get a nice "Invalid Queue Name" popup if
you try to manually specify a queue-name with a '-'.

But we have various other printer setup tools like
- KDE printer setup tool
- Gnome printer setup tool (system-config-printer)
- CUPS web frontend
- HP's HPLIP driver setup tool "hp-setup"
- some obscure automated working printer set-up tools

If you could find out which printer setup tool
makes queue names with forbidden charactes,
please file a bug report and include me in CC
(or use the component "Printing").

By the way:
I don't think it is the invalid queue name which lets
the udev stuff fail here because udev is not interested
in print queue names at all.
The actual root cause was something else - a more low-level
reason is needed to let the udev stuff fail.
Comment 13 Johannes Meixner 2009-12-10 10:06:11 UTC
The more I think about it the more I come back to
my initial assumption (of course I cannot prove it
in your particular case) that the root cause is the
known crappy USB interface in this kind of printers
which seems to be related to the various kind of issues
when whatever devices do not have firmware after power-on.

Meanwhile I found my old bug report at HPLIP
about issues with those kind of hardware, see
https://bugs.launchpad.net/bugs/187049

When the basic USB communication with those devices works,
the printout is o.k. (at least for the LaserJet 1020 test)
so that those devices are actually not bad printers
but more precisely bad USB devices.
Comment 14 Forgotten User --EoyBps8f 2009-12-15 08:52:08 UTC
It must be magic then! Whatever hplip set-up in 11.1 worked there so it could not be hp-setup that set-up the wrong queue and I did not use any other apps since I use KDE4 which does not have any kprinter anymore.

The same hardware worked with 11.1 as well, so the only thing that changed was 11.1 -> 11.2. hplip from packman to hplip from opensuse.

I do however remember that 11.1 did always show a "second" printer in the yast module, i.e. one that was "not configured". Of course it was the same printer but maybe this was due to the other queue using the hplip backend. If one deleted it, it came back the next time one opened the yast printer module. 11.2 does not do that.

Anyway, you think my hardware is crap and at fault, I don't, any further discussion is not going to get us anywhere so we should just leave it at that.
Comment 15 Forgotten User --EoyBps8f 2009-12-21 09:54:18 UTC
Created attachment 333662 [details]
printer name with "-" instead of "_", which allegedly is invalid.