【问题标题】:How to know what block device correnponds to the lsusb output?如何知道 lsusb 输出对应的块设备是什么?
【发布时间】:2015-06-06 19:58:46
【问题描述】:

我需要在usb pendrives中提供有关制造商公司的lsusb信息,但我不知道如何将它与块设备链接。

我正在使用 dbus 和 python 获取有关系统中连接的 pendrive 的所有信息,但 DriveVendor 和 DriveModel 与使用 lsusb 显示的制造商公司不对应。

udevadm info 提供了很多信息,但也没有制造商公司。

也许这个问题措辞不好,最好这样: 如何让 pendrive 的制造商知道它的 /dev/ 名称......或类似的东西。

【问题讨论】:

    标签: python bash usb device lsusb


    【解决方案1】:

    转到/sys/block/<name>,这将是一个符号链接,类似于:

    /sys/block/sdf -> ../devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.4/3-1.4:1.0/host9/target9:0:0/9:0:0:0/block/sdf
    

    然后进入那个目录,在sucessive parents中,你会发现很多包含有趣信息的文件。

    在我的特定示例中,您要求的数据将位于目录中:

    /sys/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.4
    

    在那里您可以找到文件manufacturerproductidVendoridProduct

    【讨论】:

    • 所有笔式驱动器的目录都相同吗?
    • @GeaPlanet:不完全是,这是我的随身碟。该方法适用于任何设备,但您必须从block 增加一个目录的确切数量,以及直到/sys 之前剩余的目录可能会有所不同。特别是如果您将 USB 集线器放在中间。当然,数字(3-1.4)也会有所不同。
    • 那么,有没有什么办法可以自动完成呢?
    • @GeaPlanet:您正在使用 Python,一次只向上一个目录,直到找到一个包含文件 idVendor 的目录,您就完成了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2016-11-15
    • 1970-01-01
    • 2018-01-16
    相关资源
    最近更新 更多