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

时间:2017-08-27 08:15:03

标签: linux usb udev sysfs

我正在使用Raspberry Pi 3 Model B上的USB端口通过USB磁性充电线为附件充电。我想检测何时插入电缆并从Pi 中删除

我一直在插入并移除此电缆,并寻找在Linux上检测到的任何痕迹。到目前为止,我已经尝试过:

  • udevadm monitor监控udev事件。
  • /var/log
  • 中拖尾系统日志
  • 在新设备的/dev目录上运行inotify监视
  • /sys/bus/usb/devices中查找任何线索

是否可以检测到插入/取出的简单充电线?通过直觉,我认为没有(因为电缆纯粹用于充电,并且没有驱动器),但是我发现当我插入电缆时RPI会使其内置LED闪烁。

2 个答案:

答案 0 :(得分:3)

没有太大的努力(硬件或黑客),没有。

您观察到的红色LED闪光是Pi的功率监视器,表示当电流开始流向您的附件时电压突然下降。该LED指示电压(电能)已短暂下降至稳定水平以下,并可能导致系统不稳定。

由于连接是纯粹充电(没有与Pi交换USB数据),操作系统不知道设备是否已连接。您可以构建一个外部电流测量电路来检测外围电源的功率,但在电子组件交换中这样的问题会更好。

答案 1 :(得分:1)

我认为你可以用lsusb工具做到这一点:

 lsusb -v

或过滤:

 lsusb -v |grep 'Bus\|MaxPower'

使用此命令,我可以看到每个USB使用多少电量以及连接的设备。