O LAN9512 é o dispositivo de hardware que controla as portas Ethernet e USB. Esse chip consome quase 200mA e será muito útil desativá-lo para economizar energia quando não precisar de USB ou Ethernet. A folha de dados do LAN9512 explica alguns estados do dispositivo para economizar energia - esses modos são SUSPEND2, SUSPEND1 e SUSPEND0. Portanto, parece ser possível.
Eu já encontrei uma solução parcial:
echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower
efetivamente desabilitará o dispositivo e o ativará novamente comecho 0x1
o mesmo arquivo. No entanto, depois que o dispositivo for parado e iniciado um certo número de vezes, ele não será ativado novamente até a próxima reinicialização do sistema operacional.
Existe um método para desativar o LAN9512 e iniciá-lo novamente de maneira confiável? (Talvez eu possa recarregar algum driver que controla LAN9512?)
Motivação
Quando um modelo raspberry pi B está ocioso, ele consome 400 mA. Quando está estressado, 470mA. Quando o LAN9512 é desativado, ele consome 200mA em modo inativo e 260mA estressado.
Outras
- Eu testei a confiabilidade de desativar o chip através da "potência do barramento" usando um script que desativa o LAN9512, tenta montar um dispositivo USB para verificar a atividade e reinicializações. Até agora, o raspberry pi foi reinicializado 9222 vezes sem erros.
echo 1 > /sys/devices/platform/bcm2708_usb/bussuspend
Desativa o LAN9512 Mas não o reativará ao fazerecho 0
o mesmo arquivo. Depois de desativá-lo, o raspberry pi fica extremamente lento, relatando uma média de carga de até 4.
fonte
Respostas:
Depois de fazer algumas experiências, fiz o seguinte para experimentar:
Cabo USB para TTL / Debug com 5V via multímetro.
Inicialização normal na tela de login com apenas a energia e a rede conectadas foi de cerca de 420-380Ma
Primeiro desliguei a rede via
/etc/init.d/networking stop
e, em seguida, o chipecho 0 > /sys/devices/platform/bcm2708_usb/buspower
e, de fato, caiu para ~ 240MaEu também fui capaz de executar ping no google sem sucesso! (Qual é bom)
Em seguida, liguei novamente ecoando 1 na energia do barramento e executando o comando de inicialização da rede. E mais uma vez eu voltei para 370-420ma. O ping do google funcionou.
Em seguida, coloquei isso em um arquivo SH que fez um loop e durou mais de 10 vezes sem precisar ser reiniciado. No seu comando, eu podia vê-lo reiniciando toda vez, não importando o motivo de você colocar o comando reboot.
O código para o teste pode ser encontrado na pasta Ubuntu do código de reinicialização automática.
Isso pode simplesmente ser usado para parar e começar. Você poderia fazer a primeira parte como um comando de parada e a segunda parte como um comando de início.
Também fiz uma redação completa deste @ My Blog
fonte
O recurso de desativar e ativar o LAN9512 através de:
Foi depurado nos kernels mais recentes e agora está funcionando perfeitamente sem modificações. Eu criei alguns scripts para testá-lo.
O objetivo do primeiro é testar a desativação por meio do recurso de software. O script desativa o LAN9512 e tenta montar um dispositivo USB. Se puder, o teste falhará. Caso contrário, o teste será bem-sucedido. Finalmente, reinicie e comece novamente. O script está em execução há quatro dias e relatou 8039 reinicializações sem falhas no raspbian 2013-9-25.
O segundo script destina-se a testar o recurso de habilitação. Primeiro de tudo, o script desabilita o LAN9512. Aguarde alguns segundos para deixar o pi descansar. A seguir, habilita o LAN9512 e, finalmente, tenta executar o comando "lsusb". Ele lista todos os dispositivos USB. Se o kernel puder reconhecer todos os dispositivos USB, o LAN9512 estará funcionando novamente. Caso contrário, o teste falhou. O teste está em execução há uma semana e relatou 7209 loops sem erros no raspbian 2013-9-25 e 5374 loops no raspbian 2014-1-7.
Núcleos e firmwares
No raspbian 2014-1-7:
kernel: Linux raspberrypi 3.10.25+ # 622 PREEMPT Sex Jan 3 18:41:00 GMT 2014 armv6l firmware GNU / LINUX: b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (limpo) (versão)
No raspbian 2013-9-25
kernel: Linux raspberrypi 3.6.11+ # 538 PREEMPT Sex ago 30 20:42:08 BST 2013 armv61 firmware GNU / LINUX: 4f9d19896166f46a3255801bc1834561bf092732 (versão limpa)
fonte
As respostas acima estavam corretas quando oferecidas, mas em algum momento em 2015, o Raspbian fez alterações e os usuários interessados tiveram que procurar os controles relevantes.
Meus agradecimentos ao usuário Adrian! https://raspberrypi.stackexchange.com/users/37611/adrian
fonte