因工程需要,固定ttyUSB,参考:
Linux嵌入式学习-USB端口号绑定_望天际的博客-优快云博客
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", GROUP:="dialout", SYMLINK+="ch340g"
失败。
删除配置信息后在/dev下找不到ttyUSB*(注:本人使用ch340g,ubuntu16.04,内核版本:4.15.0-55-generic)
解决方法:可参考:Linux下 ch340 插入后没有/dev/ttyUSB0设备的解决方法_江达小记的博客-优快云博客
- 下载ch340驱动:
- 然后编译安装(编译过程中遇到的问题再搜索解决):
-
$ make
-
$ sudo make load
-
#出现以下信息说明成功
-
modprobe usbserial
-
insmod ch34x.ko
成功!
20190802更新:
参考:ubuntu16.04中永久修改 USB 设备权限_jiangchao3392的博客-优快云博客_ubuntu默认修改ubs0权限
在/etc/udev/rule.d/ch34x.rules中输入:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="falling_prevention"
重新加载规则:
sudo udevadm control --reload
重启后,可以用pyserial使用串口:/dev/falling_prevention
-
from serial import Serial
-
def connect():
-
port="/dev/falling_prevention"
-
baudrate=9600
-
timeout=None
-
port = Serial(port=port, baudrate=baudrate, timeout=timeout, writeTimeout=timeout)
-
while not rospy.is_shutdown():
-
value = port.read(1)
但是输入:
KERNEL=="3-1:1.0", GROUP:="dialout", MODE:="0666", SYMLINK+="mcu_uart"
没有用。
但是我要使用两个以上的ch340,只能另想办法。
接下来参考:对多个同厂相同ID的USB转串口绑定端口同时解决usb device读写permission denied_古老鲨鱼的博客-优快云博客,发现还有一条有用信息:devpath!
插拔不同的端口后查看信息:
-
$ udevadm info --attribute-walk /sys/class/tty/ttyUSB0 | grep devpath
-
Udevadm info starts with the device specified by the devpath and then
-
ATTRS{devpath}=="1"
-
ATTRS{devpath}=="0"
-
$ udevadm info --attribute-walk /sys/class/tty/ttyUSB0 |grep devpath
-
Udevadm info starts with the device specified by the devpath and then
-
ATTRS{devpath}=="2"
-
ATTRS{devpath}=="0"
实验发现不同端口对应的devpath不同,故可以用来区分端口:
加入规则:
-
KERNEL=="ttyUSB*", ATTRS{devpath}=="1",ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777",SYMLINK+="falling_prevention"
-
KERNEL=="ttyUSB*", ATTRS{devpath}=="3",ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777",SYMLINK+="imu"
重启后再次查看:
-
$ ls -l /dev | grep ttyUSB
-
lrwxrwxrwx 1 root root 7 Aug 2 14:46 falling_prevention -> ttyUSB0
-
crwxrwxrwx 1 root dialout 188, 0 Aug 2 14:46 ttyUSB0
成功。
udev资料:
udev的使用-minicom没有权限打开串口,更改 ttyUSB0 的权限_cokewei的博客-优快云博客_ttyusb0 udev不生效(待验证,后面试试)
树莓派usb资料:
Linux+树莓派3开发总结——根据设备ID等信息固定串口号_我是你星爷的博客-优快云博客
linux树莓派下绑定USB口,固定USB串口设备号,解决USB转串口ID相同情况,_蒋程扬的博客-优快云博客_linux的dev下usb一直是同一个怎么回事?
(1321条消息) ubuntu固定ttyUSB* 多个相同设备端口(ch340为例)_Gc_pluse的博客-优快云博客