【问题标题】:How to turn USB port power on and off in Raspberry PI 4如何在 Raspberry PI 4 中打开和关闭 USB 端口电源
【发布时间】:2020-05-03 11:31:49
【问题描述】:

在 Raspberry PI 3B+ 上,打开和打开四个 USB 端口的电源非常简单。只需将“0”写入/sys/devices/platform/soc/3f980000.usb/buspower 即可关闭电源,写入“1”即可开启电源。

相同的方法不适用于 Raspberry PI 4B、4GB(“.usb”之前的十六进制数字不同,这不是问题)。我也尝试过uhubctlhub-ctl,但都没有成功。我使用 USB 功率计测量端口上的电压。它没有改变。 Un a PI 3B+ 它按预期变化。

PI 4 是否支持在软件中关闭和打开 USB 电源?如果有,该怎么做?或者是否有某个地方需要修复才能使其工作的错误?我在 Pi 3B+ 和 Pi 4 上都使用最新的 Rapbian。

【问题讨论】:

  • 在这个 SO 问题中提到了一个使用 /sys/bus/usb/drivers/usb/unbind 的通用选项:stackoverflow.com/questions/18765725/… 不确定 Pi 4 是否在硬件中具有此功能。从技术上讲,它不应该给设备断电,而只是解除绑定驱动程序。这可能会为您节省一些能量。
  • uhubctl 作者在这里。确实如此,只需从 master 分支构建

标签: raspberry-pi raspberry-pi4


【解决方案1】:

是的,uhubctl 支持 RPi4B,我最近有 added 支持它 - 你需要使用 uhubctl 版本 2.4.0 或更高版本(或从 master 分支构建它)。还需要使用sudo rpi-eeprom-update 更新USB 固件才能使电源切换真正起作用。

请注意,您错过了使用 sysfs 方法关闭 RPi3B+ 上的 USB - 使用 uhubctl 您可以控制所有 4 个端口,或独立控制其中的 2 个。 RPi4B 仅支持一次关闭所有端口。

【讨论】:

  • 谢谢。最新的 USB 固件和最新的 uhubctl 解决了这个问题。 /sys/devices/platform/soc/3f980000.usb/buspower 在固件更新后不再存在并且 /sys/bus/usb/drivers/usb/unbind 没有(如上面的 Kamiccolo 所指出的)关闭 USB 电源.
  • 感谢@JørgenFrøjkKjærsgaard 的确认。如果这解决了您的问题,请考虑接受此答案:-)
  • 这看起来很有趣 - 谢谢。但是有一个问题:刚才在我的 RPi 4 安装中没有 man page。我查看了您 GitHub 站点上的 README,但它似乎没有解决几个基本问​​题:如何关闭端口电源,然后再打开?
  • eeprom更新(rpi-eeprom包版本11.0)后,我可以再次通过echo '1-1' > /sys/bus/usb/drivers/usb/bind关闭电源。
  • @Hermann 在 Pi 4 上您只是使用 echo to usb bind 并且 USB 集线器上的所有电源都关闭了?我试过这个没有运气。你做了什么别的吗(我的 rpi-eprom 是最新的)?
【解决方案2】:

就我在 GitHub 上阅读的 Raspberry Pi 和 Linux 问题而言,似乎在 2019 年 7 月发布了针对 uhubctl 的错误修复。我指的是补丁:mvp/uhubctl@4aae44c。它应该合并到master。所以……

另外要记住的是,RRi 4B 硬件似乎只支持“联动电源切换”,这意味着......您只能打开和关闭所有 USB 端口。不是每一个都特别。

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 2010-11-12
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 2013-10-02
    相关资源
    最近更新 更多