检测 USB 小工具状态的变化

检测 USB 小工具状态的变化

问题:如何从小工具本身检测小工具何时连接到主机?

背景:g_mass_storageLinux 内核模块可用于通过 USB OTG 端口提供大容量存储设备。我想使用它来允许通过 USB 将文件传输到运行 Linux 和此模块的设备。

不幸的是,这并不直接支持我的模块,客户端和主机都访问存储最多可能是不稳定的。但我可以通过控制 Linux 机器(USB 客户端)来避免这种情况,以便在未连接 USB 主机时仅从存储中读取或写入。

一种非常幼稚的解决方案是解析dmesg输出。这至少清楚地告诉我它何时插入,但不告诉我何时移除。

我的研究表明,其中某个地方/sys/有一个小工具状态标志,看到这个链,但我不确定在哪里。

相反,将小工具插入 Linux 机器,我知道我可以使用udev,但udev监视器似乎没有说明小工具本身的小工具状态。

答案1

您可以尝试查看 /sys/class/udc/YOUR_UDC/state

也可以看看https://www.kernel.org/doc/Documentation/ABI/stable/sysfs-class-udc有关 sysfs API 的更多详细信息。

相关内容