LAN9512是控制以太网和USB端口的硬件设备。该芯片消耗几乎200mA的电流,当我不需要USB或以太网时,禁用它会非常有用。 LAN9512数据手册解释了器件的某些节能状态-这些模式为SUSPEND2,SUSPEND1和SUSPEND0。因此,似乎有可能。

我已经找到了部分解决方案:



echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower将有效地禁用设备并唤醒它再次用echo 0x1到同一文件。但是,一旦设备停止并启动了一定的次数,它就不会再次唤醒,直到下次操作系统重新启动。再可靠吗? (也许我可以重新加载一些控制LAN9512的驱动程序吗?)承受压力时为470mA。禁用LAN9512时,它在空闲状态下消耗200mA的电流并承受260mA的压力。使用禁用LAN9512的脚本,尝试安装USB设备以检查活动并重新启动。到目前为止,树莓派已经重新启动了9222次,而没有发生错误。禁用它后,Raspberry Pi变得极其缓慢,报告平均负载最高为4。


评论

只是出于好奇;使用上述命令之一禁用电源时,功耗会降低吗?

是!总线功率和总线暂挂文件都将功耗降低200mA。当树莓派pi空闲时,它消耗400 mA。承受压力时为470mA。禁用芯片后,空闲时消耗200mA电流,承受260mA压力。

非常好。谢谢。抱歉,我还是帮不上忙

只是好奇:如果禁用USB和以太网,如何发送唤醒命令?定期进行工作或睡觉后?

为了简单起见,我更喜欢睡觉。调试时,我使用“回声0x0> / sys / devices / platform / bcm2708_usb / buspower;睡眠2;回声0x1> / sys / devices / platform / bcm2708_usb / buspower;睡眠30;重新启动”。因此,如果USB不唤醒,它将自动重启。 “ sleep 2”只是给硬件一些时间做出反应。

#1 楼

经过自己的实验后,我做了以下实验:

USB至TTL /通过万用表用5V调试电缆。和网络连接大约是420-380Ma无法成功ping谷歌! (这很好)

然后我通过将1回显到总线电源并运行network start命令来重新打开它。
我又回到了370-420ma。然后对Google Ping Ping起作用。在您的命令中,无论您输入多少重新启动命令,我都能看到它每次都重新启动。
然后可以简单地将其用于停止和启动。您可以将其第一部分作为停止命令,而将第二部分作为启动命令。

我也对@ My Blog进行了完整的编写。

评论


这就是问题所在。由于LAN9512停止工作,因此迟早需要重新启动。我正在寻找不需要重新启动的解决方案。 (在我的脚本上,只有在键盘停止工作时,我才会每次都重新引导,因为在重新引导之前,我试图手动杀死该脚本。在键盘起作用的情况下,可以使用ctrl + c杀死它。

– aleixrocks
13年7月30日在10:20

就像我说的那样,最后我在一个恒定的循环中对它进行了50次以上的测试,每个循环都为网络Ping工作。也许只是需要再次插入键盘,或者需要重置USB?就像其他人所说的那样,它并不是为此而设计的。如果可以的话。因此,模型A的原因之一

–瑞安·沃尔姆斯利(Ryan Walmsley)
13年7月30日在16:42

就我而言,在我执行脚本的所有时间里,它最多可持续10个循环。我尝试再次插入USB,但仍然无法正常工作。不知道为什么这种差异可能是我的树莓派。如果其他人可以尝试,那就太好了。

– aleixrocks
13年7月31日在10:38

#2 楼

禁用和启用LAN9512槽的功能:


echo 0x0> / sys / devices / platform / bcm2708_usb / buspower(禁用)
echo 0x1> / sys / devices / platform / bcm2708_usb / buspower(启用)

已在较新的内核上进行了调试,现在无需修改即可完美运行。我编写了一些脚本对其进行测试。

第一个脚本的目的是通过软件功能测试禁用。该脚本将禁用LAN9512,并尝试安装USB设备。如果可以,则测试失败。如果不是,则测试成功。最后重新启动,然后重新开始。该脚本已经运行了四天,并且在raspbian 2013-9-25上报告了8039次重新启动,没有失败。

第二个脚本旨在测试启用功能。首先,该脚本禁用LAN9512。然后等待几秒钟让pi休息。接下来,它启用LAN9512,最后尝试执行“ lsusb”命令。它列出了所有USB设备。如果内核可以识别所有USB设备,则LAN9512可以再次工作。如果不是,则测试失败。该测试已经运行了一周,并且在raspbian 2013-9-25上报告了7209个循环,而在raspbian 2014-1-7上报告了5374循环。

内核和固件

在raspbian 2014-1-7上:

内核:Linux raspberrypi 3.10.25+#622 PREEMPT Fri Jan 3 3:41:00 GMT 2014 armv6l GNU / LINUX
固件:b00bb3ae73bd2799df0e938b7a5f17f45303fb53( clean)(release)

在raspbian上2013-9-25

内核:Linux raspberrypi 3.6.11+#538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv61 GNU / LINUX
固件:4f9d19896166f46a3255801bc1834561bf092732(干净)(发布)

评论


“禁用和启用LAN9512的功能已​​经在较新的内核上进行了调试。”您能否报告所见过的内核和固件允许数千次成功的睡眠/唤醒循环?谢谢!我对迈向更容易入睡的Pi感兴趣!

– Tai Viinikka
2014年2月9日在1:05

#3 楼

以上提供的这些答案是正确的,但是在2015年的某个时候,Raspbian进行了更改,有兴趣的用户不得不去寻找相关的控件。

Off:  echo 0x0 > /sys/devices/platform/soc/20980000.usb/buspower   
 On:  echo 0x1 > /sys/devices/platform/soc/20980000.usb/buspower


感谢用户Adrian!
https://raspberrypi.stackexchange.com/users/37611/adrian

评论


嗨,泰!您能为感兴趣的用户提供一些参考吗?您正在使用哪个树莓派?

– aleixrocks
18年4月23日在10:03