当前位置: 首页 > news >正文

Linux 查找 /sys/bus/usb/devices 对应串口文件

简短不看版本:

本篇文章在于如何通过 lsusb -t 查找到 /sys/bus/usb/devices 目录下对应的usb串口目录

/sys/bus/usb/devices 下目录命名规则为:Bus-Port:Config.Interface

因此,得到 Bus、Port 编号即可知道差不多。

 

正文

lsusb -t 得到以下内容

/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=vhci_hcd/8p, 480M
    |__ Port 001: Dev 028, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=vhci_hcd/8p, 5000M

ls /sys/bus/usb/devices 得到以下内容

1-0:1.0  1-1  1-1:1.0  2-0:1.0  usb1  usb2

其中哪一个是最匹配cp210x的?

 

回答:

根据你提供的输出,最匹配 cp210x 的是 1-1:1.0

以下是详细分析:

  1. lsusb -t 显示

    |__ Port 001: Dev 028, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M
    • 这条信息表明:在 Bus 001(480M,即 USB 2.0)的 Port 001 上,有一个设备(Dev 028)的接口 0(If 0)使用的是 cp210x 驱动。

  2. ls /sys/bus/usb/devices 显示

    1-0:1.0  1-1  1-1:1.0  2-0:1.0  usb1  usb2
    • 我们需要找到与上面 lsusb -t 中描述的“Bus 001, Port 001”相对应的目录。

    • 命名规则Bus-Port:Config.Interface

    • “Bus 001, Port 001” 对应的是 1-1

    • 而 lsusb -t 显示的是该设备的 接口 0,它对应的目录就是 1-1:1.0(其中 1.0 表示配置 1,接口 0)。

因此,最直接对应 cp210x 设备接口的目录是 1-1:1.0

补充说明

  • 1-1 是该 USB 设备的设备级目录,包含了该设备的所有信息(如供应商ID、产品ID等)。

  • 1-1:1.0 是该设备第一个接口的目录,正是这个接口绑定了 cp210x 驱动。你可以通过以下命令验证:

    cat /sys/bus/usb/devices/1-1:1.0/interface
    # 可能会输出类似 "CP210x UART Bridge" 的内容

    或者查看驱动链接:

    ls -l /sys/bus/usb/devices/1-1:1.0/driver
    # 应该指向 /sys/bus/usb/drivers/cp210x

总结

  • 设备级路径/sys/bus/usb/devices/1-1

  • 接口级路径(最匹配 cp210x)/sys/bus/usb/devices/1-1:1.0

 
 

扩展:USB的设备级和接口级

很好的问题!这是理解 USB 设备结构的关键概念。让我用简单的方式解释:

类比:电脑主机和外设

想象一个 USB 集线器(就像电脑主机):

  • 设备级 = 整个电脑主机(包含所有组件)

  • 接口级 = 电脑上的各个接口(USB口、HDMI口、网口等)

具体到 USB 设备

