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

2023-05-16

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

https://blog.csdn.net/qq_25544855/article/details/79320556

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", GROUP:="dialout", SYMLINK+="ch340g"

失败。

删除配置信息后在/dev下找不到ttyUSB*(注:本人使用ch340g,ubuntu16.04,内核版本:4.15.0-55-generic

解决方法:可参考:https://blog.csdn.net/u010750137/article/details/57103002

  1. 下载ch340驱动:
  2. 然后编译安装(编译过程中遇到的问题再搜索解决):
$ make 
$ sudo make load
#出现以下信息说明成功
modprobe usbserial
insmod ch34x.ko

成功!

20190802更新:

参考:https://blog.csdn.net/jiangchao3392/article/details/76227180

在/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,只能另想办法。

接下来参考:https://blog.csdn.net/Warnemuende/article/details/73920980,发现还有一条有用信息: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资料:

https://blog.csdn.net/cokewei/article/details/8281239(待验证,后面试试)

树莓派usb资料:

https://blog.csdn.net/xqf1528399071/article/details/52191637

https://blog.csdn.net/qq_38441692/article/details/88314310

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • js 判断字符串是否包含另外一个字符串

    lt script type 61 34 text javascript 34 gt var str 61 34 测试一个字符串 ehtrzes 是否包含另外一个字符串 34 if str indexOf 34 ehtrzes 34 gt
  • js判断函数是否存在、判断是否为函数

    lt script type 61 34 text javascript 34 gt 判断是否为函数 try if typeof FunName 61 61 61 34 function 34 是函数 其中 FunName 为函数名称 al
  • python中的类和对象,属性和方法

    一 面向对象的概述 面向对象是一种描述业务问题 设计业务实体和实体之间关系的方法 二 类和对象 1 类和对象得区别 xff1a 类是对客观世界中事物得抽象 xff0c 而对象是类实例化后的实体 例如 xff1a 汽车模型就是一个类 xff0
  • 什么是“约瑟夫环”

    今天遇到一个关于 约瑟夫环 的问题 xff0c 于是上网查了下什么是 约瑟夫环 出自百度 xff1a 约瑟夫问题 xff08 有时也称为约瑟夫斯置换 xff0c 是一个出现在计算机科学和数学中的问题 在计算机编程的算法中 xff0c 类似问
  • 使用Fontcreator字体制作软件及字体设计学习

    fontcreator对于字体修改爱好者而言是一款极好的文字编辑工具 xff0c 门槛要求低 专业性强 集设计和修改为一体 xff0c 可用来制作 编辑 修改ttf xff0c otf xff0c ttc格式的字体文件 xff0c 非常的实
  • 远程连接centos 7 图形化桌面

    使用xrdp工具 xff0c 类似windows系统的远程桌面 xff08 rdp xff09 xff0c 需要在服务端安装远程桌面服务 如果你的服务器可以使用阿里的yum源 xff0c 可以直接使用epel仓库安装 xff0c 执行以下命
  • selinux - Android编写sepolicy

    为service编写sepolicy 由init启动的service服务要在各自的selinux domain中运行 具体flow如下 init devices rc中声明service xff0c 将在init时启动 xff1a Note
  • Spring Boot结合easyExcel实现自增序号

    有些业务功能要求能导出序号 xff0c 现在提供两种实现方式 通过mysql查询实现 xff1b 实现RowWriteHandler接口 xff0c 自定义拦截器 xff1b 一 通过mysql查询实现 通过自定义变量实现每行数据 43 1
  • Spring Boot 实体里的List集合参数验证

    Spring Boot 实体里的List集合参数验证 Spring Boot 通过Hibernate Validator 加验证大家都知道 不知道的话可以参考这篇文章SpringBoot里参数校验 参数验证 今天讲一下Spring Boot
  • 树形结构工具类,如:菜单、部门等

    1 树节点 span class token keyword package span span class token namespace com span class token punctuation span zjson span
  • EasyPoiUtil导出工具

    span class token keyword package span span class token namespace com span class token punctuation span zjson span class
  • ffmpeg部署和springboot使用

    视频存储部署 一 环境安装 1 1 yasm安装 在编译ffmpeg时 xff0c 执行 configure xff0c 报出了如下错误 xff1a nasm yasm not found or too old Use disable x8
  • 【docker】安装clickhouse

    一 联网安装clickhouse 1 为了方便安装 xff0c 将clickhouse的工作目录和数据目录都在同一个目录下 xff0c 在home下创建目录 mkdir clickhouse cd clickhouse 创建日志 配置文件
  • springboot整合mybatis-plus、clickhouse、mysql多数据源

    springboot的多数据源有多种方式 xff0c 本文按照指定不同dao mapper xml的方式来实现访问不同的数据源 这样的好处是不用注解去切换数据源 1 引入驱动 span class token generics span c
  • linux中的oracle启动和关闭

    一 启动数据库实例 span class token number 1 span 切换到oracle用户 su span class token operator span oracle span class token number 2
  • Source Insight 中文注释为乱码解决办法(完美解决,一键搞定)

    我从网上查了一堆解决办法 xff0c 但是都是2017年以前的解决方案 xff0c 并且都是针对于source insight 3 5及以下版本的 xff0c 目前SI软件版本都到4 0了 xff0c 应该有新方法出现了 干货 xff1a
  • BigDecimal计算工具类

    方便以后大家使用 span class token keyword import span span class token namespace java span class token punctuation span math spa
  • 安装、使用mongodb踩过的坑

    轻松一下 没用分布式架构之前 xff0c 你只有一个问题 xff1a 并发性能不足 用了分布式架构 xff0c 多出了一堆问题 xff1a 数据如何同步 主键如何产生 如何熔断 分布式事务如何处理 使用mongodb踩过的坑 今天对安装 x
  • JS使用总结:简单标签赋值和取值:span等;实时触发事件

    JS使用总结 简单标签赋值和取值 xff1a span等 xff1b 实时触发事件 xff1b 了解一下简单标签赋值和取值实时触发事件代码 了解一下 作为后台开发 xff0c 今天使用了前端的技术 xff0c 做一个总结 xff1b 包括两
  • 自定义生产省略号

    span class hljs attribute overflow span span class hljs value hidden span span class hljs attribute text overflow span s

随机推荐