Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 166537 - net-print/foo2zjs fails to load firmware with multiple printers attached
Summary: net-print/foo2zjs fails to load firmware with multiple printers attached
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Printing (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Printing Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-02-12 18:13 UTC by Max
Modified: 2007-04-29 05:43 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Max 2007-02-12 18:13:43 UTC
It seems that the ebuild for foo2zjs only fetches firmware and does not install it. There is a large portion of the ebuild concerned with the getweb script provided with the source for getting firmware, but there is no reference to make install-hotplug, which is needed for the firmware to be auto-loaded on turning on a printer. This is at least so with my HP LaserJet 1018.

Reproducible: Always

Steps to Reproduce:
1. emerge foo2zjs
2.
3.

Actual Results:  
Firmware files are fetched, but not installed to the correct location for autoloading.

Expected Results:  
Firmware ends up in the right location by calling 'make install-hotplug' from within the ebuild

The 'hotplug-install' target in the foo2zjs Makefile has a bit of a inappropriate name. Looking at the Makefile, we can see - starting around line 520 - that hotplug actually installs udev files too. Maybe it would be better is the target would have been called 'firmware-install', but alas, it isn't. Those udev files are what makes foo2zjs work though. Without installing those, foo2zjs is pretty much useless for HP users.
Comment 1 Stefan Schweizer (RETIRED) gentoo-dev 2007-02-12 18:48:43 UTC
works perfectly fine for me

maybe you set a wrong FOO2ZJS_DEVICES flag?

Canyouplease show your emerge -va foo2zjs output? probably the full one including the merge phase afterwards.
Comment 2 Max 2007-02-12 19:17:43 UTC
Sheesh. After checking my logs again, I see that my main problem is probably me. 

The ebuild does install the udev rules and the firmware is installed. Sorry about that. 

Still, I couldn't get the printer to work until I manually did the install-hotplug thing. I emerged again, did etc-update and I'll do a reboot now to check the workings of the printer.
Comment 3 Max 2007-02-12 19:49:58 UTC
Well, it may have something to do with the fact that I have 2 USB printers here. At boot, my laserjet rumbles a bit, but eventually it does not print.

After several restarts of cups and clicking the printer on and off, I tried to manually feed the firmware to the printer. That did it. But I had to specify the device on the commandline like '/sbin/foo2zjs-loadfw 1018 /dev/usb/lp0'. Doing it the way the udev rules file specifies it (without the device on the commandline), does not work for me. 

I don't know how to fit this into udev rules though and hacking this into a udev rule is probably not a good idea anyway: I'm not sure printers always have the same lp* number everytime I turn them on regardless of the order I turn them on in...

Any suggestions?
Comment 4 Stefan Schweizer (RETIRED) gentoo-dev 2007-02-12 21:43:30 UTC
you could try the upstream package. I patched some of it to work without hotplug because hotplug is deprecated.
Comment 5 Max 2007-02-13 10:33:46 UTC
I tried removing the whole package (had messed with it too much) and re-emerged foo2zjs. Then I monitored /var/log/messages when turning on the printers in random  order. This time everything seems to be working dandy. Must have been some freak anomaly...
Comment 6 Andrey Bondarenko 2007-02-25 15:15:50 UTC
It seems the problem is in udev rules or in their order. Recently I bought
a new HP 1028 and meet the same problem. The printer hang after power on and I
was unable to print anything. In fact it end up in some strange state:

# /bin/usb_printerid /dev/usb/lp0
Error: Input/output error: GET_DEVICE_ID on '/dev/usb/lp0'

It doesn't respond on any commands and I can only turn it off. Then I found
that problem is related to firmware loading. If I comment out rule for HP 1018 
in /etc/udev/rules.d/11-hplj10xx.rule file, the printer will start normally.
I can upload firmware manually and print without problems. 

# /bin/usb_printerid /dev/usb/lp0
GET_DEVICE_ID string:
MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;
# /sbin/foo2zjs-loadfw 1018 /dev/usb/lp0
MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;
/sbin/foo2zjs-loadfw: loading HP LaserJet 1018 firmware /lib/firmware/sihp1018.dl to /dev/usb/lp0 ...
/sbin/foo2zjs-loadfw: ... download successful.
# /bin/usb_printerid /dev/usb/lp0
GET_DEVICE_ID string:
MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;

Finally, I found a discussion on gentoo.ru http://gentoo.ru/node/3553. 
As a temporal solution it recommends to split rules file in two parts:

/etc/udev/rules.d/11-hplj10xx.rule:
#Own udev rule for HP Laserjet 1018
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="4117", NAME="usb/%k", SYMLINK+="hplj1018%e", MODE="0660", GROUP="lp"

/etc/udev/rules.d/90-hplj10xx.rule:
#Own udev rule for HP Laserjet 1018
KERNEL=="lp*", BUS=="usb", SYSFS{idVendor}=="03f0", SYSFS{idProduct}=="4117", RUN+="/root/foo2zjs-loadfw 1018"

The solution works but I can't explain how and why. 
Hope it helps.  
Comment 7 Stefan Schweizer (RETIRED) gentoo-dev 2007-04-24 22:15:08 UTC
I committed a new version 20070424 of foo2zjs. Can you please check if this bug is still present there? The much improved udev rules should fix it :)
Comment 8 Andrey Bondarenko 2007-04-29 05:43:59 UTC
I've tested new version in with my HP LaserJet 1018, it works out of the box without problems. Thank you.