[Workaround gefunden] WOL abschalten

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

[Workaround gefunden] WOL abschalten

Beitrag von smutbert » 21.02.2017 14:03:23

Hallo liebe Leute,

vor einiger Zeit habe ich im Wiki einen Artikel über das Stromsparen begonnen (Wiki-Artikel zum Thema Stromspar-Tipps). Nun wollte ich endlich ein bisschen weiterschreiben, bin dabei aber auf ein Problem gestossen, das ich selbst nicht lösen kann:

Hier ist ein Notebook, bei dem sich WOL immer wieder aktiviert (und so im ausgeschalteten Zustand den Akku leert) obwohl es im BIOS deaktiviert ist. Ich kann es zwar mit powertop oder mit

Code: Alles auswählen

# ethtool -s enp1s0 wol d
deaktivieren, aber ich schaffe es nicht das permanent im System zu verankern.
Mein erster Versuch war eine systemd-Unit namens wol.service

Code: Alles auswählen

[Unit]
Description=WOL deaktivieren
Requires=network.target
After=network.target

[Service]
ExecStart=/sbin/ethtool -s enp1s0 wol d
Type=oneshot

[Install]
WantedBy=multi-user.target
die wird laut systemctl zwar fehlerfrei ausgeführt, WOL ist aber nach dem Hochfahren trotzdem (erneut?) aktiviert.

Der zweite Versuch war eine udev-Regel (in Anlehnung an das arch-Wiki [1])

Code: Alles auswählen

ACTION=="add", SUBSYSTEM=="net", NAME=="enp*", RUN+="/sbin/ethtool -s $name wol d"
bei der ich testweise NAME==... auch weggelassen und statt $name auch enp1s0 versuche habe, aber auch das funktioniert nicht.

Bis jetzt gehe ich davon aus, dass die Befehle zwar immer ausgeführt werden, aber irgendetwas anderes WOL hinterher wieder aktiviert. Es handelt sich um stretch mit gdm/gnome und dem network-manager, aber das Netzwerkinterface bleibt normalerweise unkonfiguriert.

[1] https://wiki.archlinux.org/index.php/Wake-on-LAN#udev
Zuletzt geändert von smutbert am 22.02.2017 20:37:52, insgesamt 2-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10753
Registriert: 25.09.2007 19:59:30

Re: WOL abschalten

Beitrag von MSfree » 21.02.2017 15:30:43

smutbert hat geschrieben:die wird laut systemctl zwar fehlerfrei ausgeführt, WOL ist aber nach dem Hochfahren trotzdem (erneut?) aktiviert.
Wie ist denn der Zustand von der Netzwerkschnittstelle, wenn du folgende Befehle eingibst?

Code: Alles auswählen

ethtool enp1s0 | grep -i wake
systemctl start wol.service
ethtool enp1s0 | grep -i wake
Eventuell hilft auch eine Zeile der Art:

Code: Alles auswählen

post-down ethtool -s enp1s0 wol d
in /etc/network/interfaces

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: WOL abschalten

Beitrag von smutbert » 21.02.2017 16:02:18

so sieht es aus

Code: Alles auswählen

# ethtool enp1s0 | grep -i wake
	Supports Wake-on: pumbg
	Wake-on: g
# systemctl start wol.service
# ethtool enp1s0 | grep -i wake
	Supports Wake-on: pumbg
	Wake-on: d
und direkt nach dem Systemstart:

Code: Alles auswählen

