ubuntu中绑定USB串口的方法,包括同一型号的USB串口

本文介绍了在Ubuntu系统下如何通过udev规则和chmod命令绑定及管理USB串口设备,确保设备名的稳定性。详细讲述了通过文件创建链接规则和脚本创建链接规则两种方法,以及如何处理相同型号的USB设备。同时讲解了查看USB设备信息和udev规则的使用,帮助读者实现USB串口的精确控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

udev是通过内核产生设备名增加别名的方式来达到 不管设备连接的顺序而维持一个统一的设备名。内核通常会产生自定义的设备名,如sda1、sdb1等,但是udev可以通过设备的其他信息如总线 ,生产商等不同来区分不同的硬件设备。在/etc的 目录下。

例如 :ubuntu内核中,产生sda 设备名,可以通过制定 udev规则,让udev 除了产生/dev/sda/ 设备文件外, 另外创建 一个符号链接叫 /dev/name,这样在ros串口处理的程序中,就可以使用产生的新的设备名。


通过lsusb命令可以查看到所有外接usb的接口设备的描述列表,可以得到id product和id VENDOR的数值,来进行后续的绑定。ls /dev 可以查看所有 外接串口设备的名字列表。

所有制定的udev 规则最终 会在 /etc/ udev /rules.d 这个文件夹下面 。

通过芯片的特定码,来产生软链接别名

【方式一:通过文件创建链接规则】

1.创建文件

命令:sudo gedit /etc/udev/rules.d/ttyUSBLink.rules

2.根据查询的信息编写链接规则

上面的ATTRS{devpath} 为USB端口的固定物理编号, MODE:= 为修改权限,且生效之后不能被改变。

如果不绑定物理端口的话直接删掉那个即可,如果不是每次都要求插固定的端口,肯定得删掉。

使rules生效: 创建之后保存退出,重新插拔USB设备udev即可生效。以后无论按照什么顺序进行插入,都能准确地识别出设

<think>好的,我现在需要在Ubuntu系统中检测和查看USB串口设备。首先,我应该回忆一下以前学过的相关命令,或者查找资料。记得老师提到过几个命令,比如dmesg、lsusb,还有检查/dev目录下的设备文件。 首先,用户的问题是如何在Ubuntu中找到和查看USB串口设备。我需要分步骤来解答,确保每个步骤都正确。可能需要提到的命令包括dmesg,它用来查看内核日志,当插入USB设备时,内核会记录相关信息。然后是lsusb,这个命令可以列出所有连接的USB设备包括串口适配器。接下来是检查/dev目录下的ttyUSB*或者ttyACM*设备文件,这些通常是串口设备的节点。 另外,用户提到的参考内容里有关于固定USB设备名称的方法,比如绑定USB串口名,避免重启后设备名变化。不过用户当前的问题可能更偏向于检测和查看现有的设备,而不是绑定。但可能需要简要提及,如果有多个相同设备,如何区分它们,可能需要使用udev规则来固定名称,比如引用中的MyUSB1的例子。 接下来,需要确保回答的结构清晰,分步骤说明每个命令的用途和示例。例如,首先使用lsusb查看连接的USB设备,确认是否有对应的串口适配器。然后,插入设备后,使用dmesg | grep tty来过滤出相关的串口信息,找到新识别的tty设备。最后,检查/dev目录下的设备文件是否存在,如/dev/ttyUSB0或类似。 同时,需要注意用户提到的参考内容中的方法,比如通过绑定名称来避免设备名变化,这部分可以作为补充信息,说明如果设备名变化可能会影响程序,因此固定设备名是一个好的做法。但当前问题主要是检测和查看,所以这部分可能放在最后作为扩展。 还要注意是否需要验证每个步骤的正确性。例如,是否所有USB串口设备都会在/dev下显示为ttyUSB*?有些可能会是ttyACM*,比如某些Arduino设备。因此,可能需要提到这两种可能性。 另外,可能需要提到权限问题,比如普通用户是否有权限访问/dev/ttyUSB*设备,如果没有,可能需要加入dialout组或者使用sudo。 最后,生成相关问题,考虑用户可能接下来会问如何固定设备名称,如何配置udev规则,或者如何测试串口通信等。</think>在Ubuntu系统中,可通过以下步骤检测和查看USB串口设备: ### 1. **使用`lsusb`命令列出USB设备** 运行命令: ```bash lsusb ``` 输出会显示所有连接的USB设备,包含厂商ID和产品ID。若存在USB串口芯片(如CH340、CP2102等),会显示类似`ID 1a86:7523`的信息[^2]。 --- ### 2. **通过`dmesg`查看内核日志** 插入USB串口设备后,运行: ```bash dmesg | grep tty ``` 输出中会显示新识别的串口设备名称,如`ttyUSB0`或`ttyACM0`。例如: ``` [ 1234.567] usb 1-2: cp210x converter now attached to ttyUSB0 ``` --- ### 3. **检查`/dev`目录下的设备文件** 直接查看设备节点: ```bash ls /dev/ttyUSB* # 适用于大多数USB串口设备 ls /dev/ttyACM* # 适用于部分CDC-ACM设备(如Arduino) ``` 若设备存在,会显示类似`/dev/ttyUSB0`的路径。 --- ### 4. **绑定固定设备名(可选)** 若需避免设备名`ttyUSBx`随插拔顺序变化,可参考以下方法: - 创建udev规则文件: ```bash sudo nano /etc/udev/rules.d/99-usb-serial.rules ``` - 添加规则(以`ID 1a86:7523`为例): ``` SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="MyUSB1" ``` - 重启后设备名将固定为`/dev/MyUSB1`。 --- ### 权限问题处理 若普通用户无法访问设备,运行: ```bash sudo usermod -aG dialout $USER # 将当前用户加入dialout组 ``` 注销后重新登录生效。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值