From 9e2dbfef479060ed850ccdd9cd82d3f0cda2b5c0 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Tue, 24 Aug 2021 13:54:02 +0200 Subject: hwdb: Allow end-users root-less access to USB analyzers 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/ --- hwdb.d/70-analyzers.hwdb | 33 +++++++++++++++++++++++++++++++++ hwdb.d/meson.build | 1 + hwdb.d/parse_hwdb.py | 1 + src/login/70-uaccess.rules.in | 3 +++ 4 files changed, 38 insertions(+) create mode 100644 hwdb.d/70-analyzers.hwdb 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" -- cgit v1.2.1