From Bugzilla Helper: User-Agent: Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.1 (like Gecko) Description of problem: After upgrading udev to 071-0.FC4.2, my previously working USB HP Officejet 5605z (configured as an "Officejet 5500" given that the 5600 series isn't supported in the current FC4 HPLIP yet, using the hp CUPS transport) suddenly stopped working: "Device is powered down or unplugged. (5002)". This is because udev no longer creates /dev/usb/lp? devices, instead treating the USB printer as any other printer and creating a /dev/lp? device instead. This causes the hp CUPS transport no longer to find the printer. (It expects it on /dev/usb/lp?.) Therefore, either udev needs to create /dev/usb/lp? again, or hplib needs an update. (Note: This may or may not be related to Bug #177799. I figured it's probably a different issue, given that the udev update wasn't out yet when #177799 was filed.) Version-Release number of selected component (if applicable): udev-071-0.FC4.2 How reproducible: Always Steps to Reproduce: 1. Configure a HP USB printer using the hp CUPS backend. 2. Upgrade udev to 071. (If you try to configure the printer after the udev upgrade, system-config-printer won't even offer the hp transport as an option.) 3. Run hp-toolbox to figure out what's wrong. Actual Results: "Device is powered down or unplugged. (5002)" Expected Results: "The printer is idle. (1000)" Additional info: Temporary, non-persistent workaround: mkdir /dev/usb ln -s /dev/lp0 /dev/usb/lp0
Hmm... there is a rule for that... BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
Maybe the rule fails because there's no /dev/usb directory at all?
The directory should be created by udev with this rule.
I think there's some syntax error in the udev rules. Here's what I have in my /var/log/messages: Feb 16 09:32:57 localhost udev[1917]: add_to_rules: error parsing SYSFS attribute in 'BUS' Feb 16 09:32:57 localhost udev[1917]: get_key_attribute: missing closing brace for format Feb 16 09:32:57 localhost udev[1917]: add_to_rules: error parsing SYSFS attribute in 'BUS' Feb 16 09:32:57 localhost udev[1917]: add_to_rules: error parsing SYSFS attribute in 'BUS' Feb 16 09:32:57 localhost udev[1917]: get_key_attribute: missing closing brace for format Feb 16 09:32:57 localhost udev[1917]: add_to_rules: error parsing SYSFS attribute in 'BUS' Feb 16 09:32:57 localhost udev[1917]: add_to_rules: error parsing SYSFS attribute in 'BUS' Feb 16 09:32:57 localhost udev[1917]: get_key_attribute: missing closing brace for format Feb 16 09:32:57 localhost udev[1917]: add_to_rules: error parsing SYSFS attribute in 'BUS' And more of the exact same 2 errors, but with other PIDs, later in the boot process.
I just noticed that lp0 through lp3 are listed in /etc/udev/makedev.d/50-udev.nodes, which contains the following comment at the top of it: # These device have to be created manually Presumably this is what is causing the bug.
well, remove them... and see if it makes a difference ...
Still broken in FC5, and the FC5 udev doesn't have these lines in /etc/udev/makedev.d/50-udev.nodes, so it must be something else.
FWIW, FC5's updates-testing yum repo contains a newer version of HPLIP (0.9.10) which gives similar symptoms to this: basically, when HPLIP is used to access a printer, the usblp driver is told to detach from that device, and that removes the corresponding /dev/usb/lp0 node. Versions of HPLIP prior to 0.9.9 do not do this, however.
I've finally manages to track this down: it is not a Fedora bug. The error messages in comment #4 come from a broken udev rules file in Ignacio Vazquez-Abrams's kernel-module-qc-usb SRPM (which I rebuilt for current kernels). For some reason, older udev apparently ignored the broken rules silently, whereas 071 and newer is more picky and completely breaks down if a rules file is bad. Fixing that rules file fixes both the error messages and this problem. Sorry for the bogus bug report.