# systemctl status wol
● wol.service - WOL deaktivieren
   Loaded: loaded (/etc/systemd/system/wol.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2017-02-21 15:57:35 CET; 46s ago
 Main PID: 511 (code=exited, status=0/SUCCESS)

Feb 21 15:57:35 achill systemd[1]: Starting WOL deaktivieren...
Feb 21 15:57:35 achill systemd[1]: Started WOL deaktivieren.
Unter /etc/network habe ich bis jetzt gar nichts gemacht - die interfaces ist leer und wie gesagt bleibt das Interface enp1s0 im Normalbetrieb down - daher hab ich bis jetzt auch kein post-down oder ähnliches drin.

Benutzeravatar
MSfree
Beiträge: 10753
Registriert: 25.09.2007 19:59:30

Re: WOL abschalten

Beitrag von MSfree » 21.02.2017 16:09:59

OK, deine Unit funktioniert zumindest.

Ich habe allerdings gerade ein wenig nach networkmanager wol gegoogelt. Anscheinend hat auch der Networkmanager seit 1.0.6 Optionen für WOL. Vermutlich führt der Start des nm dazu, daß die vorher per systemd gesetzten Optionen wieder überschrieben werden.

Wenn du den nm nutzt, mußt du /etc/network/interfaces sowieso bis auf das Loopback Interface leer lassen. Insofern hilft dir der post-down nicht weiter.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: WOL abschalten

Beitrag von smutbert » 21.02.2017 16:30:03

Tatsächlich, Danke!
Ich hab testweise den nm deaktiviert und danach war WOL nach dem Systemstart deaktiviert.

Nun wie hindere man nm also daran WOL bei einem Netzwerkinterface zu aktivieren, das man gar nicht verwenden will?
Einfach eine systemd-Unit, die nach dem Beenden von nm und ev. zusätzlich beim Hochfahren nach dem Start von nm WOL deaktiviert wäre wohl keine elegante Lösung... genausowenig fände ich es sehr praktikabel bei einem Notebook komplett auf nm zu verzichten.

und gerade habe ich ausprobiert:
Ohne nm bräuchte ich weiter gar nichts zu tun - nach einem Systemstart ohne nm ist WOL auch ohne meine systemd-Unit deaktiviert. Ev. genügt also irgendein dummy-Eintrag in der interfaces um nm daran zu hindern etwas mit dem Interface anzustellen.
Andererseits ist das natürlich auch keine perfekte Lösung, wenn man dann die Schnittstelle doch einmal mit nm konfigurieren will.

BenutzerGa4gooPh

Re: WOL abschalten

Beitrag von BenutzerGa4gooPh » 21.02.2017 16:43:39

smutbert hat geschrieben:Andererseits ist das natürlich auch keine perfekte Lösung, wenn man dann die Schnittstelle doch einmal mit nm konfigurieren will.
Funktioniert das hier Beschriebene: https://wiki.archlinux.org/index.php/Wa ... orkManager
Enable Wake-on-LAN by magic packet on that connection:
# nmcli c modify "wired1" 802-3-ethernet.wake-on-lan magic
Then reboot, possibly two times.
irgendwie invers ...

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: WOL abschalten

Beitrag von smutbert » 21.02.2017 16:55:14

Dafür fehlt mir der Ansatzpunkt, weil es für die Schnittstelle kein "Verbindungsprofil" gibt, sie liegt ja brach. Selbst wenn ich eines erstellen würde, würde es wohl nichts helfen, weil die Verbindung (dieses Verbindungsprofil) mangels Netzwerkkabel in der Buchse sowieso nie aktiviert würde.

Behelfsmäßig funktioniert jetzt ein

Code: Alles auswählen

ExecStopPost=/sbin/ethtool -s enp1s0 wol d
in »/etc/systemd/system/NetworkManager.service« (einer Kopie von »/lib/systemd/system/NetworkManager.service«), das WOL beim Herunterfahren nach dem Beenden von nm deaktiviert. Dann saugt WOL im ausgeschalteten Zustand den Akku nicht leer, was ja das Hauptärgernis war.

Benutzeravatar
MSfree
Beiträge: 10753
Registriert: 25.09.2007 19:59:30

Re: WOL abschalten

Beitrag von MSfree » 21.02.2017 17:05:22

smutbert hat geschrieben:Dafür fehlt mir der Ansatzpunkt, weil es für die Schnittstelle kein "Verbindungsprofil" gibt
nmcli funktioniert auch mit nicht konfigurierten Netzwerkschnittstellen.

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: WOL abschalten

Beitrag von mat6937 » 21.02.2017 18:42:52

smutbert hat geschrieben:... es für die Schnittstelle kein "Verbindungsprofil" gibt, ...
Dafür ist ein Verbindungsprofil nicht erforderlich. Erstelle im Verzeichnis "/etc/NetworkManager/conf.d" eine Datei mit der Endung ".conf" und mit folgendem Inhalt:

Code: Alles auswählen

[connection]
wake-on-lan=8000
Z. B.:

Code: Alles auswählen

cat /etc/NetworkManager/conf.d/default-wake-on-lan-off.conf
[connection]
wake-on-lan=8000

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: WOL abschalten

Beitrag von scientific » 21.02.2017 20:41:33

Dein ExecStopPost musst du nicht in eine kopierte Unit schreiben.
Erstelle ein Verzeichnis /etc/systemd/system/NetworkManager.service.d
Darein schmeißt du ein File mit der Dateiendung .conf und füllst die Zeile mit einem [Service] in der Zeile darüber ein.

Lösch deine Unit wieder und reloade systemd.
Schau dir systemctl cat NetworkManager.service an...

;-)

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: WOL abschalten

