我们在 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驱动状态吗?
最佳答案
您可以使用 udevdm 实用程序来监视事件,如下所示
udevadm monitor --subsystem-match=usb
关于c++ - 如何检测 USB 驱动程序启用/禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57716520/