ubuntu固定ttyUSB* 多个相同设备端口(ch340为例)

10 篇文章 1 订阅

因工程需要,固定ttyUSB,参考:

Linux嵌入式学习-USB端口号绑定_望天际的博客-CSDN博客

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设备的解决方法_江达小记的博客-CSDN博客

  1. 下载ch340驱动:
  2. 然后编译安装(编译过程中遇到的问题再搜索解决):
 
  1. $ make 

  2. $ sudo make load

  3. #出现以下信息说明成功

  4. modprobe usbserial

  5. insmod ch34x.ko

成功!

20190802更新:

参考:ubuntu16.04中永久修改 USB 设备权限_jiangchao3392的博客-CSDN博客_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

 
  1. from serial import Serial

  2. def connect():

  3. port="/dev/falling_prevention"

  4. baudrate=9600

  5. timeout=None

  6. port = Serial(port=port, baudrate=baudrate, timeout=timeout, writeTimeout=timeout)

  7. while not rospy.is_shutdown():

  8. value = port.read(1)

但是输入:

KERNEL=="3-1:1.0", GROUP:="dialout", MODE:="0666", SYMLINK+="mcu_uart"

没有用。

但是我要使用两个以上的ch340,只能另想办法。

接下来参考对多个同厂相同ID的USB转串口绑定端口同时解决usb device读写permission denied_古老鲨鱼的博客-CSDN博客,发现还有一条有用信息:devpath!

插拔不同的端口后查看信息:

 
  1. $ udevadm info --attribute-walk /sys/class/tty/ttyUSB0 | grep devpath

  2. Udevadm info starts with the device specified by the devpath and then

  3. ATTRS{devpath}=="1"

  4. ATTRS{devpath}=="0"

  5. $ udevadm info --attribute-walk /sys/class/tty/ttyUSB0 |grep devpath

  6. Udevadm info starts with the device specified by the devpath and then

  7. ATTRS{devpath}=="2"

  8. ATTRS{devpath}=="0"

实验发现不同端口对应的devpath不同,故可以用来区分端口:

加入规则:

 
  1. KERNEL=="ttyUSB*", ATTRS{devpath}=="1",ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777",SYMLINK+="falling_prevention"

  2. KERNEL=="ttyUSB*", ATTRS{devpath}=="3",ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777",SYMLINK+="imu"

重启后再次查看:

 
  1. $ ls -l /dev | grep ttyUSB

  2. lrwxrwxrwx 1 root root 7 Aug 2 14:46 falling_prevention -> ttyUSB0

  3. crwxrwxrwx 1 root dialout 188, 0 Aug 2 14:46 ttyUSB0

成功。

udev资料:

udev的使用-minicom没有权限打开串口,更改 ttyUSB0 的权限_cokewei的博客-CSDN博客_ttyusb0 udev不生效(待验证,后面试试)

树莓派usb资料:

Linux+树莓派3开发总结——根据设备ID等信息固定串口号_我是你星爷的博客-CSDN博客

linux树莓派下绑定USB口,固定USB串口设备号,解决USB转串口ID相同情况,_蒋程扬的博客-CSDN博客_linux的dev下usb一直是同一个怎么回事?

(1321条消息) ubuntu固定ttyUSB* 多个相同设备端口(ch340为例)_Gc_pluse的博客-CSDN博客

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值