运行 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
它现在按预期工作,并且没有警告“权限被拒绝”。