【问题标题】:Alternative to use of udevadm command使用 udevadm 命令的替代方法
【发布时间】:2016-06-21 14:36:56
【问题描述】:

我有一个脚本,它使用命令 udevadm 来获取有关 /dev 设备的信息,我的脚本所需的信息是 ID_SERIAL 值,因为我想过滤代表特定产品的 tty's 设备连接到 USB 端口。问题是,环境中存在的 udevm 的 udevadm 版本是 128,而这个版本的 udevadm 没有可用的查询 property。如何以其他方式过滤连接在 USB 端口上的设备?

编辑 1 Command.sh

#!/bin/bash

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev);do
    (syspath="${sysdevpath%/dev}";
     echo "syspath = $syspath";
     devname="$(udevadm info -q name -p $syspath)";
     [[ "$devname" == "bus/"* ]]&& continue;
     echo "Passou";
     eval "$(udevadm info -q property --export -p $syspath)";
     [[ -z "$ID_SERIAL" ]] && continue;
     temporario=${ID_SERIAL,,};
     if [[ $temporario == *"ManufacturerName"* ]];
     then 
        echo "/dev/$devname";
     fi);
done;

【问题讨论】:

  • 我认为您无法在您的环境中更新 udev 是否​​正确?
  • 如果您无法让udevadm 准确过滤您想要的方式,也许您可​​以使用其他工具,例如grepsedawk 来进一步过滤来自的输出udevadm.
  • 无法更新环境。
  • 编辑您的 Q 以包含您的 udevadm cmd 的小样本输出。这假定 ID_SERIAL 值在该输出中。如果不是,那么您需要找到另一个可以返回该值的工具。祝你好运。

标签: linux usb udev


【解决方案1】:

使用dmesg的输出不是更方便吗?当我插入我的串口时,我得到这个输出:

[332144.226566] usb 1-2.1.2: new full-speed USB device number 6 using ehci-pci
[332144.302766] usb 1-2.1.2: New USB device found, idVendor=067b, idProduct=2303
[332144.302770] usb 1-2.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[332144.512664] usbcore: registered new interface driver usbserial
[332144.512679] usbcore: registered new interface driver usbserial_generic
[332144.512691] usbserial: USB Serial support registered for generic
[332144.522042] usbcore: registered new interface driver pl2303
[332144.522060] usbserial: USB Serial support registered for pl2303
[332144.522090] pl2303 1-2.1.2:1.0: pl2303 converter detected
[332144.523681] usb 1-2.1.2: pl2303 converter now attached to ttyUSB0

最后一行提到ttyUSB0,如果您也想识别删除事件,可以将其与1-2.1.2 关联:

[332342.342682] usb 1-2.1.2: USB disconnect, device number 6
[332342.342891] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[332342.342903] pl2303 1-2.1.2:1.0: device disconnected

另一种可能性是使用inotify 系统,在插入驱动器时您会收到通知。检查this article on how to use the system

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 2022-07-17
    • 2011-12-15
    • 2013-03-14
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多