如何检测USB驱动程序启用/禁用

时间:2019-08-29 19:11:34

标签: c++ c linux usb

我们在FPGA上有USB设备,可以通过设置一个位来启用和禁用它。一旦启用设备,将需要一些时间(不到1秒)来检测USB是否已启用。因此,启用该位并检查/dev/路径后,我立即找不到我的设备。 USB驱动程序成功加载且USB可以使用时,有什么方法可以获取事件?

以下是启用端口时获得的控制台输出。

[  101.285945] usb 1-1.1: new high-speed USB device number 5 using ci_hdrc
[  101.386462] usb-storage 1-1.1:1.0: USB Mass Storage device detected
[  101.395559] scsi host0: usb-storage 1-1.1:1.0
[  102.470375] scsi 0:0:0:0: Direct-Access SanDisk Cruzer Blade 8.02 PQ: 0 ANSI: 0 CCS
[  102.502029] sd 0:0:0:0: [sda] 7856127 512-byte logical blocks: (4.02 GB/3.75 GiB)
[  102.503125] sd 0:0:0:0: [sda] Write Protect is off
[  102.504547] sd 0:0:0:0: [sda] No Caching mode page found
[  102.504555] sd 0:0:0:0: [sda] Assuming drive cache: write through

我想监视以上事件,有什么方法可以监视USB驱动程序状态?

1 个答案:

答案 0 :(得分:1)

您可以使用udevdm实用程序来监视事件,如下所示

udevadm monitor --subsystem-match=usb