1. 设备级(Device Level)

  • 代表整个物理设备(比如一个 USB 串口转换器、U盘、鼠标等)

  • 包含设备的基本信息

    • 供应商ID(Vendor ID)

    • 产品ID(Product ID)

    • 序列号

    • 设备描述

    • 电源管理信息

  • 在 sysfs 中的目录名通常是 Bus-Port 格式(如 1-1

  • 一个物理设备只有一个设备级目录

2. 接口级(Interface Level)

  • 代表设备的一个功能接口

  • 一个 USB 设备可以有多个接口(功能)

  • 每个接口:

    • 有自己独立的驱动程序

    • 提供特定的功能

    • 在 sysfs 中的目录名是 Bus-Port:Config.Interface 格式(如 1-1:1.0

以你的 cp210x 为例

物理设备:一个 USB 转串口芯片

  • 设备级(1-1

    • 包含:这是 Silicon Labs 的 CP210x 芯片,序列号是 xxx,需要 100mA 电流等

    • 路径:/sys/bus/usb/devices/1-1

  • 接口级(1-1:1.0

    • 这是设备的串口功能接口

    • 绑定了 cp210x 驱动程序

    • 路径:/sys/bus/usb/devices/1-1:1.0

    • 内容示例:

       
      interface      # 接口名称:"CP210x UART Bridge"
      driver -> ../../../../bus/usb/drivers/cp210x  # 指向驱动
      ttyUSB0        # 关联的串口设备

更复杂的例子:USB 网卡+读卡器二合一设备

假设一个 USB 设备同时提供:

  1. 以太网功能

  2. SD 读卡器功能

在系统中会显示为:

设备级:2-3(整个物理设备)
接口级:2-3:1.0 → 绑定 r8152 驱动(网卡功能)2-3:1.1 → 绑定 usb-storage 驱动(读卡器功能)

为什么这样设计?

  1. 灵活性:一个设备可以提供多种功能

  2. 驱动分离:不同功能可以使用最适合的驱动程序

  3. 资源管理:可以独立控制每个接口的电源、状态等

  4. 热插拔:可以单独处理每个接口的连接/断开

查看示例

你可以通过以下命令查看两者的区别:

# 查看设备级信息
ls -la /sys/bus/usb/devices/1-1/# 查看接口级信息
ls -la /sys/bus/usb/devices/1-1:1.0/# 查看设备的所有接口
ls -d /sys/bus/usb/devices/1-1:*
总结对比
特性 设备级 接口级
代表什么 整个物理设备 设备的一个功能
数量 每个设备1个 每个设备可有多个
驱动绑定 无(设备本身无驱动) 有(每个接口有独立驱动)
目录格式 Bus-Port(如 1-1 Bus-Port:Config.Interface(如 1-1:1.0
包含信息 设备身份信息(VID/PID)、电源管理等等 功能特定信息
示例路径 /sys/bus/usb/devices/1-1 /sys/bus/usb/devices/1-1:1.0
 
 
 
 
http://www.jsqmd.com/news/280507/

相关文章:

  • YOLOv8改进 - 注意力机制 | CoTAttention (Contextual Transformer Attention) 上下文转换器注意力通过静态与动态上下文协同建模增强视觉表征
  • 【大数据毕设源码分享】基于python+Hadoop+数据可视化的租房数据分析系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • C#/.NET/.NET Core技术前沿周刊 | 第 66 期(2026年1.12-1.18)
  • 实用指南:清楚易懂的红黑树讲解
  • Java计算机毕设之基于springboot的元宇宙平台的房屋租赁管理系统基于springboot + vue房屋租赁管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • 迈向意义共治的智能文明:一份关于AI时代新范式的框架性阐述
  • 学习日记之狂神说Java
  • [note] 本地12+16G极限部署 Qwen3-Coder-25B 搭配Continue插件实现代码补全
  • Java计算机毕设之基于springboot的婚庆公司服务平台的设计与实现婚庆摄影(完整前后端代码+说明文档+LW,调试定制等)
  • Java毕设项目:基于springboot的婚庆公司服务平台的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 【性能测试】14_JMeter _JMeter测试报告
  • 【毕业设计】基于springboot的实验设备借用平台的设计与实现 实验室设备租赁系统(源码+文档+远程调试,全bao定制等)
  • Java毕设选题推荐:基于SpringBoot+Vue+MySQL 房屋租赁管理系统平台基于springboot的元宇宙平台的房屋租赁管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 2026必备!10个AI论文工具,助本科生轻松写论文!
  • 【课程设计/毕业设计】基于springboot+vue的婚庆公司服务网站管理系统基于springboot的婚庆公司服务平台的设计与实现【附源码、数据库、万字文档】
  • K8s新手入门:从“Pod创建”到“服务暴露”,3个案例理解容器编排
  • 【旋转式多线激光雷达】旋转式多线激光雷达工作原理
  • ClickHouse在农业大数据分析中的创新应用
  • agentscope记忆模块使用和部署agent-memory-server记忆服务
  • 【毕业设计】基于springboot的婚庆公司服务平台的设计与实现(源码+文档+远程调试,全bao定制等)
  • 在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。 - 指南
  • AI Agent核心技术揭秘:概念辨析、商业化路径与实践指南,值得收藏
  • Java程序员转型大模型开发全攻略:月薪30K+的AI工程师成长路径_程序员转行AI大模型教程(非常详细)
  • docker部署及基本要点
  • 无线网络仿真:无线网络基础_(19).网络协议栈仿真
  • 【大数据毕设全套源码+文档】基于Python+数据可视化的黑龙江旅游景点数据分析系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 【大数据毕设全套源码+文档】基于springboot+大数据的音乐数据分析系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 资治通鉴对于大赦天下的评价
  • docker安装部署PostgreSQL带有pgvector扩展向量数据(高维数组)
  • 【大数据毕设全套源码+文档】基于springboot+Hadoop的手机销售数据分析系统的设计与实现(丰富项目+远程调试+讲解+定制)