linux 下 USB裝置訪問許可權問題
阿新 • • 發佈:2020-08-18
linux 下 USB裝置訪問許可權問題
本文適用於解決 linux 下,對串列埠、 FPGA 下載器、JLink 等偵錯程式等等的訪問許可權問題
建立 /etc/udev/rules.d/70-ttyusb.rules
,然後加入 KERNEL=="ttyUSB[0-9]*", MODE="0666"
然後另起一行加入 KERNEL=="ttyACM[0-9]*", MODE="0666"
(適用於 zedboard 的 ps 串列埠)
上面的方法不好使,會使 FPGA 下載器能識別到但無法正常執行
可以新建一個 /etc/udev/rules.d/70-my.rules
# These are for the HiFive1 Board SUBSYSTEM=="usb", ATTR{idVendor}=="0403",ATTR{idProduct}=="6010", MODE="664", OWNER="rv" SUBSYSTEM=="tty", ATTR{idVendor}=="0403",ATTR{idProduct}=="6010", MODE="664", OWNER="rv" # Olimex ARM-USB-TINY-H UBSYSTEM=="usb", ATTR{idVendor}=="15ba",ATTR{idProduct}=="002a", MODE="664", OWNER="rv" SUBSYSTEM=="tty", ATTRS{idVendor}=="15ba",ATTRS{idProduct}=="002a", MODE="664", OWNER="rv" # FPGA Debugger SUBSYSTEM=="usb", ATTR{idVendor}=="0403",ATTR{idProduct}=="6014", MODE="664", OWNER="rv" SUBSYSTEM=="tty", ATTR{idVendor}=="0403",ATTR{idProduct}=="6014", MODE="664", OWNER="rv" # Silicon Labs CP210x UART Bridge SUBSYSTEM=="tty", ATTR{idVendor}=="10c4",ATTR{idProduct}=="ea60", MODE="664", OWNER="rv" # PL2303 UART Bridge SUBSYSTEM=="tty", ATTR{idVendor}=="067b",ATTR{idProduct}=="2303", MODE="664", OWNER="rv"
OWNER="rv"
這個 rv 就是當前的使用者名稱,改成自己的 linux 使用者名稱即可 (linux 使用者名稱可用 whoami
命令來查詢)
以 CP210X 項為例,其 ATTR{idVendor}=="10c4"
即為指定USB裝置的 vid (vendor id) ,其 ATTR{idProduct}=="ea60"
即為指定USB裝置的 pid (product id) 。這個屬性可以通過 lsusb
命令獲取:
rv@rv:~$ lsusb Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 4-Port USB 3.0 Hub Bus 002 Device 003: ID 05e3:0612 Genesys Logic, Inc. Hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 4-Port USB 2.0 Hub Bus 001 Device 008: ID 24ae:1813 Bus 001 Device 007: ID 046d:c31c Logitech, Inc. Keyboard K120 Bus 001 Device 006: ID 14cd:8601 Super Top 4-Port hub Bus 001 Device 011: ID 10c4:ea60 Silicon Labs CP210x UART Bridge Bus 001 Device 013: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
其中
Bus 001 Device 011: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
10c4:ea60
即為 vid-pid 對,Silicon Labs CP210x UART Bridge
就是對裝置的描述,可方便使用者用以判斷裝置身份