Linux usb设备固定端口号

2023-10-29

一:/sys/bus/usb/devices/

  1. 信息显示如下
    在这里插入图片描述

  2. 1-0:1.0

    • 1:表示 1 号总线,或者说 1 号 Root Hub
    • 0:表示端口号
    • 1:表示配置号
    • 0:表示接口号
    • 命名规则:Root Hub-port:configuration.interface
  3. 1-1.1:1.0 or 1-1.2:1.0

    • 1:表示1号总线,或者说1号 Root Hub
    • 1:表示 Hub 连在 Root Hub 上的端口号
    • 1:表示设备连在 Hub 上的端口号
    • 1:表示配置号
    • 0:表示接口号

二:设备信息

在这里插入图片描述

  1. 设备种类
cat /sys/bus/usb/devices/1-1/bDeviceClass

在这里插入图片描述
09:表示为一个usb hub

#define USB_CLASS_PER_INTERFACE		0	/* for DeviceClass */
#define USB_CLASS_AUDIO			1
#define USB_CLASS_COMM			2
#define USB_CLASS_HID			3
#define USB_CLASS_PHYSICAL		5
#define USB_CLASS_STILL_IMAGE		6
#define USB_CLASS_PRINTER		7
#define USB_CLASS_MASS_STORAGE		8
#define USB_CLASS_HUB			9
#define USB_CLASS_CDC_DATA		0x0a
#define USB_CLASS_CSCID			0x0b	/* chip+ smart card */
#define USB_CLASS_CONTENT_SEC		0x0d	/* content security */
#define USB_CLASS_VIDEO			0x0e
#define USB_CLASS_WIRELESS_CONTROLLER	0xe0
#define USB_CLASS_MISC			0xef
#define USB_CLASS_APP_SPEC		0xfe
#define USB_CLASS_VENDOR_SPEC		0xff
  1. version usb协议版本
    在这里插入图片描述
    usb2.0 hub

  2. busnum & devnum
    在这里插入图片描述

  3. dev 主设备号:次设备号
    在这里插入图片描述

  4. bMaxPower 设备最大电流
    在这里插入图片描述

  5. idVendor(厂商 ID) & idProduct(产品 ID)
    在这里插入图片描述

  6. product 产品名称
    在这里插入图片描述

  7. bcdDevice 固件版本
    在这里插入图片描述

  8. speed 速率
    在这里插入图片描述

  9. uevent
    sysfs usb 设备的 uevent 是一个事件通知机制,表示当该 usb 设备在系统上被插入或拔出时,内核会发送一个事件通知给用户空间的系统进程,告知设备的状态变化。这个事件通知会包含一些关于设备的属性信息,例如设的厂商ID、产品ID、序列号等等,方便用户空间的应用程序进行设备管理和配置
    在这里插入图片描述

  10. bmAttributes
    大小为一字节,不同的位,表示不同的特性。

    • bit7 是保留的,必须为1。
    • bit6 表示供电方式:1 设备自供电;0 设备是总线供电的。
    • bit5 表示是否支持远程唤醒:1 支持远程唤醒;0 不支持远程唤醒。
    • bit0~4 是保留的,默认为0。
      在这里插入图片描述
  11. drivers_autoprobe
    drivers_autoprobe 是一个 sysfs 属性,用于在新插入 USB 设备时触发自动探测 USB 驱动程序。当将此属性设置为 1 时,内核将尝试自动加载适当的驱动程序,以便为任何新连接的 USB 设备进行配置。这可以节省手动 USB 设备所需的时间和精力。

三:固定usb设备名方法

根据连接在usb hub上的端口号区分。usb hub端口号是固定的。

  1. 查找需要固定的usb设备
