问题

问题

问题

将 USB 设备组设置为usrp模式的 udev 规则用于0660允许组中的用户usrp访问 USB 设备。不再。

平台

x86_64 Fedora 34 / 库存 Fedora UHD 4.0.0.0 uhd-4.0.0.0-3.fc34.x86_64

硬件发现

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:568b Realtek Semiconductor Corp. Integrated_Webcam_HD
Bus 001 Device 003: ID 04f3:20d0 Elan Microelectronics Corp. Touchscreen
Bus 001 Device 002: ID 8087:0a2b Intel Corp. Bluetooth wireless interface
Bus 001 Device 009: ID 2500:0020 Ettus Research LLC USRP B210
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

/usr/lib/udev/rules.d/10-usrp-uhd.rules 中的规则似乎运行良好:


SUBSYSTEMS=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0020", GROUP:="usrp" MODE:="0660", ENV{ID_SOFTWARE_RADIO}="1"

导致

$sudo udevadm test /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1
1-1: /usr/lib/udev/rules.d/10-usrp-uhd.rules:15 GROUP 1000
1-1: /usr/lib/udev/rules.d/10-usrp-uhd.rules:15 MODE 0660
1-1: Handling device node '/dev/bus/usb/001/009', devnum=c189:8
1-1: Setting permissions /dev/bus/usb/001/009, uid=0, gid=1000, mode=0660

经证实ls -l

crw-rw----. 1 root usrp 189, 8 Nov  9 14:53 /dev/bus/usb/001/009

我很确定我在usrp

$ groups
marcus wheel libvirt usrp mockbuild

症状

$ export UHD_IMAGES_DIR=/usr/share/uhd/images
$ uhd_usrp_probe
[INFO] [UHD] linux; GNU C++ version 11.0.1 20210324 (Red Hat 11.0.1-0); Boost_107500; UHD_4.0.0.0
[ERROR] [USB] USB open failed: insufficient permissions.
See the application notes for your device.

Error: LookupError: KeyError: No devices found for ----->
Empty Device Address

(但以 root 身份工作)

更多侧面信息

  • 以前工作得很好
  • /var/log/audit/audit.log 中没有条目

答案1

我在 Fedora 35 下使用另一个 SDR 时遇到了同样的问题,并通过添加“OWNER”/设备访问用户名解决了该问题:

子系统==“usb”,ATTR {idVendor} ==“xxxx”,ATTR {idProduct}==“xxxx”,MODE =“0660”,所有者=“我的用户”

然后,运行

sudo udevadm control --reload-rules && sudo udevadm trigger

该命令通知 udev deamon 重新加载新添加的设备规则并再次重新触发服务,而无需重新启动该系统。现在无需 root 权限即可运行!

相关内容