[gelöst] Startup Script für Energiemanagement + Package C-States mit powertop tuning

Sassicaia

Urgestein
Thread Starter
Mitglied seit
24.07.2007
Beiträge
5.277
Ort
Ruine Trimburg
Ziel: Optimierung des Energieverbrauchs des Betriebssystems Debian Stretch 9.5. Im Bios sind alle Optionen zum Powermanagement und Package C-States gesetzt.

Hardware: Z170N-Wifi rev. 2.0 mit i3-7100

Schritt 1: Erstellung einer Powertop --html Datei. Im TAB tuning mit dem Texteditor die notwendigen Optimierungen kopiert und als Textdatei abgespeichert. Hier habe ich die Zeilen für mouse und keyboard gelöscht, um Verzögerungen zu vermeiden.



Schritt 2: Erstellung des Startup Scripts
Code:
sudo gedit /usr/local/bin/startup.sh

copy and paste der Zeilen aus Schritt 1



Schritt 3: Das Script ausführbar gemacht und direkt ausgeführt.
Code:
[I]Executable[/I]
sudo chmod +x /usr/local/bin/startup.sh

[I]Ausführen[/I]
sudo /usr/local/bin/startup.sh

Zwischenergebnis: Direkt nach dem Enter für das Ausführen sinkt der Energieverbrauch von ca. ~ 11 Watt auf ~7.5 Watt im idle. Genaus so wollte ich das haben, denn das ist identisch zum Ergebnis mit Win 10/1803

Damit das Script direkt beim Start ausgeführt wird, habe ich folgende Schritte durchgeführt:
Schritt 4: Erstellung einer rc.local
Code:
sudo gedit /etc/rc.local

Schritt 5: rc.local command vor exit 0 setzen
Code:
/usr/local/bin/startup.sh
exit 0
Code:
#!/bin/sh
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/usr/local/bin/startup.sh
exit 0

Endergebnis:
Das script lässt sich ausführen und führt zum gewünschten Ergebnis aber wird nicht beim Neustart ausgeführt.
Was habe ich vergessen/ verpeilt? :wall:

edit: nun läuft's

es hat gefehlt: /etc/systemd/system/rc-local.service

Code:
sudo nano /etc/systemd/system/rc-local.service

folgenden Code einfügen:

Code:
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

abschließend speichern STRG + O und schließen STRG +X,

dann im Terminal sicherstellen, dass die rc.local auch tatsächlich ausführbar ist:

Code:
sudo chmod +x /etc/rc.local

und für den Systemstart aktivieren
Code:
sudo systemctl enable rc-local

Service starten und Status prüfen:
Code:
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

Stabiler Betrieb zwischen 7.1W und 7.4W
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wow, das ist verkompliziert. :fresse:

Die /etc/rc.local wird schon lange nicht mehr benutzt. Du nutzt systemd, die Datei wurde nur von SysV ausgeführt. So oder so, du machst eine riesen Sache aus so etwas Kleinem.

Code:
systemctl disable --now rc-local.service
rm /etc/systemd/system/rc-local.service
rm /etc/rc.local
rm /usr/local/bin/startup.sh

Dann eine Datei "/etc/systemd/system/powertop.service" erstellen und folgendes reinklatschen.

Code:
[Unit]
Description=Powertop tunings

[Service]
ExecStart=/usr/bin/powertop --auto-tune
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Dann wird alles, was Powertop dir vorschlägt, automatisch angewendet. Verzögerungen an Maus und Tastatur wirst du nicht haben. Das beschränkt sich nur auf inaktive Geräte.

Alternativ, und deutlich sinniger, ist TLP. Da musst du nichts mit machen außer installieren, plus es kann, im Gegensatz zu deinem Script, zwischen Akku- und Netzbetrieb unterscheiden.
 
Zuletzt bearbeitet:
Sobald man Powertop --auto-tune verwendet, friert die Maus und Tastatur regelmäßig ein und man muss erst mal klicken/ taste drücken. Gerade deshalb wollte ich Powertop nicht verwenden. Alternativ muss ich Maus und Tastatur nach auto-tune wieder herausnehmen, ob das dann einfacher wird, keine Ahnung.

Einstellungen, welche PowerTOP vornimmt, gehen schon beim Anschließen/Entfernen eines USB-Geräts oder der Stromversorgung wieder verloren. Dies betrifft leider auch eigene Anpassungen, die beim Systemstart aktiviert wurden.

Fallwrrk schrieb:
Alternativ, und deutlich sinniger, ist TLP. Da musst du nichts mit machen außer installieren, plus es kann, im Gegensatz zu deinem Script, zwischen Akku- und Netzbetrieb unterscheiden.

Ich habe ein Z170N-Wifi Mini-ITX laufen und TLP hatte ich bereits durch, da passiert nichts, Einen Akku verwende ich nicht. Der Stromverbrauch bleibt mit TLP wie er ist ohne Veränderungen. Hast du überhaupt mal getestet? Deine Vorschläge funktionieren nicht.
 
Zuletzt bearbeitet:
Dann lieber Maus und Tastatur wieder rausnehmen. Das ist 1000x besser als ein Service, welches ein (veraltetes) Script startet, welches wiederrum ein Script startet, welches Dinge tut, die ein Programm auch automatisch kann.

Code:
[Unit]
Description=Powertop tunings

[Service]
ExecStart=/usr/bin/powertop --auto-tune
ExecStartPost=/usr/bin/echo "blabla" > /bla/bla
ExecStartPost=/usr/bin/echo "blabla" > /bla/bla
ExecStartPost=/usr/bin/echo "blabla" > /bla/bla
RemainAfterExit=true

[Install]
WantedBy=multi-user.target
 
@Sassicaia

Wenn Du noch etwas mehr rausholen willst, dann benutze das hier für die PCIE-Devices (auch nach echo powersupersave > /sys/module/pcie_aspm/parameters/policy):

http://bombadil.infradead.org/~mcgrof/scripts/enable-aspm

Je nach Device kann das BIOS / powertop hier suboptimal handeln, damit kannst Du es nach dem Boot noch mal alles rumreißen :-D

Bei mir mache ich das bei LAN und SATA Controllern (onboard).
BTW. bei LAN hilft es auch auf 100Mbit mit ethtool zu gehen, welches noch mal einiges weniger als Gigabit braucht.

PS: Bei Headless-Operation ist manchmal noch was beim i915 möglich.

... so sind es beim Quadcore Atom <=1.6Watt (der ist dann erst bei C6!!):

Intel Atom x7-Z8700 (Cherry Trail) vs Intel Pentium N4200 (Apollo Lake) Benchmarks Comparison
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh