mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-06-11 02:28:05 +00:00
debian/patches: Include upstream udev fixes and use hardcoded rules
Fixes the multi-arch file conflict
This commit is contained in:
+629
@@ -0,0 +1,629 @@
|
||||
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
|
||||
Date: Wed, 20 Jan 2021 20:02:05 +0100
|
||||
Subject: data: Use auto-generated but hardcoded autosuspend rules file
|
||||
|
||||
This solves various problems:
|
||||
1. It stays the same also if some drivers have been disabled
|
||||
2. It is still checked for its validity by tests
|
||||
3. It can be auto-generated using a simple command
|
||||
|
||||
Based on: https://gitlab.freedesktop.org/libfprint/libfprint/-/commit/533180a2
|
||||
---
|
||||
data/autosuspend.rules | 445 +++++++++++++++++++++++++++++++++++++
|
||||
data/meson.build | 9 +
|
||||
libfprint/fprint-list-udev-rules.c | 5 +
|
||||
libfprint/meson.build | 26 ++-
|
||||
meson.build | 13 ++
|
||||
tests/meson.build | 5 +-
|
||||
tests/test-generated-rules.sh | 24 ++
|
||||
7 files changed, 518 insertions(+), 9 deletions(-)
|
||||
create mode 100644 data/autosuspend.rules
|
||||
create mode 100644 data/meson.build
|
||||
create mode 100755 tests/test-generated-rules.sh
|
||||
|
||||
diff --git a/data/autosuspend.rules b/data/autosuspend.rules
|
||||
new file mode 100644
|
||||
index 0000000..c87d3d1
|
||||
--- /dev/null
|
||||
+++ b/data/autosuspend.rules
|
||||
@@ -0,0 +1,445 @@
|
||||
+# This file has been generated using fprint-list-udev-rules with all drivers enabled
|
||||
+# Upek TouchChip Fingerprint Coprocessor
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="2016", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="2016", ENV{LIBFPRINT_DRIVER}="Upek TouchChip Fingerprint Coprocessor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="2020", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="2020", ENV{LIBFPRINT_DRIVER}="Upek TouchChip Fingerprint Coprocessor"
|
||||
+
|
||||
+# Validity VFS5011
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0010", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0010", ENV{LIBFPRINT_DRIVER}="Validity VFS5011"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0011", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0011", ENV{LIBFPRINT_DRIVER}="Validity VFS5011"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0015", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0015", ENV{LIBFPRINT_DRIVER}="Validity VFS5011"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0017", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0017", ENV{LIBFPRINT_DRIVER}="Validity VFS5011"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0018", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0018", ENV{LIBFPRINT_DRIVER}="Validity VFS5011"
|
||||
+
|
||||
+# AuthenTec AES3500
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="5731", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="5731", ENV{LIBFPRINT_DRIVER}="AuthenTec AES3500"
|
||||
+
|
||||
+# AuthenTec AES4000
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="5501", ATTRS{idProduct}=="08ff", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="5501", ATTRS{idProduct}=="08ff", ENV{LIBFPRINT_DRIVER}="AuthenTec AES4000"
|
||||
+
|
||||
+# AuthenTec AES1610
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1600", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1600", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1610"
|
||||
+
|
||||
+# AuthenTec AES1660
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1660", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1660", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1680", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1680", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1681", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1681", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1682", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1682", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1683", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1683", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1684", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1684", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1685", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1685", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1686", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1686", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1687", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1687", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1688", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1688", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1689", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1689", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168a", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168b", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168c", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168d", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168e", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168e", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="168f", ENV{LIBFPRINT_DRIVER}="AuthenTec AES1660"
|
||||
+
|
||||
+# AuthenTec AES2660
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2660", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2660", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2680", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2680", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2681", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2681", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2682", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2682", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2683", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2683", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2684", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2684", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2685", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2685", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2686", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2686", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2687", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2687", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2688", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2688", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2689", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2689", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268a", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268b", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268c", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268d", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268e", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268e", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="268f", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2691", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2691", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2660"
|
||||
+
|
||||
+# AuthenTec AES2501
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2500", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2500", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2501"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2580", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2580", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2501"
|
||||
+
|
||||
+# AuthenTec AES2550/AES2810
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2550", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2550", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2550/AES2810"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2810", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2810", ENV{LIBFPRINT_DRIVER}="AuthenTec AES2550/AES2810"
|
||||
+
|
||||
+# Validity VFS101
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0001", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0001", ENV{LIBFPRINT_DRIVER}="Validity VFS101"
|
||||
+
|
||||
+# Validity VFS301
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0005", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0005", ENV{LIBFPRINT_DRIVER}="Validity VFS301"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0008", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0008", ENV{LIBFPRINT_DRIVER}="Validity VFS301"
|
||||
+
|
||||
+# Validity VFS0050
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0050", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0050", ENV{LIBFPRINT_DRIVER}="Validity VFS0050"
|
||||
+
|
||||
+# EgisTec ES603
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0603", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0603", ENV{LIBFPRINT_DRIVER}="EgisTec ES603"
|
||||
+
|
||||
+# Veridicom 5thSense
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="061a", ATTRS{idProduct}=="0110", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="061a", ATTRS{idProduct}=="0110", ENV{LIBFPRINT_DRIVER}="Veridicom 5thSense"
|
||||
+
|
||||
+# Synaptics Sensors
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00bd", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00bd", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00e9", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00e9", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00df", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00df", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00f9", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00f9", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00fc", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00fc", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00c2", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00c2", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00c9", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00c9", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00e7", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00e7", ENV{LIBFPRINT_DRIVER}="Synaptics Sensors"
|
||||
+
|
||||
+# ElanTech Fingerprint Sensor
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0903", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0903", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0907", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0907", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c01", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c01", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c02", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c02", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c03", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c03", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c04", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c04", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c05", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c05", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c06", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c06", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c07", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c07", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c08", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c08", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c09", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c09", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0a", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0b", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0c", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0d", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0e", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0e", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c0f", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c10", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c10", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c11", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c11", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c12", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c12", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c13", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c13", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c14", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c14", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c15", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c15", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c16", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c16", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c17", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c17", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c18", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c18", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c19", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c19", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1a", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1b", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1c", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1d", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1e", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1e", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c1f", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c20", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c20", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c21", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c21", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c22", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c22", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c23", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c23", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c24", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c24", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c25", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c25", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c26", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c26", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c27", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c27", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c28", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c28", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c29", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c29", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2a", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2b", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2c", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2d", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2e", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2e", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c2f", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c30", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c30", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c31", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c31", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c32", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c32", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c33", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c33", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c42", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c42", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4d", ENV{LIBFPRINT_DRIVER}="ElanTech Fingerprint Sensor"
|
||||
+
|
||||
+# Digital Persona U.are.U 4000/4000B/4500
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bb", ATTRS{dev}=="*", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bb", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bc", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bc", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bd", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bd", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00ca", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00ca", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="0007", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="0007", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="0008", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="0008", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="000a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="000a", ENV{LIBFPRINT_DRIVER}="Digital Persona U.are.U 4000/4000B/4500"
|
||||
+
|
||||
+# UPEK TouchChip/Eikon Touch 300
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2015", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2015", ENV{LIBFPRINT_DRIVER}="UPEK TouchChip/Eikon Touch 300"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="3001", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="3001", ENV{LIBFPRINT_DRIVER}="UPEK TouchChip/Eikon Touch 300"
|
||||
+
|
||||
+# UPEK TouchStrip Sensor-Only
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1000", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1000", ENV{LIBFPRINT_DRIVER}="UPEK TouchStrip Sensor-Only"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1001", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1001", ENV{LIBFPRINT_DRIVER}="UPEK TouchStrip Sensor-Only"
|
||||
+
|
||||
+# UPEK TouchStrip
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2016", ATTRS{dev}=="*", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2016", ENV{LIBFPRINT_DRIVER}="UPEK TouchStrip"
|
||||
+
|
||||
+# Goodix MOC Fingerprint Sensor
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5840", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5840", ENV{LIBFPRINT_DRIVER}="Goodix MOC Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="6496", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="6496", ENV{LIBFPRINT_DRIVER}="Goodix MOC Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="60a2", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="60a2", ENV{LIBFPRINT_DRIVER}="Goodix MOC Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="63ac", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="63ac", ENV{LIBFPRINT_DRIVER}="Goodix MOC Fingerprint Sensor"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="639c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="639c", ENV{LIBFPRINT_DRIVER}="Goodix MOC Fingerprint Sensor"
|
||||
+
|
||||
+# Hardcoded whitelist
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="036b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="036b", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c00", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c00", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4b", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4c", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c4f", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c57", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="0c57", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="2706", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="2706", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0081", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0081", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0088", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0088", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="008a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="008a", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="009a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="009a", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="009b", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="009b", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00a2", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00a2", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00b7", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00b7", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00bb", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00bb", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00be", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00be", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00cb", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00cb", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00d8", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00d8", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00da", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="00da", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5801", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5801", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5805", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5805", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5834", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5834", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5843", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="0a5c", ATTRS{idProduct}=="5843", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="10a5", ATTRS{idProduct}=="0007", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="10a5", ATTRS{idProduct}=="0007", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1188", ATTRS{idProduct}=="9545", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1188", ATTRS{idProduct}=="9545", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0007", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0007", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003a", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003a", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003c", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003d", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003f", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="003f", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0090", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0090", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0091", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0091", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0092", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0092", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0094", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0094", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0097", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0097", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="009d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="009d", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="00ab", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="00ab", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1002", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="147e", ATTRS{idProduct}=="1002", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1491", ATTRS{idProduct}=="0088", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1491", ATTRS{idProduct}=="0088", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="16d1", ATTRS{idProduct}=="1027", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="16d1", ATTRS{idProduct}=="1027", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0300", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0300", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0570", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0570", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0575", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="1c7a", ATTRS{idProduct}=="0575", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5042", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5042", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5110", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5110", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5117", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5117", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5201", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5201", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="521d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="521d", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5301", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5301", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="530c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="530c", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="532d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="532d", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="533c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="533c", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5381", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5381", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5385", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5385", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="538c", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="538c", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="538d", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="538d", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5395", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5395", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5584", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5584", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="55a2", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="55a2", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="55a4", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="55a4", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="55b4", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="55b4", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5740", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="27c6", ATTRS{idProduct}=="5740", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="2808", ATTRS{idProduct}=="9338", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="2808", ATTRS{idProduct}=="9338", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="298d", ATTRS{idProduct}=="2033", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="298d", ATTRS{idProduct}=="2033", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="3538", ATTRS{idProduct}=="0930", ATTRS{dev}=="*", TEST=="power/control", ATTR{power/control}="auto", MODE="0660", GROUP="plugdev"
|
||||
+SUBSYSTEM=="usb", ATTRS{idVendor}=="3538", ATTRS{idProduct}=="0930", ENV{LIBFPRINT_DRIVER}="Hardcoded whitelist"
|
||||
+
|
||||
diff --git a/data/meson.build b/data/meson.build
|
||||
new file mode 100644
|
||||
index 0000000..8f79716
|
||||
--- /dev/null
|
||||
+++ b/data/meson.build
|
||||
@@ -0,0 +1,9 @@
|
||||
+if get_option('udev_rules')
|
||||
+ # This file has to be updated using
|
||||
+ # ninja -C <builddir> libfprint/sync-udev-rules
|
||||
+
|
||||
+ install_data('autosuspend.rules',
|
||||
+ rename: '60-@0@-autosuspend.rules'.format(versioned_libname),
|
||||
+ install_dir: udev_rules_dir,
|
||||
+ )
|
||||
+endif
|
||||
diff --git a/libfprint/fprint-list-udev-rules.c b/libfprint/fprint-list-udev-rules.c
|
||||
index cba2b2f..3cda912 100644
|
||||
--- a/libfprint/fprint-list-udev-rules.c
|
||||
+++ b/libfprint/fprint-list-udev-rules.c
|
||||
@@ -164,8 +164,13 @@ int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
g_autoptr(GArray) drivers = fpi_get_driver_types ();
|
||||
+ g_autofree char *program_name = NULL;
|
||||
guint i;
|
||||
|
||||
+ program_name = g_path_get_basename (argv[0]);
|
||||
+ g_print ("# This file has been generated using %s with all drivers enabled\n",
|
||||
+ program_name);
|
||||
+
|
||||
printed = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||
|
||||
for (i = 0; i < drivers->len; i++)
|
||||
diff --git a/libfprint/meson.build b/libfprint/meson.build
|
||||
index 4d1d30c..671a1e5 100644
|
||||
--- a/libfprint/meson.build
|
||||
+++ b/libfprint/meson.build
|
||||
@@ -301,14 +301,24 @@ udev_rules = executable('fprint-list-udev-rules',
|
||||
link_with: libfprint_drivers,
|
||||
install: false)
|
||||
|
||||
-if get_option('udev_rules')
|
||||
- custom_target('udev-rules',
|
||||
- output: '60-@0@-autosuspend.rules'.format(versioned_libname),
|
||||
- capture: true,
|
||||
- command: [ udev_rules ],
|
||||
- install: true,
|
||||
- install_dir: udev_rules_dir)
|
||||
-endif
|
||||
+udev_rules_generator = custom_target('udev-rules',
|
||||
+ output: 'autosuspend.rules',
|
||||
+ depend_files: drivers_sources,
|
||||
+ capture: true,
|
||||
+ command: [ udev_rules ],
|
||||
+ install: false,
|
||||
+)
|
||||
+
|
||||
+custom_target('sync-udev-rules',
|
||||
+ depends: udev_rules_generator,
|
||||
+ output: 'sync-udev-rules',
|
||||
+ install: false,
|
||||
+ command: [
|
||||
+ 'cp', '-v',
|
||||
+ udev_rules_generator.full_path(),
|
||||
+ meson.source_root() / 'data'
|
||||
+ ]
|
||||
+)
|
||||
|
||||
supported_devices = executable('fprint-list-supported-devices',
|
||||
'fprint-list-supported-devices.c',
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 483f1ec..4c73c00 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -136,6 +136,18 @@ if drivers.length() == 0 or drivers[0] == ''
|
||||
error('Cannot build libfprint without drivers, please specify a valid value for the drivers option')
|
||||
endif
|
||||
|
||||
+if drivers == all_drivers or drivers == default_drivers
|
||||
+ default_drivers_are_enabled = true
|
||||
+else
|
||||
+ default_drivers_are_enabled = true
|
||||
+ foreach driver: default_drivers
|
||||
+ if driver not in drivers
|
||||
+ default_drivers_are_enabled = false
|
||||
+ break
|
||||
+ endif
|
||||
+ endforeach
|
||||
+endif
|
||||
+
|
||||
nss_dep = dependency('', required: false)
|
||||
imaging_dep = dependency('', required: false)
|
||||
libfprint_conf.set10('HAVE_PIXMAN', false)
|
||||
@@ -223,6 +235,7 @@ if get_option('gtk-examples')
|
||||
subdir('demo')
|
||||
endif
|
||||
|
||||
+subdir('data')
|
||||
subdir('tests')
|
||||
|
||||
pkgconfig = import('pkgconfig')
|
||||
diff --git a/tests/meson.build b/tests/meson.build
|
||||
index 27bdd9f..efcb1cb 100644
|
||||
--- a/tests/meson.build
|
||||
+++ b/tests/meson.build
|
||||
@@ -5,6 +5,7 @@ envs.set('G_MESSAGES_DEBUG', 'all')
|
||||
|
||||
# Setup paths
|
||||
envs.set('MESON_SOURCE_ROOT', meson.source_root())
|
||||
+envs.set('MESON_BUILD_ROOT', meson.build_root())
|
||||
envs.prepend('LD_LIBRARY_PATH', join_paths(meson.build_root(), 'libfprint'))
|
||||
|
||||
# Set FP_DEVICE_EMULATION so that drivers can adapt (e.g. to use fixed
|
||||
@@ -170,8 +171,10 @@ foreach test_name: unit_tests
|
||||
endforeach
|
||||
|
||||
# Run udev rule generator with fatal warnings
|
||||
+envs.set('UDEV_RULES', udev_rules.full_path())
|
||||
+envs.set('UDEV_RULES_CHECK_CONTENTS', default_drivers_are_enabled ? '1' : '0')
|
||||
test('udev-rules',
|
||||
- udev_rules,
|
||||
+ find_program('test-generated-rules.sh'),
|
||||
env: envs)
|
||||
|
||||
gdb = find_program('gdb', required: false)
|
||||
diff --git a/tests/test-generated-rules.sh b/tests/test-generated-rules.sh
|
||||
new file mode 100755
|
||||
index 0000000..5ba913b
|
||||
--- /dev/null
|
||||
+++ b/tests/test-generated-rules.sh
|
||||
@@ -0,0 +1,24 @@
|
||||
+#!/usr/bin/env bash
|
||||
+set -e
|
||||
+
|
||||
+[ -x "$UDEV_RULES" ] || exit 1
|
||||
+
|
||||
+if [ "$UDEV_RULES_CHECK_CONTENTS" == 1 ]; then
|
||||
+ generated_rules=$(mktemp "${TMPDIR:-/tmp}/libfprint-XXXXXX.rules")
|
||||
+else
|
||||
+ generated_rules=/dev/null
|
||||
+fi
|
||||
+
|
||||
+$UDEV_RULES > "$generated_rules"
|
||||
+
|
||||
+if [ "$UDEV_RULES_CHECK_CONTENTS" != 1 ]; then
|
||||
+ exit 77
|
||||
+fi
|
||||
+
|
||||
+if ! cmp "$MESON_SOURCE_ROOT/data/autosuspend.rules" "$generated_rules"; then
|
||||
+ echo "E: Autosuspend file needs to be re-generated!"
|
||||
+ echo " ninja -C $MESON_BUILD_ROOT libfprint/sync-udev-rules"
|
||||
+ exit 1
|
||||
+fi
|
||||
+
|
||||
+rm "$generated_rules"
|
||||
Vendored
+6
-1
@@ -1,2 +1,7 @@
|
||||
meson-Do-not-support-drivers-known-to-fail-in-Big-Endian-.patch
|
||||
debian/Tweak-the-udev-rules-creator-for-Debian-usage.patch
|
||||
meson-Do-not-support-drivers-known-to-fail-in-Big-Endian-.patch
|
||||
udev-rules-Print-warning-if-an-ID-is-supported.patch
|
||||
udev-rules-Remove-supported-synaptics-devices.patch
|
||||
tests-Add-check-that-no-supported-device-is-whitelisted.patch
|
||||
udev-hwdb-Prevent-devices-from-being-listed-twice.patch
|
||||
debian/data-Use-auto-generated-but-hardcoded-autosuspend-rules-f.patch
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Tue, 19 Jan 2021 13:38:08 +0100
|
||||
Subject: tests: Add check that no supported device is whitelisted
|
||||
|
||||
---
|
||||
tests/meson.build | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/tests/meson.build b/tests/meson.build
|
||||
index 8fcae69..27bdd9f 100644
|
||||
--- a/tests/meson.build
|
||||
+++ b/tests/meson.build
|
||||
@@ -169,6 +169,11 @@ foreach test_name: unit_tests
|
||||
)
|
||||
endforeach
|
||||
|
||||
+# Run udev rule generator with fatal warnings
|
||||
+test('udev-rules',
|
||||
+ udev_rules,
|
||||
+ env: envs)
|
||||
+
|
||||
gdb = find_program('gdb', required: false)
|
||||
if gdb.found()
|
||||
add_test_setup('gdb',
|
||||
@@ -0,0 +1,31 @@
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Wed, 20 Jan 2021 18:02:31 +0100
|
||||
Subject: udev-hwdb: Prevent devices from being listed twice
|
||||
|
||||
The change to print a warning (for testing purposes) from commit
|
||||
944e0d03837 (udev-rules: Print warning if an ID is supported) was
|
||||
incorrect because it prevented duplicated to be suppressed if a device
|
||||
is listed by two independent drivers.
|
||||
---
|
||||
libfprint/fprint-list-udev-rules.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libfprint/fprint-list-udev-rules.c b/libfprint/fprint-list-udev-rules.c
|
||||
index af289da..cba2b2f 100644
|
||||
--- a/libfprint/fprint-list-udev-rules.c
|
||||
+++ b/libfprint/fprint-list-udev-rules.c
|
||||
@@ -133,10 +133,11 @@ print_driver (const FpDeviceClass *cls)
|
||||
|
||||
key = g_strdup_printf ("%04x:%04x", entry->vid, entry->pid);
|
||||
|
||||
- if (cls == &whitelist && g_hash_table_lookup (printed, key) != NULL)
|
||||
+ if (g_hash_table_lookup (printed, key) != NULL)
|
||||
{
|
||||
- g_warning ("%s implemented by driver %s",
|
||||
- key, (const char *) g_hash_table_lookup (printed, key));
|
||||
+ if (cls == &whitelist)
|
||||
+ g_warning ("%s implemented by driver %s",
|
||||
+ key, (const char *) g_hash_table_lookup (printed, key));
|
||||
g_free (key);
|
||||
continue;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Tue, 19 Jan 2021 13:29:17 +0100
|
||||
Subject: udev-rules: Print warning if an ID is supported
|
||||
|
||||
---
|
||||
libfprint/fprint-list-udev-rules.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libfprint/fprint-list-udev-rules.c b/libfprint/fprint-list-udev-rules.c
|
||||
index 3b6f572..57aa5e6 100644
|
||||
--- a/libfprint/fprint-list-udev-rules.c
|
||||
+++ b/libfprint/fprint-list-udev-rules.c
|
||||
@@ -110,6 +110,7 @@ static const FpIdEntry blacklist_id_table[] = {
|
||||
static const FpDeviceClass whitelist = {
|
||||
.type = FP_DEVICE_TYPE_USB,
|
||||
.id_table = whitelist_id_table,
|
||||
+ .id = "whitelist",
|
||||
.full_name = "Hardcoded whitelist"
|
||||
};
|
||||
|
||||
@@ -135,13 +136,15 @@ print_driver (const FpDeviceClass *cls)
|
||||
|
||||
key = g_strdup_printf ("%04x:%04x", entry->vid, entry->pid);
|
||||
|
||||
- if (g_hash_table_lookup (printed, key) != NULL)
|
||||
+ if (cls == &whitelist && g_hash_table_lookup (printed, key) != NULL)
|
||||
{
|
||||
+ g_warning ("%s implemented by driver %s",
|
||||
+ key, (const char *) g_hash_table_lookup (printed, key));
|
||||
g_free (key);
|
||||
continue;
|
||||
}
|
||||
|
||||
- g_hash_table_insert (printed, key, GINT_TO_POINTER (1));
|
||||
+ g_hash_table_insert (printed, key, (void *) cls->id);
|
||||
|
||||
if (num_printed == 0)
|
||||
g_print ("# %s\n", cls->full_name);
|
||||
@@ -0,0 +1,25 @@
|
||||
From: Benjamin Berg <bberg@redhat.com>
|
||||
Date: Tue, 19 Jan 2021 13:37:51 +0100
|
||||
Subject: udev-rules: Remove supported synaptics devices
|
||||
|
||||
---
|
||||
libfprint/fprint-list-udev-rules.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/libfprint/fprint-list-udev-rules.c b/libfprint/fprint-list-udev-rules.c
|
||||
index 57aa5e6..af289da 100644
|
||||
--- a/libfprint/fprint-list-udev-rules.c
|
||||
+++ b/libfprint/fprint-list-udev-rules.c
|
||||
@@ -45,12 +45,9 @@ static const FpIdEntry whitelist_id_table[] = {
|
||||
{ .vid = 0x06cb, .pid = 0x00b7 },
|
||||
{ .vid = 0x06cb, .pid = 0x00bb },
|
||||
{ .vid = 0x06cb, .pid = 0x00be },
|
||||
- { .vid = 0x06cb, .pid = 0x00c2 },
|
||||
- { .vid = 0x06cb, .pid = 0x00c9 },
|
||||
{ .vid = 0x06cb, .pid = 0x00cb },
|
||||
{ .vid = 0x06cb, .pid = 0x00d8 },
|
||||
{ .vid = 0x06cb, .pid = 0x00da },
|
||||
- { .vid = 0x06cb, .pid = 0x00e7 },
|
||||
{ .vid = 0x0a5c, .pid = 0x5801 },
|
||||
{ .vid = 0x0a5c, .pid = 0x5805 },
|
||||
{ .vid = 0x0a5c, .pid = 0x5834 },
|
||||
Reference in New Issue
Block a user