El LAN9512 es el dispositivo de hardware que controla los puertos Ethernet y USB. Este chip consume casi 200 mA, y será muy útil deshabilitarlo para ahorrar energía cuando no necesite USB o Ethernet. La hoja de datos LAN9512 explica algunos estados del dispositivo para ahorrar energía: estos modos son SUSPEND2, SUSPEND1 y SUSPEND0. Por lo tanto, parece ser posible.
Ya he encontrado una solución parcial:
echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower
deshabilitará efectivamente el dispositivo y lo reactivará conecho 0x1
el mismo archivo. Sin embargo, una vez que el dispositivo se haya detenido e iniciado un cierto número de veces, no se volverá a activar hasta el próximo reinicio del sistema operativo.
¿Existe algún método para deshabilitar LAN9512 y volver a iniciarlo de manera confiable? (¿Tal vez puedo volver a cargar algún controlador que controla LAN9512?)
Motivación
Cuando una frambuesa pi modelo B está inactiva, consume 400 mA. Cuando está estresado, 470mA. Cuando el LAN9512 está desactivada, consume 200 mA en reposo y 260mA subrayó.
Otros
- He probado la fiabilidad de deshabilitar el chip a través de "buspower" mediante el uso de un script que deshabilita el LAN9512, intenta montar un dispositivo usb para verificar la actividad y reinicia. Hasta ahora, la frambuesa pi ha reiniciado 9222 veces sin errores.
echo 1 > /sys/devices/platform/bcm2708_usb/bussuspend
Desactiva el LAN9512 Pero no se despierta de nuevo cuando se haceecho 0
en el mismo archivo. Después de su desactivación, el pi frambuesa va extremadamente lento informar de un seguimiento promedio de carga a 4.
fuente
Respuestas:
Después de experimentar un poco por mi cuenta, hice lo siguiente para experimentar:
Cable USB a TTL / Debug con 5V a través del multímetro.
El arranque normal en la pantalla de inicio de sesión con solo la alimentación y la red conectadas fue de aproximadamente 420-380Ma
Primero apagué la red a través
/etc/init.d/networking stop
y luego el chipecho 0 > /sys/devices/platform/bcm2708_usb/buspower
y, de hecho, se redujo a ~ 240Ma¡También pude hacer ping a Google sin éxito! (Lo que es bueno)
Luego lo volví a encender haciendo eco 1 a la alimentación del bus y ejecutando el comando de inicio de red. Y una vez más volví a alrededor de 370-420ma. Pinging google luego funcionó.
Luego puse esto en un archivo SH que se repitió y duró más de 10 veces sin necesidad de reiniciar. En su comando, pude ver que se reinicia cada vez que pase lo que pase debido a que usted puso el comando de reinicio.
El código para la prueba se puede encontrar en Ubuntu Paste del código de reinicio automático.
Esto simplemente se puede usar para detener y comenzar. Puede hacer la primera parte como un comando de detención y la segunda parte como un comando de inicio.
También hice una redacción completa de este @ My Blog
fuente
La característica de deshabilitar y habilitar el canal LAN9512:
Se ha depurado en los núcleos más nuevos y ahora funciona perfectamente sin modificaciones. He hecho un par de guiones para probarlo.
El propósito del primero es probar la desactivación a través de la función de software. El script deshabilita el LAN9512 e intenta montar un dispositivo USB. Si puede, entonces la prueba falla. Si no, entonces la prueba tiene éxito. Finalmente reinicia y comienza de nuevo. El script ha estado ejecutándose durante cuatro días y ha informado 8039 reinicios sin fallas en raspbian 2013-9-25.
El segundo script está destinado a probar la función de habilitación. En primer lugar, el script deshabilita el LAN9512. Luego espera unos segundos para dejar que el pi descanse. A continuación, activa el LAN9512 y finalmente intenta ejecutar el comando "lsusb". Enumera todos los dispositivos USB. Si el núcleo puede reconocer todos los dispositivos USB, entonces el LAN9512 está funcionando nuevamente. Si no, la prueba ha fallado. La prueba se ha estado ejecutando durante una semana e informó 7209 bucles sin errores en raspbian 2013-9-25 y 5374 bucles en raspbian 2014-1-7.
Granos y firmwares
En raspbian 2014-1-7:
kernel: Linux raspberrypi 3.10.25+ # 622 PREEMPT Vie 3 de enero 18:41:00 GMT 2014 armv6l GNU / LINUX firmware: b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (limpio) (lanzamiento)
En raspbian 2013-9-25
kernel: Linux raspberrypi 3.6.11+ # 538 PREEMPT Vie 30 de agosto 20:42:08 BST 2013 armv61 GNU / LINUX firmware: 4f9d19896166f46a3255801bc1834561bf092732 (limpio) (lanzamiento)
fuente
Estas respuestas anteriores fueron correctas cuando se ofrecieron, pero en algún momento de 2015, Raspbian realizó cambios y los usuarios interesados tuvieron que buscar los controles relevantes.
¡Gracias al usuario Adrian! https://raspberrypi.stackexchange.com/users/37611/adrian
fuente