在Linux中如何检测USB端口是否用于充电?

3
我正在使用树莓派3型B的USB端口通过USB磁力充电线充电配件。我想检测电缆何时被插入和从树莓派中拔出。
到目前为止,我已经尝试了以下操作:监视udev事件通过“udevadm monitor”,在/var/log等中跟踪系统日志,对/dev目录运行inotify watch以查找新设备,以及在/sys/bus/usb/devices中寻找任何线索。
是否可能检测到我简单的充电线被插入/拔出?直觉上来说不可能(因为该电缆仅用于充电,没有驱动程序),但是当我插入电缆时,我观察到RPI会闪烁其内置LED红色。
2个回答

4

没有大量努力(硬件或黑客)的情况下,不行。

你看到的红色LED闪烁是Pi的电源监视器指示突然电压下降,因为电流开始流向你的附件。这个LED指示电压(电能)已经短暂地下降到稳定水平以下,系统的不稳定可能会导致此现象。

由于连接仅用于充电(未与Pi交换USB数据),操作系统不知道设备已连接。您可以构建一个外部电流测量电路来检测外围设备的功率消耗,但这样的问题最好在电子堆栈交换中提出。


1
我认为您可以使用lsusb工具来完成它:
 lsusb -v

或者使用过滤器:

 lsusb -v |grep 'Bus\|MaxPower'

使用此命令,我可以查看每个 USB 使用的功率以及连接的设备。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接