Wake On Lan (WoL) unter openSUSE(linux) 10.x einrichten
Nachdem ich mich heute erst einmal knapp 2 Stunden über mein Board geärgert habe, lag es wohl doch mal wieder an Linux ^^
Aber immerhin fand ich Dank Google schnell den wahren Grund:
Quelle: http://bundesfalle.de/content/view/34/1/
Voraussetzungen:
- – Auf dem einzuschaltenden Rechner ist openSUSE installiert und eine Ethernet Netzwerkkarte eingerichtet.
- – Netzwerkkarte und Treiber unterstützten wake on lan.
- – Der Rechner unterstützt wake on lan.
Um heraus zufinden, ob die Netzwerkkarte wol unterstützt, gibt man als root (oder mit sudo)
ethtool eth0
ein.
Wobei eth0 die Karte bezeichnet, die den Rechner einschalten soll. Bei mehreren NICs könnte es z.B. auch eth1 sein. Man erhält eine Ausgabe ähnlich dieser:
rechnername:~ # ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yesEntscheidend ist
Supports Wake-on: gWenn diese Zeile fehlt oder nach dem “ Supports Wake-on:“ kein Buchstabe kommt, kann die Karte und/oder der Treiber kein wol. Das g besagt, dass es ein „magic-paket“ als Weckruf entgegen nimmt. Es gibt auch noch andere Methoden z.B. auf physikalische Aktivität hin aufwachen, dann würden im obigen Beispiel nach dem „g“ weitere Buchstaben folgen.
Die Zeile danach (ohne das „Supports“) zeigt die momentane Einstellung der Karte an.
Den Status kann man mittels
ethtool -s eth0 wol gsetzen. Den Befehl kann man natürlich in ein Start-Skript bauen. Das Dumme ist nur, dass openSUSE beim Herunterfahren alle Einstellungen wieder zunichte macht und die Karte wieder zurücksetzt – sicher ist eben sicher. Daher müssen wir das System überreden die NIC am Schluss doch wieder zu aktivieren. Hierzu basteln wir ein kleines Skript, dass den Befehl enthält und nach der Dekativierung der Karte dochnoch aufgerufen wird.
Das Skript sieht im einfachsten Fall so aus:
#!/bin/bash
/usr/sbin/ethtool -s eth0 wol g
Es muss in /etc/sysconfig/network/scripts gespeichtert werden. Als Name könnte man „keep-wol-eth0“ verwenden.
Im Verzeichnis /etc/sysconfig/network/ findet sich für jede Netzwerkkarte ein config-Skript „ifcfg-ethX“.
Für das Beispiel nehmen wir „ifcfg-eth0“, öffnen das Skript mit einem Editor und fügen eine neue letzte Zeile hinzu:
POST_DOWN_SCRIPT=keep-wol-eth0Wobei „keep-wol-eth0“ das zuvor angelegte Skript bezeichnet (das Unterverzeichnis /scripts braucht nicht weiter angegeben zu werden).
Die Beispiel ifcfg-eth0 sieht so aus:
BOOTPROTO=’static‘
BROADCAST=“
ETHTOOL_OPTIONS=“
IPADDR=’192.168.4.2/24′
MTU=“
NAME=’Intel EtherExpress PRO/100 S Desktop Adapter‘
NETWORK=“
REMOTE_IPADDR=“
STARTMODE=’auto‘
USERCONTROL=’no‘
POST_DOWN_SCRIPT=keep-wol-eth0
An dieser Stelle empfiehlt es sich die MAC-Adresse des einzuschaltenden Rechners (ggf. ifconfig bemühen) zu notieren.
Im Rechner-BIOS muss wake on lan aktiviert sein, ggf. in der Bootreihenfolge nach oben geschoben werden. Zwischen Netzwerkkarte und Mainbord muss i.d.R. ein wol-Kabel gesteckt sein (kurzes 3pol. Kabel mit kleinen Stecker). Hierzu die Dokumentation des Mainboards und der Karte zu Hilfe ziehen.
Soweit zur Konfiguration des einzuschaltenden Rechners.
Um den Rechner nun per Netzwerk einzuschalten, verwendet man „ether-wake“ auf einen anderen Rechner – vorausgesetzt wir bleiben in der Linux-Welt.
ether-wake 00:11:22:33:AA:BB
schaltet den Rechner mit der MAC-Adresse 00:11:22:33:AA:BB mittels magic-paket ein. Sollte ether-wake fehlen, mittels Yast das Paket „netdiag“ nachinstallieren. Standardmässig geht der Befehl über das eth0 Interface raus.
Mit
ether-wake -i eth1 00:11:22:33:AA:BB
kann man das magic-paket über eth1 weg schicken.