c - 如何将 lsusb 设备的结果链接到/dev/ttyUSB*

标签 c bash hyperlink tty lsusb

我有 USB 产品的供应商和产品代码: 0403:6001

我想知道如何轻松地将 lsusb 命令的结果与 /dev/ttyUSB* 上的设备确定联系起来

lsusb 给我

Bus 001 Device 004: ID 065a:a001 First device 

Bus 001 Device 003: ID 0403:6001 Second device FT232 USB-Serial (UART) 

Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我怎么知道这个设备是在 /dev/ttyUSB0 还是 1 或 2 如果我的 PC 上有多个 USB 设备

提前致谢

背景定义: 每次的配置都不一样

USB 设备可以插入或拔出,​​其他设备也可以...

最佳答案

假设你有 udev:

shopt -s nullglob
for i in /dev/ttyUSB*; do 
  udevadm info -r -q all "$i" | awk -F= '
     /DEVNAME/{d=$2}
     /ID_VENDOR_ID/{v=$2}
     /ID_MODEL_ID/{m=$2}
     d&&v&&m{print d,v":"m;d=v=m=""}
  '
done

udevadm 是获取USB设备所有信息的命令。 awk 命令只是过滤 USB 路径和类。

关于c - 如何将 lsusb 设备的结果链接到/dev/ttyUSB*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58132133/

相关文章:

c - 在 pci 设备驱动程序中实现读/写 file_operations

c - C 中的函数需要有类型吗?

linux - 为什么 `ls` 每行列出多个文件,而 `ls pipe/redirect` 每行只列出 1 个文件?

html - 我可以使用什么 CSS 来更改单个链接悬停的颜色而不更改其他链接?

c - C中不可复制的结构?

bash - 使用 bash 将一行中的字符串分配给变量

python - 如何在 Bash 脚本中激活 virtualenv

javascript - 悬停在链接上时的新图像

html - 添加重定向到电话链接

C++ 结构声明 collect2 : ld returned 1 exit status