summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2021-08-24 13:54:02 +0200
committerBastien Nocera <hadess@hadess.net>2021-09-02 16:01:28 +0200
commit9e2dbfef479060ed850ccdd9cd82d3f0cda2b5c0 (patch)
tree5685a7a380a28db831bcbd3ba4e90fbc8111af04
parent94cb45d57f6e94dd4c93bd4706f9be70634bf03f (diff)
downloadsystemd-wip/hadess/usb-analysers-uaccess.tar.gz
hwdb: Allow end-users root-less access to USB analyzerswip/hadess/usb-analysers-uaccess
Procotol analyzers are external devices used to capture traffic over a wire so that it could be analysed. End-users at the console should be able to access those devices without requiring root access. This change obsoletes the need to install Total Phase's "Linux drivers", which are really just udev rules and hotplug usermap files to do that: https://www.totalphase.com/products/usb-drivers-linux/
-rw-r--r--hwdb.d/70-analyzers.hwdb33
-rw-r--r--hwdb.d/meson.build1
-rwxr-xr-xhwdb.d/parse_hwdb.py1
-rw-r--r--src/login/70-uaccess.rules.in3
4 files changed, 38 insertions, 0 deletions
diff --git a/hwdb.d/70-analyzers.hwdb b/hwdb.d/70-analyzers.hwdb
new file mode 100644
index 0000000000..4865f0b669
--- /dev/null
+++ b/hwdb.d/70-analyzers.hwdb
@@ -0,0 +1,33 @@
+# This file is part of systemd.
+#
+# Database for signal analyzers (protocol analyzers, logic analyzers,
+# oscilloscopes, multimeters, bench power supplies, etc.) that should
+# be accessible to the seat owner.
+#
+# Permitted keys:
+# Specify if a device is a signal analyzer
+# ID_SIGNAL_ANALYZER=1|0
+
+###########################################################
+# Total Phase
+###########################################################
+# Aarvark I2C/SPI Host Adapter
+usb:v0403pe0d0*
+ ID_SIGNAL_ANALYZER=1
+
+# Beagle Protocol Analyzers
+usb:v1679p2001*
+ ID_SIGNAL_ANALYZER=1
+
+# Cheetah SPI Host Adapter
+usb:v1679p2002*
+ ID_SIGNAL_ANALYZER=1
+
+# Komodo CAN Duo Interface
+usb:v1679p3001*
+ ID_SIGNAL_ANALYZER=1
+
+# Power Delivery Analyzers
+usb:v1679p6003*
+usb:v0483pdf11*
+ ID_SIGNAL_ANALYZER=1
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index 4f3560e37f..fc6ee7c649 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -27,6 +27,7 @@ hwdb_files_test = files('''
60-keyboard.hwdb
60-seat.hwdb
60-sensor.hwdb
+ 70-analyzers.hwdb
70-joystick.hwdb
70-mouse.hwdb
70-pointingstick.hwdb
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 3cd4b486a6..dea71acfe9 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -147,6 +147,7 @@ def property_grammar():
('ID_INPUT_TOUCHPAD', Or((Literal('0'), Literal('1')))),
('ID_INPUT_TOUCHSCREEN', Or((Literal('0'), Literal('1')))),
('ID_INPUT_TRACKBALL', Or((Literal('0'), Literal('1')))),
+ ('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('POINTINGSTICK_CONST_ACCEL', REAL),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
diff --git a/src/login/70-uaccess.rules.in b/src/login/70-uaccess.rules.in
index 56e1087fef..28740ea647 100644
--- a/src/login/70-uaccess.rules.in
+++ b/src/login/70-uaccess.rules.in
@@ -80,4 +80,7 @@ ENV{ID_SOFTWARE_RADIO}=="?*", TAG+="uaccess"
# 3D printers, CNC machines, laser cutters, 3D scanners, etc.
ENV{ID_MAKER_TOOL}=="?*", TAG+="uaccess"
+# Protocol analyzers
+ENV{ID_SIGNAL_ANALYZER}=="?*", ENV{DEVTYPE}=="usb_device", TAG+="uaccess"
+
LABEL="uaccess_end"