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 就是對設備的描述,可方便使用者用以判斷設備身份


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM