有两个以上的USB设备,他们的Vendor ID和Product ID都一样,如何指定对应的usb插口和/dev/ttyUSB的序号?

2023-05-16

如果有两个以上的USB设备,他们的Vendor ID和Product ID都一样,那么无法通过Vendor ID和Product ID来区分它们。需要采取其他方式来指定对应的USB插口和/dev/ttyUSB的序号。有以下两条思路:

1,通过设备的序列号(Serial Number)来区分它们。每个USB设备都有一个唯一的序列号,可以在设备的属性中找到。可以通过在udev规则中设置SYMLINK选项来为每个设备指定一个独特的符号链接名,从而将其与/dev/ttyUSB的特定序号关联起来。

2,在插入USB设备时,手动将其插入到特定的USB插口中。然后可以通过udev规则中的ATTRS选项来匹配设备的属性,以便将其与特定的/dev/ttyUSB序号关联起来。例如,可以使用ATTRS{serial}属性来匹配设备的序列号。

需要注意的是,这种方法需要手动操作USB插口,一旦设备被插入到不同的插口中,它们的/dev/ttyUSB序号可能会发生变化。因此,最好将每个设备插入到固定的USB插口中,以确保它们始终与相同的/dev/ttyUSB序号关联。

具体如何指定某个物理上usb插口为给定的/dev/ttyUSB序号

要将特定的物理USB插口与给定的/dev/ttyUSB序号绑定,可以使用udev规则。

首先,需要确定要绑定的USB设备的Vendor ID 和 Product ID,以及设备的序列号(Serial Number),可以使用lsusb命令查看:

$ lsusb
Bus 001 Device 003: ID 0c45:7603 Microdia USB Camera (Asus F3SA notebook integrated webcam)
Bus 001 Device 002: ID 064e:a101 Suyin Corp. Acer CrystalEye Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

将要绑定的USB设备插入到要绑定的物理USB插口中。

创建一个udev规则文件,例如/etc/udev/rules.d/99-usb-serial.rules:

$ sudo vi /etc/udev/rules.d/99-usb-serial.rules

在规则文件中添加以下内容,将设备的Vendor ID、Product ID替换成实际的值,将ATTRS{devnum}替换为要绑定的物理USB插口的编号(可以使用lsusb -t命令查看):

SUBSYSTEM=="tty", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="xxxx", ATTRS{devnum}=="xx", SYMLINK+="ttyUSB0"

其中,SUBSYSTEM=="tty"表示只对tty设备进行匹配,ATTRS{idVendor}和ATTRS{idProduct}分别指定设备的Vendor ID和Product ID,ATTRS{devnum}指定设备所在的物理USB插口编号,SYMLINK+="ttyUSB0"表示将匹配的设备链接到/dev/ttyUSB0。

重载udev规则,使其生效:

$ sudo udevadm control --reload-rules

重新插入设备,检查设备是否被正确地链接到/dev/ttyUSB0:

$ ls -l /dev/ttyUSB0
lrwxrwxrwx 1 root root 15 Jul 28 10:35 /dev/ttyUSB0 -> ttyACM0

如果设备被正确地链接到/dev/ttyUSB0,那么就可以使用这个设备了。如果需要绑定多个设备,可以创建多个规则文件,每个文件为一个设备指定一个唯一的链接名称。

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

有两个以上的USB设备,他们的Vendor ID和Product ID都一样,如何指定对应的usb插口和/dev/ttyUSB的序号? 的相关文章

  • 2016年小结 2017年展望

    转载请标明出处 xff1a http blog csdn net junzaivip article details 54231935 xff0c 本文出自 junzaivip博客 每个人的世界里有的不止是光鲜 xff0c 其实还有更多别人
  • 如何将本地已有的项目加入git版本管理

    本文地址 xff1a https blog csdn net junzaivip article details 82626584 如果自己已经新建的一个项目 xff0c 暂时没有加入项目管理 xff0c 且名称不变 xff0c 如何加入
  • 基于github搭建自己的个人博客

    今天一时兴起 xff0c 看见别人使用的github io搭建了属于自己的个人博客 xff0c 我也使用github搭建一个自己的博客系统 xff1b 步骤一 xff1a 创建一个自己的github账号 xff1b xff08 略 xff0
  • ES6基本用法

    ES6基本用法 字符串的基本用法 let junzai 61 34 史慧君 34 let blog 61 34 淘宝多的是 xff0c 都是正版 xff0c 放心买 学习字符串 34 let blog 61 96 淘宝多的是 xff0c 都
  • Active MQ C++实现通讯记录

    Active MQ C 43 43 实现通讯 背景知识 xff1a ActiveMQ是一个易于使用的消息中间件 消息中间件 我们简单的介绍一下消息中间件 xff0c 对它有一个基本认识就好 xff0c 消息中间件 xff08 MOM xff
  • Node升级到最新版本

    检查目前的版本 xff1a localhost shihuijun node v v8 9 3 清除node js的cache 不确定有没有必要 localhost shihuijun sudo npm cache clean f Pass
  • Android Activity 重载 onConfigurationCangerd之屏幕方向改变

    一 onConfigurationChanged 触发时机 onConfigurationChanged 事件不只是屏幕方向改变才触发 xff0c 其他一些系统设置改变也可以触发 xff0c 例如 xff1a 打开软件盘 屏幕旋转 捕获事件
  • Android原生控件【TimePickerDialog】简单的使用

    xff08 1 xff09 首先在布局文件中定义一个Button以及对应的id xff08 2 xff09 当点击该按钮时 xff0c 代码如下 xff1a Calendar calendar 61 Calendar getInstance
  • 2019-08-10 homebrew更新更新慢的问题

    Homebrew 镜像使用帮助 直接在 路径下执行以下命令 替换现有上游 git C 34 brew repo 34 remote set url origin https mirrors tuna tsinghua edu cn git
  • contos安装ElasticSearch解决 bash: shasum: 未找到命令...

    centos需要运行一下 xff1a yum install perl Digest SHA
  • yum 无法使用的解决

    在网上看到的解决方法 xff0c 故保存于此 问题 xff1a Loaded plugins fastestmirror Determining fastest mirrors YumRepo Error All mirror URLs a
  • 报错-crontab -e 定时任务执行失败排查

    使用 crontab e 定时启动 jar 包服务失败 xff0c 排查过程如下 xff1a 1 查看 crontab 服务 span class token function crontab span l 陈列出了待执行任务列表 xff0
  • 生产者消费者问题

    目录 生产者消费者模型概述 生产者消费者模型的优点 1 解耦 2 并发性 3 忙闲不均 Linux系统下模拟实现 思路 代码实现 运行结果 生产者消费者模型概述 生产者消费者问题也称为有限缓冲问题 大概描述就是 xff1a 两个或更多的线程
  • Android指纹验证(BiometricPrompt)

    1 先导依赖 implementation span class token string 34 androidx biometric biometric 1 1 0 34 span 2 布局里写一个按钮方法 span class toke
  • 给定一个链表,判断链表中是否有环

    给定一个链表 xff0c 判断链表中是否有环 如果链表中有某个节点 xff0c 可以通过连续跟踪 next 指针再次到达 xff0c 则链表中存在环 为了表示给定链表中的环 xff0c 我们使用整数 pos 来表示链表尾连接到链表中的位置
  • qemu+kvm安装银河麒麟V10SP1 arm64 虚拟机

    qemu 43 kvm安装银河麒麟V10SP1 arm64 虚拟机 安装 qemu 工具准备下列文件创建虚拟硬盘执行启动命令通过VNC访问虚拟机安装 tigervnc连接 VNC 安装 qemu 工具 span class token fu
  • eclipse java底部输入框不见解决

    那是eclipse种的Console控制台 xff0c 重新显示方式有以下几种 xff1a 1 方法一 xff1a 快捷键 xff1a ALT 43 SHIFT 43 Q 2 方法二 xff1a 点击工具栏上的 window 输入reset
  • 人脸识别系列一 | 特征脸法

    前言 从这里开始 xff0c 我会不定期的更新一些人脸识别的有趣算法和小demo算法 xff0c 源码也会开放出来 xff0c 自己在学习的过程中希望也能帮助到公众号中对这方面感兴趣的小伙伴 xff0c 无论是从源码角度 xff0c 还是从
  • HDU 5656 CA Loves GCD dp,常数优化

    题目链接 xff1a http acm hdu edu cn showproblem php pid 61 5656 题意 xff1a 解法 xff1a span class hljs comment HDU 5656 span span
  • python爬虫抓包爬取NBA中文网近20年球员数据

    爬取NBA中文网近20年的球员数据 因为NBA中文网球员数据是通过json异步加载的 xff0c 所以需要抓包实现 import time import requests import json import csv 获取json文件里面的

随机推荐

  • 解决 centos7 创建服务 启动服务 报错control process exited, code=exited status=203

    部署srs gb28181 流媒体服务 时 xff0c 想添加到服务开机启动 xff0c 发现启动报错control process exited code 61 exited status 61 203 百度上找了好多资料 xff0c 全
  • ubuntu18.4使用xfce4安装VNC

    ubuntu18 4使用xfce4安装VNC 1 安装VNCServer sudo apt get install vnc4server 2 安装Xfce4 sudo apt get install xfce4 3 配置VNCServer密
  • 009:Python字符串的使用

    字符串的定义 所谓字符串 xff0c 就是由零个或多个字符组成的有限序列 xff0c 一般记为 xff1a 在Python程序中 xff0c 如果把单个或多个字符用单引号或者双引号包围起来 xff0c 就可以表示一个字符串 字符串中的字符可
  • BUG笔记:Win XP IE8下HTML Parsing Error: Unable to modify the parent container element before the child

    xff3b Bug描述 xff3d Windows XP IE8的某些版本下页面只显示一部分 xff0c 其余为空白 IE左下角有惊叹号报错标志 xff0c 点开后显示字符如下 xff1a HTML Parsing Error Unable
  • 日常积累

    1 如何对mysql数据库已存在表进行修改 2 查看mysql 数据库引擎 3 defunct进程 ps aux grep defunct 表示的是僵尸进程 4 检测进程打开的文件句柄数 xff1a lsof p pid 5 sg test
  • Linux新手入门:Unable to locate package错误解决办法

    最近刚开始接触 Linux xff0c 在虚拟机中装了个 Ubuntu xff0c 当前的版本是 Ubuntu 11 10 xff0c 装好后自然少不了安装一些软件 xff0c 在设置了软件的源后 xff0c 就开始了 sudo apt g
  • Android内存管理、监测剖析

    Android内存管理机制 xff1a Android内存管理主要有 xff1a LowMemory Killer机制 xff0c Ashmem xff0c PMEM ION及Native内存和Dalvik内存管理管理和JVM垃圾回收机制
  • gnome系统托盘协议spec(tray icon)

    最新spec xff1a http standards freedesktop org systemtray spec systemtray spec 0 3 html 系统 托盘协议规范 xff08 基于Xwindow的桌面环境 xff0
  • 阿里秋招面试

    1 请介绍项目 说了项目的分布式设计 服务器负载均衡和集群 redis xff08 缓存 同步 主从架构 xff09 session共享 ActiveMQ实现消息传递 2 项目中遇到的难点 3 问实习经历 4 问Java内存模型 5 讲一下
  • 在Ubuntu14.04.5上安装OpenCV2.4.9时遇到的各种问题

    从昨天到今天 首先 xff0c 我是按照这个博客进行安装的 xff0c 虽然他是以 xff2f xff50 xff45 xff4e xff43 xff56 3 0为样板但是安装基本都大同小异 xff0e xff08 博客地址 xff1a h
  • windows 下面 查找一个文件夹下的所有文件。整理版

    第一种方法 xff0c 可以再vc6 0上直接运行 include lt AFX H gt void FindFilesInOneFolder const std string folder in vector lt string gt a
  • 如何让Qtableview背景透明

    第一种 xff1a 直接编辑样式表 xff1a 第二种 xff1a 在代码中设置 xff1a ui tableView gt setStyleSheet 34 background color transparent 34
  • vs运行,f10失效

    在 Visual Studio 中 xff0c 按 F10 快捷键是用于单步执行代码的调试命令 如果该快捷键失效了 xff0c 可以尝试以下方法进行排除问题 xff1a 确保当前处于调试模式 xff1a 在 Visual Studio 的菜
  • 嵌入式linux应用开发入门纲要

    目录 C语言基础C 43 43 拓展linux基本操作io操作数据结构进程线程网络编程sqlite数据库实战项目 C语言基础 基本数据类型 条件语句 循环语句 函数 算术运算 逻辑运算 指针 结构体 联合体 枚举 malloc C 43 4
  • 全能扫地机器人的想法

    他要会自己充电 最好 xff0c 他是可以太阳能充电 xff0c 没电了 xff0c 他自己去晒太阳 他要自己规划路线 他最好我不在家的时候工作 他得会自己打包好垃圾 他要会拖地 我可以语音控制他 我叫他的时候 xff0c 他可以报告自身的
  • qt根据组件名字找到组件

    比方说知道一个在tw下QPushButton的ObjectNam为 34 ok 34 xff0c 那么它的组件指针就是 xff1a auto btn 61 ui gt tw gt findChild lt QPushButton gt 34
  • linux下zip加密压缩和解压

    对于目录a的无密码压缩 xff1a zip r aa zip aa 对于目录a的无密码j解压 xff1a unzip aa zip 对于目录a的加密压缩 xff0c 密码为123456 xff1a zip rP 123456 a zip a
  • SESSION 的数据保存在哪里呢?

    SESSION 的数据保存在哪里呢 xff1f 当然是在服务器端 xff0c 但不是保存在内存中 xff0c 而是保存在文件或数据库中 默认情况下 xff0c php ini 中设置的 SESSION 保存方式是 files xff08 s
  • 在ubuntu20.04安装vscode

    在PC上安装 照以下步骤在Ubuntu 20 04上安装VS Code xff1a 打开终端 添加Microsoft的软件包存储库到APT包管理器中 xff0c 输入以下命令 xff1a curl https packages micros
  • 有两个以上的USB设备,他们的Vendor ID和Product ID都一样,如何指定对应的usb插口和/dev/ttyUSB的序号?

    如果有两个以上的USB设备 xff0c 他们的Vendor ID和Product ID都一样 xff0c 那么无法通过Vendor ID和Product ID来区分它们 需要采取其他方式来指定对应的USB插口和 dev ttyUSB的序号