【问题标题】:Collect all connected devices on linux收集linux上所有连接的设备
【发布时间】:2018-08-29 08:26:46
【问题描述】:

我正在尝试编写一个组件来收集有关已连接/附加设备的数据。

我的组件应该可以在 Linux 和 Windows 上运行。 目前,我通过查询 Win32_PnPEntity 在 Windows 机器上成功地做到了这一点。

我正在寻找一种方法来以编程方式收集有关 Linux 上所有连接设备(即 USB 设备、磁盘、蓝牙等)的数据。

在网上搜索后, 我没有找到任何解决方案来获取所有这些信息。

正如我所说,在 windows 中我可以查询 Win32_pnpentity, 有没有办法在 Linux 中做同样的事情? (我宁愿不使用实用程序,例如 lshw 等...)

谢谢, 阿米特。

【问题讨论】:

  • 您可以使用 libusb 获得在 Windows 和 Linux 上同样运行良好的跨平台界面,或者在 /sys/bus/usb 中钓鱼。
  • 没有一个单一的要求。要深入了解,请查看 lshw 工具的来源。

标签: linux linux-kernel usb linux-device-driver linux-development


【解决方案1】:

libusb 提供examples/listdevs.c,并且此代码应该在 Windows 和 Linux 上同样运行良好。

或者,您可以简单地在/sys/bus/usb/devices 中四处寻找。例如,1-21-4(一个数字、一个破折号和一个数字)等条目代表整个连接的设备,这些目录包含代表设备的 manufacturerproduct 文件。

对于我想广泛分发的任何内容,我都会使用 libusb 方法。如果您正在编写内部拥有的代码,那么目录方法应该可以很好地工作。对界面的更改应该很少而且相差甚远。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    • 2013-10-13
    相关资源
    最近更新 更多