Beitrag von smutbert » 21.02.2017 20:59:56

Stimmt, danke, das wär dann ein Drop-In :wink:

Das mit nmcli klingt nach der besseren, ja geradezu DER Lösung, aber es funktioniert noch nicht. Zumindest hier beim Testen auf einem stationären PC:

Code: Alles auswählen

# ethtool eno1 | grep -i wake
	Supports Wake-on: pumbg
	Wake-on: g
$ nmcli con show
NAME                 UUID                                  TYP              GERÄT  
…
Wired connection 1   680f1f1d-4ec5-3ee7-b4b3-08810e3c4c00  802-3-ethernet   -- 
$ nmcli c modify "Wired connection 1" 802-3-ethernet.wake-on-lan 0 #oder auch 8000
$ nmcli d modify eno1 802-3-ethernet.wake-on-lan 0 #oder auch 8000
Fehler: Lesen der angewendeten Verbindung von Gerät »eno1« (/org/freedesktop/NetworkManager/Devices/2) ist gescheitert: Device is not activated
# ethtool eno1 | grep -i wake
	Supports Wake-on: pumbg
	Wake-on: g
Für die eigentlich nicht vorhandene Verbindung kann ich es also scheinbar deaktieren - es bleibt aber wirkungslos, was angesichts dessen, dass diese Verbindung keinem Gerät zugeordnet ist wohl kein Wunder ist. Beim Gerät selbst dagegen kann ich gar nichts machen (oder ich kapier die Befehle/Parameter nicht richtig).

Auch das Eintragen in »/etc/NetworkManager/conf.d/…conf« (und neustarten von nm) ändert nichts am aktivierten WOL.

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: WOL abschalten

Beitrag von scientific » 21.02.2017 21:56:45

Genau. Das ist ein Drop-In ;-)

Bei mir ists übrigens genau umgekehrt. WOL lässt sich nicht aktivieren...
Hab das dann mal aufgegeben, weil der Rechner eh nur per WLAN im Netz hängt...
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: WOL abschalten

Beitrag von mat6937 » 21.02.2017 22:06:53

smutbert hat geschrieben: Auch das Eintragen in »/etc/NetworkManager/conf.d/…conf« (und neustarten von nm) ändert nichts am aktivierten WOL.
Also auf meinem Laptop funktioniert das. Poste mal die Ausgaben von:

Code: Alles auswählen

cat /etc/NetworkManager/conf.d/<Dateiname>.conf
man nm-settings | fgrep -iA 5 -e wake-on-lan
NetworkManager -V
Versuch mal statt den NM nur neu zu starten, ein Reboot deines Laptops.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: WOL abschalten

Beitrag von smutbert » 21.02.2017 23:13:17

Code: Alles auswählen

$ cat /etc/NetworkManager/conf.d/local.conf 
[connection]
wake-on-lan=8000
Die Auswirkungen eines Neustarts reiche ich nach, momentan kommt ein Reboot nicht in Frage ☺

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: WOL abschalten

Beitrag von mat6937 » 21.02.2017 23:26:15

smutbert hat geschrieben:..., momentan kommt ein Reboot nicht in Frage ☺
Hast Du nachgeschaut, mit:

Code: Alles auswählen

man nm-settings | fgrep -iA 5 -e wake-on-lan
ob dein NM, diese Einstellung "wake-on-lan" kennt? Denn das ist auch von der Version des NM, abhängig.

EDIT:

Alternativ könntest Du, wenn die Schnittstelle eh brach liegt, auch den Treiber für das enp1s0-Interface blacklisten. Sollte die Schnittstelle dann doch mal kurzfristig gebraucht werden, kannst Du den Treiber mit modprobe laden.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: WOL abschalten

Beitrag von smutbert » 22.02.2017 20:37:13

Ja, das mit dem Blacklisten funktioniert natürlich auch - womit bereits zwei Workarounds zur Wahl hätte.

Allerdings wäre es nicht schlecht es auch mit dem network-manager hinzubekommen. Die wake-on-lan Einstellung kennt der Network-manager laut manpage jedenfalls, aber der Neustart hat nichts geändert.

Antworten