【问题标题】:How can I detect a USB port being used for charging in Linux?如何检测在 Linux 中用于充电的 USB 端口?
【发布时间】:2017-08-27 08:15:03
【问题描述】:

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

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

  • udevadm monitor 监控 udev 事件。
  • /var/log等中跟踪系统日志
  • /dev 目录上为新设备运行 inotify 监视
  • /sys/bus/usb/devices 中寻找任何线索

是否可以检测到我的简单充电线被插入/拔出?凭直觉,我认为没有(因为电缆纯粹用于充电,并且没有驱动程序),但是我观察到当我插入电缆时,RPI 的内置 LED 会闪烁红色。

【问题讨论】:

    标签: linux usb udev sysfs


    【解决方案1】:

    无需大量努力(硬件或黑客),不会。

    您观察到的红色 LED 闪烁是树莓派的电源监视器,表明当电流开始流向您的配件时电压突然下降。此 LED 指示电压(电能)已短暂低于稳定水平,可能导致系统不稳定。

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

    【讨论】:

      【解决方案2】:

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

       lsusb -v
      

      或过滤:

       lsusb -v |grep 'Bus\|MaxPower'
      

      通过这个命令,我可以看到每个 USB 使用了多少电量以及连接了哪个设备。

      【讨论】:

        猜你喜欢
        • 2012-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-29
        • 1970-01-01
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多