질문
USB 장치 그룹을 모드로 설정하는 udev 규칙은 그룹의 사용자가 USB 장치에 액세스하도록 허용하는 usrp
데 사용됩니다 . 더이상.0660
usrp
플랫폼
x86_64 페도라 34 / 재고 페도라 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
(단, 루트로 작동함)
추가 정보
- 전에는 잘 작동했어요
- /var/log/audit/audit.log에 항목이 없습니다.
답변1
Fedora 35에서 다른 SDR을 사용하여 동일한 문제가 발생했으며 "OWNER"/장치 액세스 사용자 이름을 추가하여 해결했습니다.
하위 시스템 == "usb", ATTR {idVendor} == "xxxx", ATTR {idProduct} == "xxxx", MODE = "0660",소유자="myuser"
그런 다음 실행
sudo udevadm control --reload-rules && sudo udevadm trigger
이 명령은 udev 데몬에게 새로 추가된 장치 규칙을 다시 로드하고 시스템을 다시 시작하지 않고 서비스를 다시 트리거하도록 지시합니다. 이제 루트 없이도 작동합니다!