如何找出哪个 USB-RS232 设备位于哪个 tty 上?

2024-03-01

我有两个基于相同 USB-RS232 芯片的不同 USB 设备。 当我将它们插入 USB 时,它们会安装到 /dev/ttyUSB0...3

我的问题是,在脚本中,我如何找出哪个脚本位于哪个 tty 上?

使用 lsusb 我可以区分它们:

$> lsusb | grep 0403:f850
Bus 004 Device 002: ID 0403:f850 Future Technology Devices International, Ltd
$> lsusb | grep 0403:6001
Bus 004 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

使用 dmesg 我可以知道它们安装在哪里:

$> dmesg | grep 'FTDI USB Serial Device converter now attached'
[36051.393350] usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB1
[36061.823513] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0

但“usb 4-1”似乎与“Bus 004 Device 002”不对应。

我是否可以假设“Bus 004 Device 001”始终是“USB 根集线器”,因此 dmesg 将从 1 开始计数,lsusb 从 2 开始计数?

或者您对如何将设备 ID 与安装点(在脚本内)相关联有其他建议吗?

我正在使用 Ubuntu 10.04 LTS。


使用 sysfs 查找更多信息:

$ ls /sys/bus/usb-serial/devices/ -ltrah

lrwxrwxrwx 1 root root 0 2012-02-07 22:17 ttyUSB0 -> ../../../devices/pci0000:00/0000:00:0f.4/usb2/2-2/2-2:1.0/ttyUSB0

$ ls -ltrad /sys//devices/pci0000:00/0000:00:0f.4/usb2/2-2/2-2:1.0/ttyUSB0
drwxr-xr-x 4 root root 0 2012-02-07 22:17 /sys//devices/pci0000:00/0000:00:0f.4/usb2/2-2/2-2:1.0/ttyUSB0

$ ls -ltrad /dev/ttyUSB0 
crw-rw---- 1 root dialout 188, 0 2012-02-01 00:17 /dev/ttyUSB0

当然,linked devices/...节点包含了很多信息

根据OP的评论添加信息:

如果移除/插入设备,设备数量会持续增长。lsusb -t可用于将设备编号与 USB 总线/端口关联起来。

然后,“lsusb -d devID”可以确定哪个设备位于哪个端口上。 最后 'ls /sys/bus/usb-serial/devices/ -ltrah' 将列出(按总线/端口)它的安装位置。

不是很方便,但它'works'

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

如何找出哪个 USB-RS232 设备位于哪个 tty 上? 的相关文章

  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • InstaPy:“错误,无法确定 64 位 Linux 的正确文件名”

    有人知道如何解决或解决这个问题吗 来自控制台的堆栈跟踪 执行后报告错误 InstaPy Version 0 6 9 Workspace in use home zanettra InstaPy Error unable to determi
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • Windows平台下C语言控制串口DTR和RTS引脚

    如何在windows平台上控制串口的DTR和RTS引脚 我希望通过升高或降低电压来对其进行位敲击或操作 您需要使用EscapeComm 函数 https learn microsoft com en us windows desktop a
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • Linux 桌面快捷方式和安装图标

    我需要添加什么到我的 spec文件来创建桌面快捷方式并在安装过程中为快捷方式分配一个图标 rpm 如果需要脚本 一个示例将非常有帮助 您在 Linux 下使用 desktop 文件作为图标 图标放置的位置取决于您使用的发行版和桌面环境 由于
  • 在 /dev/input/eventX 中写入事件需要哪些命令?

    我正在开发一个android需要将触摸事件发送到 dev input eventX 的应用程序 我知道C执行此类操作的代码结构如下 struct input event struct timeval time unsigned short
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案

