Das LAN9512 ist das Hardwaregerät, das die Ethernet- und USB-Anschlüsse steuert. Dieser Chip verbraucht fast 200 mA und es ist sehr nützlich, ihn zu deaktivieren, um Energie zu sparen, wenn ich weder USB noch Ethernet benötige. Das LAN9512-Datenblatt erläutert einige Zustände des Geräts, um Energie zu sparen. Diese Modi sind SUSPEND2, SUSPEND1 und SUSPEND0. Daher scheint es möglich zu sein.
Ich habe bereits eine Teillösung gefunden:
echo 0x0 > /sys/devices/platform/bcm2708_usb/buspower
wird das Gerät effektiv deaktivieren und mitecho 0x1
der gleichen Datei wieder aufwecken . Sobald das Gerät jedoch einige Male gestoppt und gestartet wurde, wird es erst beim nächsten Neustart des Betriebssystems wieder aktiviert.
Gibt es eine Methode, um LAN9512 zu deaktivieren und es zuverlässig neu zu starten? (Kann ich möglicherweise einen Treiber neu laden, der LAN9512 steuert?)
Motivation
Wenn ein Himbeer-Pi-Modell B im Leerlauf ist, verbraucht es 400 mA. Wenn es gestresst ist, 470mA. Wenn das LAN9512 deaktiviert ist, verbraucht es im Leerlauf 200 mA und ist überlastet mit 260 mA.
Andere
- Ich habe die Funktionsfähigkeit des Deaktivierens des Chips durch "Buspower" mit einem Skript getestet, das das LAN9512 deaktiviert, versucht, ein USB-Gerät zu aktivieren, um auf Aktivität zu prüfen, und einen Neustart durchzuführen. Bis jetzt hat der Himbeer-Pi 9222-mal ohne Fehler neu gestartet.
echo 1 > /sys/devices/platform/bcm2708_usb/bussuspend
Deaktiviert das LAN9512, weckt es jedoch nicht erneut, wennecho 0
dieselbe Datei verwendet wird. Nach dem Deaktivieren wird der Himbeer-Pi extrem langsam und gibt einen Lastdurchschnitt von bis zu 4 an.
quelle
Antworten:
Nachdem ich einige Experimente selbst gemacht habe, habe ich Folgendes gemacht, um zu experimentieren:
USB zu TTL / Debug Kabel mit 5V über Multimeter.
Der normale Start beim Login-Bildschirm, bei dem nur die Stromversorgung und das Netzwerk verbunden waren, betrug ca. 420-380 MB
Ich habe zuerst das Networking über
/etc/init.d/networking stop
und dann den Chip über ausgeschaltetecho 0 > /sys/devices/platform/bcm2708_usb/buspower
und tatsächlich ging es auf ~ 240Ma runterIch konnte auch erfolglos Google anpingen! (Was gut ist)
Ich schaltete es dann wieder ein, indem ich 1 an die Busstromversorgung zurücksendete und den Netzwerkstartbefehl ausführte. Und wieder war ich zurück bei 370-420mA. Google pingen hat dann funktioniert.
Ich habe dies dann in eine SH-Datei eingefügt, die sich in einer Schleife befand und mehr als zehn Mal dauerte, ohne dass ein Neustart erforderlich war. In Ihrem Befehl konnte ich sehen, dass es jedes Mal neu gestartet wurde, egal was passiert, weil Sie den Neustartbefehl eingegeben haben.
Den Code für den Test finden Sie unter Ubuntu Paste des Autostart-Codes.
Dies kann dann einfach zum Stoppen und Starten verwendet werden. Sie können den ersten Teil als Stoppbefehl und den zweiten Teil als Startbefehl ausführen.
Ich habe dieses @ My Blog auch vollständig aufgeschrieben
quelle
Die Funktion zum Deaktivieren und Aktivieren von LAN9512 durch:
Wurde auf den neueren Kerneln getestet und funktioniert nun einwandfrei ohne Änderungen. Ich habe ein paar Skripte erstellt, um es zu testen.
Der erste Zweck besteht darin, die Deaktivierung über die Softwarefunktion zu testen. Das Skript deaktiviert das LAN9512 und versucht, ein USB-Gerät bereitzustellen. Wenn dies möglich ist, schlägt der Test fehl. Wenn nicht, ist der Test erfolgreich. Schließlich wird neu gestartet und neu gestartet. Das Skript wird seit vier Tagen ausgeführt und meldet 8039 fehlerfreie Neustarts auf raspbian 2013-9-25.
Das zweite Skript dient zum Testen der Aktivierungsfunktion. Zunächst deaktiviert das Skript das LAN9512. Wartet dann einige Sekunden, um den Pi ruhen zu lassen. Anschließend wird das LAN9512 aktiviert und schließlich versucht, den Befehl "lsusb" auszuführen. Es werden alle USB-Geräte aufgelistet. Wenn der Kernel alle USB-Geräte erkennt, funktioniert das LAN9512 wieder. Wenn nicht, ist der Test fehlgeschlagen. Der Test hat eine Woche gedauert und 7209 fehlerfreie Schleifen für Raspbian 2013-9-25 und 5374 fehlerfreie Schleifen für Raspbian 2014-1-7 gemeldet.
Kernel und Firmwares
Am raspbian 2014-1-7:
Kernel: Linux raspberrypi 3.10.25+ # 622 PREEMPT Fr Jan 3 18:41:00 GMT 2014 armv6l GNU / LINUX-Firmware: b00bb3ae73bd2799df0e938b7a5f17f45303fb53 (sauber) (Veröffentlichung)
Auf Himbeer 2013-9-25
Kernel: Linux raspberrypi 3.6.11+ # 538 PREEMPT Fr Aug 30 20:42:08 BST 2013 armv61 GNU / LINUX-Firmware: 4f9d19896166f46a3255801bc1834561bf092732 (sauber) (Veröffentlichung)
quelle
Diese Antworten waren korrekt, als sie angeboten wurden, aber irgendwann im Jahr 2015 nahm Raspbian Änderungen vor und interessierte Benutzer mussten nach den entsprechenden Steuerelementen suchen.
Mein Dank geht an User Adrian! https://raspberrypi.stackexchange.com/users/37611/adrian
quelle