我已经找到了部分解决方案:
echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower
将有效地禁用设备并唤醒它再次用echo 0x1
到同一文件。但是,一旦设备停止并启动了一定的次数,它就不会再次唤醒,直到下次操作系统重新启动。再可靠吗? (也许我可以重新加载一些控制LAN9512的驱动程序吗?)承受压力时为470mA。禁用LAN9512时,它在空闲状态下消耗200mA的电流并承受260mA的压力。使用禁用LAN9512的脚本,尝试安装USB设备以检查活动并重新启动。到目前为止,树莓派已经重新启动了9222次,而没有发生错误。禁用它后,Raspberry Pi变得极其缓慢,报告平均负载最高为4。#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
评论
只是出于好奇;使用上述命令之一禁用电源时,功耗会降低吗?是!总线功率和总线暂挂文件都将功耗降低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”只是给硬件一些时间做出反应。