Bug#517297: hplip udev rules - patch fixing "never matches" problem
Hello, I've slightly updated the files to reflect a change in upstream's own rules from 2.8.12 to 3.9.2 (they added a new device). Everything else is the same. Thanks, Christopher Martin # Udev rules file for HP printer products. ACTION!="add", GOTO="hpmud_rules_end" SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="pid_test" SUBSYSTEM!="usb_device", GOTO="hpmud_rules_end" LABEL="pid_test" # Check for AiO products (0x03f0xx11). ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??11", GROUP="lp" # Check for Photosmart products without wildcard since cameras and scanners also used (0x03f0xx02). # The xx02 pid has been retired so this explicit list should not change. # photosmart_d2300_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c302", GROUP="lp" # photosmart_100 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3802", GROUP="lp" # photosmart_1115 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3402", GROUP="lp" # photosmart_1215 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3202", GROUP="lp" # photosmart_1218 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3302", GROUP="lp" # photosmart_130 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3902", GROUP="lp" # photosmart_1315 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3602", GROUP="lp" # photosmart_140_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1002", GROUP="lp" # photosmart_230 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3502", GROUP="lp" # photosmart_240_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1102", GROUP="lp" # photosmart_320_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1202", GROUP="lp" # photosmart_330_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1602", GROUP="lp" # photosmart_370_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1302", GROUP="lp" # photosmart_380_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1702", GROUP="lp" # photosmart_420_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1502", GROUP="lp" # photosmart_470_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1802", GROUP="lp" # photosmart_7150 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3a02", GROUP="lp" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3b02", GROUP="lp" # photosmart_7200_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="b002", GROUP="lp" # photosmart_7345 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2002", GROUP="lp" # photosmart_7350 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3c02", GROUP="lp" # photosmart_7400_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="b802", GROUP="lp" # photosmart_7550 ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3e02", GROUP="lp" # photosmart_7600_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="b202", GROUP="lp" # photosmart_7700_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="b402", GROUP="lp" # photosmart_7800_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c002", GROUP="lp" # photosmart_7900_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="b602", GROUP="lp" # photosmart_8000_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c102", GROUP="lp" # photosmart_8100_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="ba02", GROUP="lp" # photosmart_8200_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c202", GROUP="lp" # photosmart_8400_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="bb02", GROUP="lp" # photosmart_8700_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="bc02", GROUP="lp" # photosmart_a310_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1d02", GROUP="lp" # photosmart_a320_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1e02", GROUP="lp" # photosmart_a430_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1902", GROUP="lp" # photosmart_a440_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f02", GROUP="lp" # photosmart_a510_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1a02", GROUP="lp" # photosmart_a520_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2602", GROUP="lp" # photosmart_a530_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2b02", GROUP="lp" # photosmart_a610_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1b02", GROUP="lp" # photosmart_a620_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2702", GROUP="lp" # photosmart_a630_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2c02", GROUP="lp" # photosmart_a710_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1c02", GROUP="lp" # photosmart_a820_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2902", GROUP="lp" # photosmart_d5060_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c802", GROUP="lp" # photosmart_d5100_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c402", GROUP="lp" # photosmart_d6100_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c502", GROUP="lp" # photosmart_d7100_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c602", GROUP="lp" # photosmart_d7300_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c702", GROUP="lp" # photosmart_pro_b8300_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="be02", GROUP="lp" # photosmart_b8800_series ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="d
Bug#517297: hplip udev rules - patch fixing "never matches" problem
tags 517297 patch stop Hello, Borrowing from the hplip upstream udev rules (included in the hplip source), and looking at the udev documentation, I've come up with the following new hplip.rules file (also provided as a patch against the current file, debian/hplip.udev) which updates them so that they now work with recent kernels and udev versions (while leaving out some of the more esoteric changes in the upstream rules). Critically, the rules now handle both SUBSYSTEM="usb" and SUBSYSTEM="usb_device". They also use ATTRS, not ATTR. ATTR doesn't seem to work at all for what we ask of it. With this update, my printer's node is now correctly in the "lp" group, allowing hplip to work; before, printing simply wasn't possible as a regular user. I don't recall when exactly things broke, but it's been a while... Please include this fix in the next hplip upload. Thanks, Christopher Martin --- hplip.udev.orig +++ hplip.udev.new @@ -1,118 +1,126 @@ # Udev rules file for HP printer products. +ACTION!="add", GOTO="hpmud_rules_end" +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="pid_test" +SUBSYSTEM!="usb_device", GOTO="hpmud_rules_end" + +LABEL="pid_test" + # Check for AiO products (0x03f0xx11). -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="??11", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="??11", GROUP="lp" # Check for Photosmart products without wildcard since cameras and scanners also used (0x03f0xx02). # The xx02 pid has been retired so this explicit list should not change. # photosmart_d2300_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="c302", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="c302", GROUP="lp" # photosmart_100 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3802", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3802", GROUP="lp" # photosmart_1115 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3402", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3402", GROUP="lp" # photosmart_1215 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3202", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3202", GROUP="lp" # photosmart_1218 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3302", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3302", GROUP="lp" # photosmart_130 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3902", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3902", GROUP="lp" # photosmart_1315 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3602", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3602", GROUP="lp" # photosmart_140_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1002", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1002", GROUP="lp" # photosmart_230 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3502", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3502", GROUP="lp" # photosmart_240_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1102", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1102", GROUP="lp" # photosmart_320_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1202", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1202", GROUP="lp" # photosmart_330_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1602", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1602", GROUP="lp" # photosmart_370_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1302", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1302", GROUP="lp" # photosmart_380_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1702", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1702", GROUP="lp" # photosmart_420_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1502", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1502", GROUP="lp" # photosmart_470_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="1802", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1802", GROUP="lp" # photosmart_7150 -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="3a02", GROUP="lp" +ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3a02", GROUP="lp" # photosmart_7200_series -SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="03f0", ATTR{idProduct}=="b002", GROUP="lp" +ATTRS{idVendor}=="03f0"