收集Linux上所有已连接的设备

时间:2018-08-29 08:26:46

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

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

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

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

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

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

谢谢, 阿密特。

1 个答案:

答案 0 :(得分:-1)

libusb提供了examples/listdevs.c,并且此代码在Windows和Linux上应能很好地运行。

或者,您可以简单地在/sys/bus/usb/devices中四处浏览。例如,诸如1-21-4(数字,破折号和数字)之类的条目代表整个连接的设备,并且这些目录包含manufacturerproduct文件,分别表示设备。

对于想要广泛分发的任何内容,我都会使用libusb方法。如果您正在执行内部拥有的代码,则目录方法应该很好用。对界面的更改应该很少而且相差很远。