![如何授予 Lattice Diamond 3.11 打开 USB 设备的权限?](https://linux22.com/image/1613298/%E5%A6%82%E4%BD%95%E6%8E%88%E4%BA%88%20Lattice%20Diamond%203.11%20%E6%89%93%E5%BC%80%20USB%20%E8%AE%BE%E5%A4%87%E7%9A%84%E6%9D%83%E9%99%90%EF%BC%9F.png)
运行 Lattice Diamond 3.11 时,使 USB 编程器工作的安装说明无效。
libusb couldn't open USB device /dev/bus/usb/003/023: Permission denied.
libusb requires write access to USB device nodes.
权限应该由 udev 规则设置。
该规则应该是这样的:
SUBSYSTEM=="usb",ATTRS{idVendor}=="1134",ATTRS{idProduct}=="8001",MODE="0666",SYMLINK+="lattice-%n"
但实际上并没有将其设置为 0666。lattice 的指令有什么问题?
答案1
为了修复此问题,我必须追踪正在触发的规则。
确实如此,但默认规则优先,因为 lattice 建议将规则放在 /etc/udev/rules.d/10-lattice.rules 中,其优先级低于 /usr/lib/udev/rules.d/50-udev-default.rules
它不能是 10,必须大于 50,因为有 50-udev-default.rules
所以我把它放入 51-lattice.rules 中,现在一切都运行顺利。调试它的关键命令如下:
udevadm test /devices/pci0000:00/0000:00:14.0/usb3/3-5/3-5.2
这告诉我这是最后适用的规则,不是我的!
MODE 0664 /usr/lib/udev/rules.d/50-udev-default.rules:38
它现在按预期工作,并且没有警告“权限被拒绝”。