WOK: Wake on Lane

Rechner schaltet sich ein, wenn 'Magische Sequenz' ber Ethernet kommt. (Karte ist immer an!)

Sequenz besteht aus 6 X FF (hex) und 16 mal die MAC-Adresse des Ziels.

Ethernetkarte schickt dann Wake-up-Befehl an Motherboard, das sich einschaltet. Bei PCI-Karten braucht man dazu diese kl. Kabel…

http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/

Netzwerkkarten sind standardmässig nicht auf WOL eingestellt (ausser eine Realtek XXX B, die einen Fehler hat. Später ab C beseitigt)

Um Status abzufragen:

ethtool eth0

Da steht dann welche WOL-Typen von der Karte unterstützt werden:

Supports Wake-on: pumbg

und welche gerade eingestellt ist:

Wake-on: d (disabled)
ethtool -s eth0 wol g
Dann sagt ethttool:
Wake-on: g (MagicPacket)

Man muss den Befehl des Umstellens vor jedem Shutdown einstellen. (Bei Windows muss man bei den Netzwerkeinstellungen ein Häkchen machen) z.B. Debian in /etc/network/interfaces ethtool kann man auch einfach als pre-down oder post-up (post-down, pre-up haben in meinem Fall nicht funktoniert) in die interfaces-Konfiguration einbauen: auto eth0 iface eth0 inet dhcp

      pre-down ethtool -s eth0 wol g

http://www.vdr-wiki.de/wiki/index.php/Debian_-_WAKE_ON_LAN

Saubere Debian-Lösung

Besser als das Ändern von vorhandenen Dateien ist es. einen extra Mechanismus einzubauen. In Debian (Sarge) wird der runlevel 0 zum Abschalten des Systems benutzt. Daher wird ein link in /etc/rc0.d erzeugt der auf das Skript in /etc/init.d/wake_on_lan zeigt. (Erst das Skript erzeugen!)

cd /etc/rc0.d
ln -s /etc/init.d/wake_on_lan S80wake_on_lan

Und hier das Skript wake_on_lan. Er muß nach /etc/init.d gespeichert werden und ausführbar sein. Dies geht mit „chmod +x wake_on_lan“, wenn man im Verzeichnis ist.

#! /bin/sh
#
# Ensures that Wake on Lan works
#
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

set -e

case "$1" in
  stop|start|restart|force-reload|reload)
        echo -n "Turn on: Wake on Magic Packet"
        /usr/sbin/ethtool -s eth0 wol g
        echo
        ;;
  *)
#       N=/etc/init.d/hwtools
#       echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

Falls ethtool noch nicht installiert ist, muß man dies jetzt nachholen:

apt-get install ethtool