summaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorBenjamin Berg <bberg@redhat.com>2022-03-28 15:43:16 +0200
committerBenjamin Berg <bberg@redhat.com>2022-04-01 11:47:17 +0200
commit90c25b4fd16564137bba3ca60e5091d0d75b817e (patch)
tree135c8fe2e72e547263f4cc2bd4f94dae8c9d53a8 /rules
parent888b1afc6dad2a8c87217618c1a4a07f9db67bed (diff)
downloadupower-90c25b4fd16564137bba3ca60e5091d0d75b817e.tar.gz
rules: Update udev rules and migrate to use hwdb
This makes rule matching more efficient. We just need to copy the variables over into the hiddev device so that there is no need to change the C code to match the parent USB device. That said, the change in C wouldn't be that hard either. See https://github.com/networkupstools/nut/pull/1342
Diffstat (limited to 'rules')
-rw-r--r--rules/95-upower-hid.hwdb200
-rw-r--r--rules/95-upower-hid.rules143
-rw-r--r--rules/meson.build9
3 files changed, 211 insertions, 141 deletions
diff --git a/rules/95-upower-hid.hwdb b/rules/95-upower-hid.hwdb
new file mode 100644
index 0000000..a4eff0f
--- /dev/null
+++ b/rules/95-upower-hid.hwdb
@@ -0,0 +1,200 @@
+##############################################################################################################
+# Uninterruptible Power Supplies with USB HID interfaces
+#
+# This file was automatically generated by NUT:
+# https://github.com/networkupstools/nut/
+#
+# To keep up to date, monitor upstream NUT
+# https://github.com/networkupstools/nut/commits/master/scripts/upower/95-upower-hid.hwdb
+# or checkout the NUT repository and call 'tools/nut-usbinfo.pl'
+
+# Hewlett Packard
+usb:v03F0p0001*
+usb:v03F0p1F06*
+usb:v03F0p1F08*
+usb:v03F0p1F09*
+usb:v03F0p1F0A*
+usb:v03F0p1FE0*
+usb:v03F0p1FE1*
+usb:v03F0p1FE2*
+usb:v03F0p1FE3*
+usb:v03F0p1FE5*
+usb:v03F0p1FE6*
+usb:v03F0p1FE7*
+usb:v03F0p1FE8*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Hewlett Packard
+
+# Eaton
+usb:v0463p0001*
+usb:v0463pFFFF*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Eaton
+
+# Dell
+usb:v047CpFFFF*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Dell
+
+# ST Microelectronics
+usb:v0483pA113*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=ST Microelectronics
+
+# IBM
+usb:v04B3p0001*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=IBM
+
+# Minibox
+usb:v04D8pD004*
+usb:v04D8pD005*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Minibox
+
+# Belkin
+usb:v050Dp0375*
+usb:v050Dp0551*
+usb:v050Dp0750*
+usb:v050Dp0751*
+usb:v050Dp0900*
+usb:v050Dp0910*
+usb:v050Dp0912*
+usb:v050Dp0980*
+usb:v050Dp0F51*
+usb:v050Dp1100*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Belkin
+
+# APC
+usb:v051Dp0000*
+usb:v051Dp0002*
+usb:v051Dp0003*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=APC
+
+# Powerware
+usb:v0592p0004*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Powerware
+
+# Delta UPS
+usb:v05DDp041B*
+usb:v05DDpA011*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Delta UPS
+
+# Phoenixtec Power Co., Ltd
+usb:v06DApFFFF*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Phoenixtec Power Co., Ltd
+
+# iDowell
+usb:v075Dp0300*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=iDowell
+
+# Cyber Power Systems
+usb:v0764p0005*
+usb:v0764p0501*
+usb:v0764p0601*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Cyber Power Systems
+
+# TrippLite
+usb:v09AEp1003*
+usb:v09AEp1007*
+usb:v09AEp1008*
+usb:v09AEp1009*
+usb:v09AEp1010*
+usb:v09AEp1330*
+usb:v09AEp2005*
+usb:v09AEp2007*
+usb:v09AEp2008*
+usb:v09AEp2009*
+usb:v09AEp2010*
+usb:v09AEp2011*
+usb:v09AEp2012*
+usb:v09AEp2013*
+usb:v09AEp2014*
+usb:v09AEp3008*
+usb:v09AEp3009*
+usb:v09AEp3010*
+usb:v09AEp3011*
+usb:v09AEp3012*
+usb:v09AEp3013*
+usb:v09AEp3014*
+usb:v09AEp3015*
+usb:v09AEp3016*
+usb:v09AEp3024*
+usb:v09AEp4001*
+usb:v09AEp4002*
+usb:v09AEp4003*
+usb:v09AEp4004*
+usb:v09AEp4005*
+usb:v09AEp4006*
+usb:v09AEp4007*
+usb:v09AEp4008*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=TrippLite
+
+# PowerCOM
+usb:v0D9Fp0001*
+usb:v0D9Fp0004*
+usb:v0D9Fp00A2*
+usb:v0D9Fp00A3*
+usb:v0D9Fp00A4*
+usb:v0D9Fp00A5*
+usb:v0D9Fp00A6*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=PowerCOM
+
+# Liebert
+usb:v10AFp0001*
+usb:v10AFp0004*
+usb:v10AFp0008*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Liebert
+
+# Legrand
+usb:v1CB0p0032*
+usb:v1CB0p0038*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Legrand
+
+# Arduino
+usb:v2341p0036*
+usb:v2341p8036*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Arduino
+
+# Arduino
+usb:v2A03p0036*
+usb:v2A03p0040*
+usb:v2A03p8036*
+usb:v2A03p8040*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Arduino
+
+# AEG
+usb:v2B2DpFFFF*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=AEG
+
+# Ever
+usb:v2E51pFFFF*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Ever
+
+# Salicru
+usb:v2E66p0201*
+usb:v2E66p0202*
+usb:v2E66p0203*
+usb:v2E66p0300*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Salicru
+
+# Powervar
+usb:v4234p0002*
+ UPOWER_BATTERY_TYPE=ups
+ UPOWER_VENDOR=Powervar
diff --git a/rules/95-upower-hid.rules b/rules/95-upower-hid.rules
index e064ef7..c6e2d06 100644
--- a/rules/95-upower-hid.rules
+++ b/rules/95-upower-hid.rules
@@ -1,141 +1,2 @@
-##############################################################################################################
-# Uninterruptible Power Supplies with USB HID interfaces
-#
-# This file was automatically generated by NUT:
-# https://github.com/networkupstools/nut/
-#
-# To keep up to date, monitor upstream NUT
-# https://github.com/networkupstools/nut/commits/master/scripts/upower/95-upower-hid.rules
-# or checkout the NUT repository and call 'tools/nut-usbinfo.pl'
-
-# newer hiddev are part of the usbmisc class
-SUBSYSTEM=="usbmisc", GOTO="up_hid_chkdev"
-# only support USB, else ignore
-SUBSYSTEM!="usb", GOTO="up_hid_end"
-
-# if usbraw device, ignore
-LABEL="up_hid_chkdev"
-KERNEL!="hiddev*", GOTO="up_hid_end"
-
-# if an interface, ignore
-ENV{DEVTYPE}=="usb_interface", GOTO="up_hid_end"
-
-ATTRS{idVendor}=="03f0", ENV{UPOWER_VENDOR}="Hewlett Packard"
-ATTRS{idVendor}=="0463", ENV{UPOWER_VENDOR}="Eaton"
-ATTRS{idVendor}=="047c", ENV{UPOWER_VENDOR}="Dell"
-ATTRS{idVendor}=="04d8", ENV{UPOWER_VENDOR}="Minibox"
-ATTRS{idVendor}=="050d", ENV{UPOWER_VENDOR}="Belkin"
-ATTRS{idVendor}=="051d", ENV{UPOWER_VENDOR}="APC"
-ATTRS{idVendor}=="0592", ENV{UPOWER_VENDOR}="Powerware"
-ATTRS{idVendor}=="06da", ENV{UPOWER_VENDOR}="Phoenixtec Power Co., Ltd"
-ATTRS{idVendor}=="075d", ENV{UPOWER_VENDOR}="iDowell"
-ATTRS{idVendor}=="0764", ENV{UPOWER_VENDOR}="Cyber Power Systems"
-ATTRS{idVendor}=="09ae", ENV{UPOWER_VENDOR}="TrippLite"
-ATTRS{idVendor}=="0d9f", ENV{UPOWER_VENDOR}="PowerCOM"
-ATTRS{idVendor}=="10af", ENV{UPOWER_VENDOR}="Liebert"
-
-# Hewlett Packard
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0001", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f06", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f08", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f09", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1f0a", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe0", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe1", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe2", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe3", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe5", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe6", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe7", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="1fe8", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Eaton
-ATTRS{idVendor}=="0463", ATTRS{idProduct}=="0001", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0463", ATTRS{idProduct}=="ffff", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Dell
-ATTRS{idVendor}=="047c", ATTRS{idProduct}=="ffff", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Minibox
-ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="d004", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="d005", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Belkin
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0375", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0551", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0750", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0751", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0900", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0910", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0912", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0980", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="0f51", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="050d", ATTRS{idProduct}=="1100", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# APC
-ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0000", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0002", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="051d", ATTRS{idProduct}=="0003", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Powerware
-ATTRS{idVendor}=="0592", ATTRS{idProduct}=="0004", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Phoenixtec Power Co., Ltd
-ATTRS{idVendor}=="06da", ATTRS{idProduct}=="ffff", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# iDowell
-ATTRS{idVendor}=="075d", ATTRS{idProduct}=="0300", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Cyber Power Systems
-ATTRS{idVendor}=="0764", ATTRS{idProduct}=="0005", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0764", ATTRS{idProduct}=="0501", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0764", ATTRS{idProduct}=="0601", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# TrippLite
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="1003", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="1007", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="1008", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="1009", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="1010", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2005", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2007", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2008", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2009", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2010", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2011", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2012", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2013", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="2014", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3008", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3009", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3010", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3011", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3012", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3013", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3014", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3015", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="3016", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4001", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4002", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4003", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4004", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4005", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4006", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4007", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="09ae", ATTRS{idProduct}=="4008", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# PowerCOM
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="0001", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="0004", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="00a2", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="00a3", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="00a4", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="00a5", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="0d9f", ATTRS{idProduct}=="00a6", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-# Liebert
-ATTRS{idVendor}=="10af", ATTRS{idProduct}=="0001", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="10af", ATTRS{idProduct}=="0004", ENV{UPOWER_BATTERY_TYPE}="ups"
-ATTRS{idVendor}=="10af", ATTRS{idProduct}=="0008", ENV{UPOWER_BATTERY_TYPE}="ups"
-
-LABEL="up_hid_end"
+# Copy some attributes from the USB device to the hiddev device
+SUBSYSTEM=="usbmisc", SUBSYSTEMS=="usb", KERNEL=="hiddev*", IMPORT{parent}="UPOWER_*", IMPORT{parent}="ID_VENDOR", IMPORT{parent}="ID_PRODUCT"
diff --git a/rules/meson.build b/rules/meson.build
index b3e6fe5..63c344c 100644
--- a/rules/meson.build
+++ b/rules/meson.build
@@ -3,7 +3,16 @@ rules = [
'95-upower-hid.rules',
]
+hwdb = [
+ '95-upower-hid.hwdb',
+]
+
install_data(
rules,
install_dir: udevrulesdir,
)
+
+install_data(
+ hwdb,
+ install_dir: udevhwdbdir,
+)