From d70cfe83cd8c46003992e8f0f709d321863cba8e Mon Sep 17 00:00:00 2001 From: "Martin Herren (HB9FXX)" Date: Tue, 8 Oct 2024 07:48:09 +0200 Subject: [PATCH 1/2] [udev rules] Update rules to use ENV{ID_SOFTWARE_RADIO}="1" for uaccess This allows the rule to be processed by the uaccess rule and makes the device accessible by the currently logged in user without needing to be part of any specific group. For the uaccess rule to work the rules also needed to be renamed from 88-nuand-xxx to 60-nuand-xxx. For scripted use without logging the user still needs to be added to a specific group (plugdev by default). This is aligned with how it is now done on other SDR devices. Signed-off-by: Martin Herren (HB9FXX) --- ...8-nuand-bladerf1.rules.in => 60-nuand-bladerf1.rules.in} | 4 ++-- ...8-nuand-bladerf2.rules.in => 60-nuand-bladerf2.rules.in} | 2 +- ...and-bootloader.rules.in => 60-nuand-bootloader.rules.in} | 2 +- host/misc/udev/CMakeLists.txt | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) rename host/misc/udev/{88-nuand-bladerf1.rules.in => 60-nuand-bladerf1.rules.in} (64%) rename host/misc/udev/{88-nuand-bladerf2.rules.in => 60-nuand-bladerf2.rules.in} (64%) rename host/misc/udev/{88-nuand-bootloader.rules.in => 60-nuand-bootloader.rules.in} (71%) diff --git a/host/misc/udev/88-nuand-bladerf1.rules.in b/host/misc/udev/60-nuand-bladerf1.rules.in similarity index 64% rename from host/misc/udev/88-nuand-bladerf1.rules.in rename to host/misc/udev/60-nuand-bladerf1.rules.in index ca2441976..c2fa84e15 100644 --- a/host/misc/udev/88-nuand-bladerf1.rules.in +++ b/host/misc/udev/60-nuand-bladerf1.rules.in @@ -1,5 +1,5 @@ # Nuand bladeRF -ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="@BLADERF_GROUP@" +ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" # Nuand bladeRF, legacy VID/PID -ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="@BLADERF_GROUP@" +ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" diff --git a/host/misc/udev/88-nuand-bladerf2.rules.in b/host/misc/udev/60-nuand-bladerf2.rules.in similarity index 64% rename from host/misc/udev/88-nuand-bladerf2.rules.in rename to host/misc/udev/60-nuand-bladerf2.rules.in index 32a7daf03..08b5b2fa9 100644 --- a/host/misc/udev/88-nuand-bladerf2.rules.in +++ b/host/misc/udev/60-nuand-bladerf2.rules.in @@ -1,2 +1,2 @@ # Nuand bladeRF 2.0 micro -ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5250", MODE="660", GROUP="@BLADERF_GROUP@" +ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5250", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" diff --git a/host/misc/udev/88-nuand-bootloader.rules.in b/host/misc/udev/60-nuand-bootloader.rules.in similarity index 71% rename from host/misc/udev/88-nuand-bootloader.rules.in rename to host/misc/udev/60-nuand-bootloader.rules.in index a373f78dd..bba430e7e 100644 --- a/host/misc/udev/88-nuand-bootloader.rules.in +++ b/host/misc/udev/60-nuand-bootloader.rules.in @@ -1,2 +1,2 @@ # Cypress FX3 Bootloader, used by bladeRF in recovery mode -ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="@BLADERF_GROUP@" +ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" diff --git a/host/misc/udev/CMakeLists.txt b/host/misc/udev/CMakeLists.txt index 02e12b643..5bc8c7728 100644 --- a/host/misc/udev/CMakeLists.txt +++ b/host/misc/udev/CMakeLists.txt @@ -22,9 +22,9 @@ set(UDEV_RULES_PATH set(BLADERF_GROUP "plugdev" CACHE STRING "Group to associate bladeRF devices with in udev rules") set(BLADERF_UDEV_FILES - 88-nuand-bladerf1.rules - 88-nuand-bladerf2.rules - 88-nuand-bootloader.rules + 60-nuand-bladerf1.rules + 60-nuand-bladerf2.rules + 60-nuand-bootloader.rules ) if(SYSTEM_IS_LINUX) From 3a06754ed79e8918a5332526806576d01240d46d Mon Sep 17 00:00:00 2001 From: "Martin Herren (HB9FXX)" Date: Tue, 8 Oct 2024 07:48:28 +0200 Subject: [PATCH 2/2] [udev rules] Restrict udev rules to usb SUBSYSTEM Signed-off-by: Martin Herren (HB9FXX) --- host/misc/udev/60-nuand-bladerf1.rules.in | 4 ++-- host/misc/udev/60-nuand-bladerf2.rules.in | 2 +- host/misc/udev/60-nuand-bootloader.rules.in | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/host/misc/udev/60-nuand-bladerf1.rules.in b/host/misc/udev/60-nuand-bladerf1.rules.in index c2fa84e15..51c9653df 100644 --- a/host/misc/udev/60-nuand-bladerf1.rules.in +++ b/host/misc/udev/60-nuand-bladerf1.rules.in @@ -1,5 +1,5 @@ # Nuand bladeRF -ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" +SUBSYSTEM=="usb", ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5246", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" # Nuand bladeRF, legacy VID/PID -ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" +SUBSYSTEM=="usb", ATTR{idVendor}=="1d50", ATTR{idProduct}=="6066", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" diff --git a/host/misc/udev/60-nuand-bladerf2.rules.in b/host/misc/udev/60-nuand-bladerf2.rules.in index 08b5b2fa9..6e2cb39d5 100644 --- a/host/misc/udev/60-nuand-bladerf2.rules.in +++ b/host/misc/udev/60-nuand-bladerf2.rules.in @@ -1,2 +1,2 @@ # Nuand bladeRF 2.0 micro -ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5250", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" +SUBSYSTEM=="usb", ATTR{idVendor}=="2cf0", ATTR{idProduct}=="5250", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" diff --git a/host/misc/udev/60-nuand-bootloader.rules.in b/host/misc/udev/60-nuand-bootloader.rules.in index bba430e7e..2f26a5732 100644 --- a/host/misc/udev/60-nuand-bootloader.rules.in +++ b/host/misc/udev/60-nuand-bootloader.rules.in @@ -1,2 +1,2 @@ # Cypress FX3 Bootloader, used by bladeRF in recovery mode -ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="00f3", MODE="660", GROUP="@BLADERF_GROUP@", ENV{ID_SOFTWARE_RADIO}="1"