在c ++中接收usb设备插入的通知/事件/信号

时间:2013-01-03 18:17:57

标签: c++ c linux usb

我一直在寻找,但我一直无法找到这个问题的答案。我正在尝试接收特定USB设备的连接通知。这是我所知道的:

我正在运行linux内核版本3.2。我有识别usb设备所需的id。我已经创建了一个内核模块,用于读取和写入设备。内核模块已经过测试并且工作正常。内核模块创建/ dev / Component#。

我正在尝试编写一个通知USB设备连接事件的程序,因此不需要遍历/ dev / Component#并检查文件是否存在。我希望有一个信号/通知/事件已经存在。我见过libusb,但我的理解是你真的只是创建一个读取所有设备的循环。我考虑过添加一个系统调用,但重新编译内核并不是一个真正的选择。

非常感谢任何帮助。

谢谢,

SgtSquatlow

1 个答案:

答案 0 :(得分:0)

使用dbus有一个解决方案。首先,你应该安装库libdbus-glib(在Debian / Ubuntu上,包名为libdbus-glib-1-dev),如果尚未安装的话。然后你可以达到程序here的高峰,编译程序如下:

gcc -o dbus-usb dbus-usb.c $(pkg-config --libs --cflags dbus-glib-1)