Le LAN9512 est le périphérique matériel qui contrôle les ports Ethernet et USB. Cette puce consomme près de 200 mA et il sera très utile de la désactiver pour économiser de l’énergie lorsque je n’ai pas besoin d’USB ou d’Ethernet. La fiche technique du LAN9512 explique certains états de l'appareil permettant d'économiser de l'énergie. Ces modes sont SUSPEND2, SUSPEND1 et SUSPEND0. Par conséquent, cela semble possible.
J'ai déjà trouvé une solution partielle:
echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower
va effectivement désactiver le périphérique et le réactiver avececho 0x1
le même fichier. Cependant, une fois que le périphérique a été arrêté et démarré un certain nombre de fois, il ne se réveillera pas avant le prochain redémarrage du système d'exploitation.
Existe-t-il une méthode pour désactiver le LAN9512 et le redémarrer de manière fiable? (Peut-être que je peux recharger un pilote qui contrôle le LAN9512?)
Motivation
Lorsqu'un modèle B de framboise B est inactif, il consomme 400 mA. Quand c'est stressé, 470mA. Lorsque le LAN9512 est désactivé, il consomme 200 mA au repos et 260 mA au stress.
Autres
- J'ai testé la fiabilité de la désactivation de la puce via "buspower" en utilisant un script qui désactive le LAN9512, tente de monter un périphérique USB pour vérifier l'activité et redémarre. Jusqu'à présent, le Raspberry Pi a redémarré 9222 fois sans erreur.
echo 1 > /sys/devices/platform/bcm2708_usb/bussuspend
Désactive le LAN9512, mais ne le réveille plus lorsque vous utilisezecho 0
le même fichier. Après l'avoir désactivé, le framboise pi devient extrêmement lent, signalant une charge moyenne allant jusqu'à 4.
la source
Réponses:
Après avoir expérimenté moi-même, j’ai fait ce qui suit:
Câble USB vers TTL / Débogage avec 5V via multimètre.
Le démarrage normal à l’écran de connexion avec seulement l’alimentation et le réseau connecté était d’environ 420-380Ma
J'ai d'abord désactivé le réseau via
/etc/init.d/networking stop
, puis la puce parecho 0 > /sys/devices/platform/bcm2708_usb/buspower
et effectivement, il est descendu à ~ 240MaJ'ai également réussi à cingler Google sans succès! (Ce qui est bon)
Je l'ai ensuite rallumé en renvoyant 1 à l'alimentation du bus et en exécutant la commande de démarrage du réseau. Et encore une fois j'étais de retour vers 370-420ma. Pinging google a ensuite travaillé.
J'ai ensuite mis cela dans un fichier SH qui a bouclé et qui a duré plus de 10 fois sans avoir besoin d'être redémarré. Dans votre commande, je pouvais le voir redémarrer à chaque fois, peu importe ce qui se passait, du fait que vous mettiez la commande de redémarrage en place.
Le code du test peut être trouvé @ Ubuntu Collez du code de redémarrage automatique.
Cela peut alors simplement être utilisé pour arrêter et démarrer. Vous pouvez faire la première partie en tant que commande d'arrêt et la deuxième partie en tant que commande de démarrage.
J'ai aussi rédigé un article complet sur ce @ mon blog
la source
La fonctionnalité de désactivation et d'activation de l'abonné LAN9512:
A été débogué sur les nouveaux noyaux et fonctionne maintenant parfaitement sans modifications. J'ai fait quelques scripts pour le tester.
Le premier objectif est de tester la désactivation via une fonctionnalité logicielle. Le script désactive le LAN9512 et tente de monter un périphérique USB. Si c'est le cas, le test échoue. Sinon, le test réussit. Enfin, redémarre et recommence. Le script est en cours d'exécution depuis quatre jours et a signalé 8039 redémarrages sans échec sur Raspbian 2013-9-25.
Le second script est destiné à tester la fonctionnalité d'activation. Tout d'abord, le script désactive le LAN9512. Puis attend quelques secondes pour laisser le pi reposer. Ensuite, il active le LAN9512 et enfin, il essaie d'exécuter la commande “lsusb”. Il répertorie tous les périphériques USB. Si le noyau peut reconnaître tous les périphériques USB, le LAN9512 fonctionne à nouveau. Sinon, le test a échoué. Le test a duré une semaine et a signalé 7209 boucles sans erreurs sur le Raspbian 2013-9-25 et 5374 boucles sur le Raspbian 2014-1-7.
Cerneaux et firmwares
Sur Raspbian 2014-1-7:
Noyau: Linux raspberrypi 3.10.25+ # 622 PREEMPT Vendredi 3 janvier 18:41:00 Firmware GNU / LINUX armv6l pour: b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (version récente)
Sur Raspbian 2013-9-25
Noyau: Linux raspberrypi 3.6.11+ # 538 PREEMPT Vendredi 30 août 20:42:08 BST 2013 firmware de GNU / LINUX: 4f9d19896166f46a3255801bc1834561bf092732 (clean) (release)
la source
Les réponses ci-dessus étaient correctes lorsqu'elles étaient proposées, mais à un moment donné en 2015, Raspbian a apporté des modifications et les utilisateurs intéressés ont dû rechercher les contrôles appropriés.
Mes remerciements à l'utilisateur Adrian! https://raspberrypi.stackexchange.com/users/37611/adrian
la source