linux 下 USB设备访问权限问题
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="aero"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6010", MODE="664", OWNER="aero"
# Olimex ARM-USB-TINY-H
UBSYSTEM=="usb", ATTR{idVendor}=="15ba",ATTR{idProduct}=="002a", MODE="664", OWNER="aero"
SUBSYSTEM=="tty", ATTRS{idVendor}=="15ba",ATTRS{idProduct}=="002a", MODE="664", OWNER="aero"
# Silicon Labs CP210x UART Bridge
SUBSYSTEM=="usb", ATTR{idVendor}=="10c4",ATTR{idProduct}=="ea60", MODE="664", OWNER="aero"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60", MODE="664", OWNER="aero"
# FPGA Debugger
SUBSYSTEM=="usb", ATTR{idVendor}=="0403",ATTR{idProduct}=="6014", MODE="664", OWNER="aero"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403",ATTRS{idProduct}=="6014", MODE="664", OWNER="aero"
# PL2303 UART Bridge
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b",ATTRS{idProduct}=="2303", MODE="664", OWNER="aero"
# HL-340 UART Bridge
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86",ATTRS{idProduct}=="7523", MODE="664", OWNER="aero"
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
就是对设备的描述,可方便使用者用以判断设备身份