C 嵌入式USB小工具设备中的USB主机热插拔检测

C 嵌入式USB小工具设备中的USB主机热插拔检测,c,linux,embedded,usb,embedded-linux,C,Linux,Embedded,Usb,Embedded Linux,我们正在开发一种运行Linux的嵌入式设备,它需要充当usb串行小工具,并连接到android手机,以进行不同类型的数据传输。为了启动与主机usb(android手机)的通信,我需要检测usb主机何时连接到设备。我开始了解编写udev规则以便在usb主机插入/删除上运行可执行文件,但我们已经有了一个主C程序来管理设备的所有主要功能。我将在这个程序中运行一个线程,负责这个通信。是否有任何方法可以通过此线程接收USB热插拔事件。我真的试图避免在这个线程中使用循环,这样它就不会占用CPU。那么,有什么

我们正在开发一种运行Linux的嵌入式设备,它需要充当usb串行小工具,并连接到android手机,以进行不同类型的数据传输。为了启动与主机usb(android手机)的通信,我需要检测usb主机何时连接到设备。我开始了解编写udev规则以便在usb主机插入/删除上运行可执行文件,但我们已经有了一个主C程序来管理设备的所有主要功能。我将在这个程序中运行一个线程,负责这个通信。是否有任何方法可以通过此线程接收USB热插拔事件。我真的试图避免在这个线程中使用循环,这样它就不会占用CPU。那么,有什么方法可以接收USB热插拔事件吗

根据USB协议启动通信。您的小工具可以通过使用ConfigFS简单地构造。无论何时连接电缆,它都会在内核内自动完成所有初始化。为什么您需要单独的程序来执行此操作?@poseidon我想您需要dbus库来检测usb热插拔事件。请看一下这篇文章:它可能会有所帮助。dbus库可以在运行linux的usb小工具设备上使用吗?通信是根据usb协议启动的。您的小工具可以通过使用ConfigFS简单地构造。无论何时连接电缆,它都会在内核内自动完成所有初始化。为什么您需要单独的程序来执行此操作?@poseidon我想您需要dbus库来检测usb热插拔事件。请看一下这篇文章:它可能会有所帮助。dbus库可以在运行linux的usb小工具设备上使用吗?