#输入命令:ls /sys/class/tty/ttyUSB* -l,输出结果如下
lrwxrwxrwx root root 2017-08-01 13:40 ttyUSB0 -> …/…/devices/ff540000.usb/usb3/3-1/3-1.1/3-1.1:1.0/ttyUSB0/tty/ttyUSB0
lrwxrwxrwx root root 2017-08-01 13:43 ttyUSB1 -> …/…/devices/ff540000.usb/usb3/3-1/3-1.2/3-1.2:1.0/ttyUSB1/tty/ttyUSB1
  1. 添加规则
    终端输入:sudo vi /etc/udev/rules.d/10-local.rules,添加下面的内容(这句话是个模板,每固定一个设备把这句话复制一次,把开头的#号去掉,把KERNELS和SYMLINK改成自己想要的就可以了)。
#ACTION==“add”,KERNELS==“1-2:1.0”,SUBSYSTEMS==“usb”,MODE:=“0777”,SYMLINK+=“name”
ACTION==“add”,KERNELS==“3-1.1:1.0”,SUBSYSTEMS==“usb”,MODE:=“0777”,SYMLINK+=“my_serial0”
ACTION==“add”,KERNELS==“3-1.2:1.0”,SUBSYSTEMS==“usb”,MODE:=“0777”,SYMLINK+=“my_serial1”

KERNELS==“3-1.1:1.0”固定设备信息参考(第一章:第1小节)
SYMLINK+=“my_serial0” 固定名称

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

Linux usb设备固定端口号 的相关文章

  • Linux C++ 错误:未定义对“dlopen”的引用

    我在 Linux 上使用 C Eclipse 工作 并且想要使用一个库 Eclipse 向我显示一个错误 undefined reference to dlopen 你知道解决办法吗 这是我的代码 include
  • 内核驱动程序从用户空间读取正常,但写回始终为 0

    因此 我正在努力完成内核驱动程序编程 目前我正在尝试在应用程序和内核驱动程序之间构建简单的数据传输 我使用简单的字符设备作为这两者之间的链接 并且我已成功将数据传输到驱动程序 但我无法将有意义的数据返回到用户空间 内核驱动程序如下所示 in
  • Bash:检查是否给出了参数(例如是否有参数“-a”?)

    我有一个脚本 它应该接受 2 个参数 s 和 d 如果未给出 d 参数 我想删除我的调试文件 与 s 相同 如何检查 1 或 2 是否为 s 或 d 舒尔有两个参数 我可以做到 蛮力 if test 1 d test 2 d then rm
  • 如何告诉 mex 链接到 /usr/lib 中的 libstdc++.so.6 而不是 MATLAB 目录中的 libstdc++.so.6?

    现在 MATLAB 2012a 中的 mex 仅正式支持 gcc 4 4 6 但我想使用 gcc 4 7 风险自负 现在如果我直接用 mex 编译一些东西 它会抱怨 usr lib gcc i686 linux gnu 4 7 cc1plu
  • PIL 的 Image.show() 带来*两个*不同的查看器

    在 python shell 中处理图像时 我使用 image show 其中 image 是 Image 的实例 很久以前什么也没发生 但在定义了一个名为 xv 的 Mirage 符号链接后 我很高兴 最近几天 show 将显示 Imag
  • 如何将一个文本文件拆分为多个 *.txt 文件?

    我有一个文本文件file txt 12 MB 包含 something1 something2 something3 something4 有没有办法分开file txt分成 12 个 txt 文件 比方说file2 txt file3 t
  • 任何退出 bash 脚本但不退出终端的方法

    当我使用exitshell 脚本中的命令 该脚本将终止终端 提示符 有什么方法可以终止脚本然后停留在终端中吗 我的剧本run sh预计通过直接获取或从另一个脚本获取来执行 编辑 更具体地说 有两个脚本run2 sh as run sh ec
  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • bash while 循环的布尔表达式中的 -lt 意味着什么?

    我猜测它代表小于基于输出 但是我在哪里可以找到有关此语法的文档 bin bash COUNTER 0 while COUNTER lt 10 do echo The counter is COUNTER let COUNTER COUNTE
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String

随机推荐

  • Java一键授权方案 离线授权 日期授权 代码授权 代码混淆

    Java软件部署到客户端 有时没外网 有时需要对模块时效进行控制 但是通常一般性的lic号注册 很容易被破解 屏蔽 不能保证软件的版权和收益 中小型软件又不能再安全方面投入太大 这时该如何做授权功能呢 我现在向您介绍的是一套具体的授权加密方
  • Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by

    使用node js连接mysql数据库报如下错误 Error ER NOT SUPPORTED AUTH MODE Client does not support authentication protocol requested by s
  • 8、抽象类、接口、多态、向上转型、向下转型

    一 final关键字 1 可以修饰变量 方法 类 2 修饰变量时 变量的值不能再改变 成为一个常量 3 修饰方法时 被修饰的方法不能被修改 4 修饰类时 这个类不能被继承 并且类中的成员方法会隐式地被final修饰 5 当final修饰一个
  • stm32 ucos/ii移植,程序执行到OSStart()内部的OSStartHighRdy()语句时跑飞问题解决方法之一

    stm32 ucos ii移植 程序执行到OSStart 内部的OSStartHighRdy 语句时跑飞问题解决办法之一 网络上的一些解决办法 stm32程序遇到OSStartHang的问题解决方法总结 但并不适合我遇到的情况 我的情况是已
  • WebSocket服务端数据推送及心跳机制(Spring Boot + VUE)

    一 WebSocket简介 HTML5规范在传统的web交互基础上为我们带来了众多的新特性 随着web技术被广泛用于web APP的开发 这些新特性得以推广和使用 而websocket作为一种新的web通信技术具有巨大意义 WebSocke
  • android 倒计时 界面,Android实现倒计时结束后跳转页面功能

    前言 在开发中会经常用到倒计时这个功能 关于倒计时的实现 有疑问的朋友们可以参考这篇 https www jb51 net article 101807 htm 本文主要给大家介绍了关于Android倒计时结束跳转页面的相关内容 分享出来供
  • 部署k8s动态持久卷nfs报错如下:waiting for a volume to be created, either by external provisioner “gxf-nfs-storag

    报错如下 waiting for a volume to be created either by external provisioner gxf nfs storage or manually created by system adm
  • 使用UniFlash闪存编程工具为TM4C129x芯片写入MAC地址

    对MAC地址进行检查和编程 网络上的每个 NIC 网络接口控制器 都必须由一个 MAC 地址唯一标识 以便在网段内进行通信 MAC 地址是一个 48 位值 表示为两个十六进制数字的六个八位字节 MAC 地址主要由设备制造商来分配 前三个八位
  • IPsec 认证头协议(IPsec AH)--网络大典

    IPsec 认证头协议 IPsec AH 是 IPsec 体系结构中的一种主要协议 它为 IP 数据报提供无连接完整性与数据源认证 并提供保护以避免重播情况 一旦建立安全连接 接收方就可能会选择后一种服务 AH 尽可能为 IP 头和上层协议
  • 关于refid的使用

    关于refid的使用 首先定义一个id 然后通过refid通过id将之前定义的内容进行引用 这样适用于同一字符串被大量引用的时候应用 具体代码如下
  • 主线剧情01-ARM-IMX6ULL基础学习记录

    ARM i MX6ULL 基础学习记录 编辑整理 by Staok 本文大部分内容摘自 100ask imx6ull 开发板的配套资料 如 IMX6ULL裸机开发完全手册 等等 侵删 进行了精髓提取 方便日后查阅 过于基础的内容不会在此提及
  • 贵金属交易中做空操作注意事项

    贵金属投资项目流行的原因之一就是其囊括的种类多 这让不同的投资者都可以找到适合自己的投资项目 而且具体到贵金属交易的时候往往形式也很多 比如像伦敦金等产品都可以进行做空操作 而今天就来说说进行做空操作需要注意的地方 第一 提到贵金属交易中的
  • osgFBO(十四)PrerenderOrder的使用

    由于前面是简单的demo 所以不用管渲染次序 然而 实际项目中 会出现多种渲染方式 这时候就要用到 camera gt setRenderOrder osg Camera PRE RENDER 还要加上具体次序 比如 采样摄像机设为2 处理
  • 以太网数据格式与封装解封——以太网基础02

    我们在上一文中介绍了以太网5层模型 这一节我想学习一下以太网数据封装与解封的知识 了解以太网数据是如何传输的 一 数据封装 当我们应用程序用TCP传输数据的时候 数据被送入协议栈中 然后逐个通过每一层 知道最后到物理层数据转换成比特流 送入
  • Qt中对文件读写操作

    Qt中自己定义一套对文件的读写操作 QFile 常用的读写模式如下 QIODevice ReadOnly 文件以只读的形式打开 QIODevice WriteOnly 文件以写的形式打开 该方式写入的新内容会覆盖掉之前的内容 QIODevi
  • STM32 usart 问题笔记

    1 USART 手册上给的基础配置源码有误 应该为 USART InitStructure USART BaudRate 9600 USART InitStructure USART WordLength USART WordLength
  • 大数据测试入门介绍

    目录 1 什么是大数据测试 2 大数据的关键技术 3 大数据测试的策略有哪些 4 大数据测试都有哪些测试类型 5 数据测试方案流程 6 大数据测试的挑战 7 大数据测试工具 1 什么是大数据测试 测试大数据应用程序更多的是验证其数据处理 当
  • ubuntu学习笔记(慢慢补充)

    ubuntu中更新python环境笔记 前提 基本上安装的ubuntu系统都会自带python3或者其他编程的语言环境 一下操作只是让原有的软件进行升级 更新当前python版本和下载相应依赖 1 sudo apt get update s
  • 数据库服务器系统的 研发,数据库服务器系统的 研发

    数据库服务器系统的 研发 内容精选 换一换 云备份 Cloud Backup and Recovery 为云内的弹性云服务器 Elastic Cloud Server ECS 云耀云服务器 Hyper Elastic Cloud Serve
  • Linux usb设备固定端口号

    Linux usb设备固定端口号 一 sys bus usb devices 二 设备信息 三 固定usb设备名方法 一 sys bus usb devices 信息显示如下 1 0 1 0 1 表示 1 号总线 或者说 1 号 Root