随机推荐

  • 如何将静态字符串与 XML 字符串资源连接起来?

    我正在尝试将静态 硬编码 字符串与引用的字符串结合起来strings xml对于字符串数组项 目标是拥有一个动态指标列表 其中所有语言的数字都相同 但指标文本值可能会因语言而变化 如下所示
  • 我应该将 Eclipse 插件片段的测试代码放在哪里?

    我在搜索 Eclipse 插件测试代码放置位置的最佳实践时发现了几篇文章 他们中的大多数人建议像这样的片段this http rcpquickstart wordpress com 2007 06 20 unit testing plug
  • 如何在 MySQL LIKE 子句中使用用户变量?

    我正在尝试设置一些简单的 SQL 脚本来帮助进行一些短期数据库管理 因此 我正在设置变量以尝试更轻松地重用这些脚本 我遇到的问题具体与 LIKE 子句有关 SET email email protected cdn cgi l email
  • Ruby 是否使用 $stdout 来写入 put 和 return 的输出?

    我想知道 Ruby 使用输出流在命令行打印这些内容 irb main 001 0 gt a test gt test irb main 002 0 gt puts a test gt nil irb main 003 0 gt a gt t
  • 实例 ID 服务是否会在应用升级时启动回调 onTokenRefresh()?

    实例 ID 服务是否会在应用升级时启动回调 onTokenRefresh 参考doc https developers google com instance id 指出 令牌是唯一且安全的 但如果出现安全问题或用户在设备恢复期间卸载并重新
  • 编写 TypeScript 并为浏览器和节点生成一个库

    我有一个在 Node js 和浏览器中使用的内部库 它有许多文件 与 Grunt 任务和不同的序言连接在一起 一个用于浏览器 一个用于 Node browser dependent 3rd party libs like Mustache
  • 一个视图连接到多个模型

    我有以下问题 MyView它连接到两个视图 TaskModel and UserModel TaskModel id 1 taskName myTask creatorName myName creator id 2 UserModel i
  • 多键多值非确定性Python字典

    已经有一个多键字典 https pypi python org pypi multi key dict 1 0 2在 python 中 也是一个多值字典 我需要一个 python 字典 它既是 example probabilistical
  • JNI 错误(应用程序错误):本地引用表溢出(最大值 = 512)

    我正在尝试运行LibSVMAndroid分类 https github com spencerimp LibsvmAndroidClassification带有我自己的数据集的 Android 项目 它与已提供的数据集配合得很好 当我使用
  • 在 Docker 中使用 RabbitMQ 删除容器

    我尝试使用RabbitMQ启动Docker容器 结果下载了镜像 但容器没有启动 我在日志中收到以下消息 error RABBITMQ DEFAULT PASS is set but deprecated error RABBITMQ DEF
  • 如何将变量传递给“data-target=”角度2

    我正在使用 Angular 2 Typescript 我想创建一个切换折叠列表 这很简单 只需一个 id 即可data target但我循环遍历一个列表 所以我有动态 ID 名称 我想在我的中传递一个变量data target这样我就可以获
  • 如何在 AvalonEdit 中使文本居中?

    我正在使用 ICSharpCode 的 AvalonEdit 文本编辑器 并且有一个自定义 DocumentColorizingTransformer 我想将 ColorizeLine 内的某些文本行居中 这可能吗 我已经能够弄清楚如何以我
  • 创建 deps.edn 文件时出现问题

    大家 我决定完全重写这篇文章 以清晰的方式展示它 首先感谢大家的支持 我很感激 这是 The Clojure Workshop Packt 中的练习 我陷入了困境 我的 IDE 是 IntelliJ 我使用的是 Windows 练习 4 1
  • 正确的 chromium 浏览器品牌?

    我正在研究 Chromium 叉子 如何替换 Chromium 资源和应用程序包 资源 我发现有一天android branding res dirsgn 参数是介绍 https chromium googlesource com chro
  • 没有窗口对象存在 webpack nodejs

    我使用 webpack 和 babel 来编译我的 ecmascript 6 代码 一切正常 但如果我添加某些依赖项 例如 requests npm 包 这是我的文件 main js import os from os export cla
  • 在 Info.plist 中指定设备系列

    有没有一种方法可以仅根据 Info plist 中的键来指定设备系列 而不更改构建设置 我读过有关 UIDeviceFamily 在构建时自动添加到 Info plist 的信息 并且文档说我不应该手动添加此键 假设我无法使用 Xcode
  • Makefile 中 TARGET_ARCH 变量的用途是什么

    我注意到 Gnu Make 中的隐式规则是变量 TARGET ARCH 例如 LINK o LOADLIBES LDLIBS o LINK o CC LDFLAGS TARGET ARCH 我认为交叉编译需要这个变量 但我在 Gnu Mak
  • 使用带有绝对链接的 dompdf

    我正在使用标准 DOMPDF 代码来呈现现有网页 例如1 http jasss soc surrey ac uk 16 2 1 html dompdf new DOMPDF dompdf gt set base path artpath d
  • 将外部 CSS 转换为 Rails 中邮件的内联 CSS

    我正在尝试创建一个应用程序 该应用程序将发送样式繁重的电子邮件 并要求客户端工作 Google Gmail 除外 我研究了这个问题 看起来 Gmail 删除了外部文件中的 CSS 或嵌套在 style 标签中的 CSS 是否存在将样式从外部
  • 如何找出哪个 USB-RS232 设备位于哪个 tty 上?

    我有两个基于相同 USB RS232 芯片的不同 USB 设备 当我将它们插入 USB 时 它们会安装到 dev ttyUSB0 3 我的问题是 在脚本中 我如何找出哪个脚本位于哪个 tty 上 使用 lsusb 我可以区分它们 gt ls