如何检测Linux中用于充电的USB端口?
问题描述:
我正在使用Raspberry Pi 3 B型上的USB端口通过USB充磁电缆给附件充电。我想要检测电缆何时插入并从Pi中移除。如何检测Linux中用于充电的USB端口?
我一直在插入和删除此电缆,并寻找在Linux上检测到的任何痕迹。到目前为止,我已经尝试过:
- 通过
udevadm monitor
监控udev事件。 - 尾矿系统日志中
/var/log
等 - 在
/dev
目录对新设备 - 在
/sys/bus/usb/devices
四处寻找任何线索
运行inotify的手表是否可以检测我的简单的充电电缆被插入/删除?直觉我会认为没有(因为电缆纯粹用于充电,并且没有驱动器),但是我观察到,当我插入电缆时,RPI闪烁其内置LED红色。
答
没有显著的努力(硬件或黑客),号
红色LED闪光灯,你观察的是用于PI表示突然电压降电流功率监视器开始流向你的附件。此LED指示电压(电能)已短暂降至稳定水平以下,并可能导致系统不稳定。
由于连接是纯充电的(没有与Pi交换USB数据),操作系统不知道设备已连接。您可以建立一个外部电流测量电路来检测外围电源的功率,但这样的问题在电子堆叠交换中会更好。
答
我认为你CAND用的lsusb工具做到这一点:
lsusb -v
或过滤用:
lsusb -v |grep 'Bus\|MaxPower'
使用此命令我可以看到每个USB多大的权力是usign和设备已连接。