package/libsigrok: install udev rules

Some devices that libsigrok can talk to, need a firmware to be uploaded.
libsigrok comes with a set of rules to allow non-root users to upload
those firmware blobs.

Depending on how the system is configured, different set of rules are
needed [0] (yes, it's documented on the fx2lafw page, not on the
libsigrok one [1]). Basically:

  - 60-libsigrok.rules is always used;
  - 61-libsigrok-uaccess.rules is used when systemd-logind is used;
  - 61-libsigrok-plugdev.rules is used when systemd-logind is not used.

For systems without udev, it is the responsibility of the user to
implement proper access management if they need non-root to upload
firmware files.

[0] https://sigrok.org/wiki/Fx2lafw#Install_the_udev_rules_file
[1] https://sigrok.org/wiki/Libsigrok

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Yann E. MORIN
2025-02-03 10:34:08 +01:00
committed by Peter Korsgaard
parent 8af6f2eaf9
commit dad34a1a22

View File

@@ -65,4 +65,20 @@ else
LIBSIGROK_CONF_OPTS += --disable-cxx
endif
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
LIBSIGROK_UDEV_RULES = \
60-libsigrok.rules \
$(if $(BR2_PACKAGE_SYSTEMD_LOGIND), \
61-libsigrok-uaccess.rules, \
61-libsigrok-plugdev.rules \
)
define LIBSIGROK_INSTALL_UDEV_RULES
$(foreach rule, $(LIBSIGROK_UDEV_RULES), \
$(INSTALL) -D -m 0644 $(@D)/contrib/$(rule) \
$(TARGET_DIR)/usr/lib/udev/rules.d/$(rule)$(sep) \
)
endef
LIBSIGROK_POST_INSTALL_TARGET_HOOKS += LIBSIGROK_INSTALL_UDEV_RULES
endif
$(eval $(autotools-package))