WAKE ON LAN

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Unter Wake on LAN versteht man einen Rechner per Netzwerk einzuschalten. Dies ist z.B. sehr schön wenn man einen Linux-Router hat - sich per Internet zu diesem Verbindet - und dann seinen VDR einschalten kann (um z.B. neue Timer zu speichern).

Das Einschalten erfolgt meistens durch das sogenante "MagicPacket(TM)". Ein passendes Linux-Programm dafür ist ether-wake.

Compilieren muss man den source-code mit

wget ftp://ftp.scyld.com/pub/diag/ether-wake.c
gcc -O -Wall -o ether-wake ether-wake.c
cp ./ether-wake /usr/local/bin

Der Aufruf erfolgt so:

ether-wake 00:11:22:33:44:55

wobei man für die Zahlenfolge einfach die MAC-Adresse des zu weckenden Rechners eingeben muss. Wenn man diese nicht hat kann man sich diese mit

ifconfig eth0

anzeigen lassen (natürlich auf dem Rechner den man später wecken will!).

  • als Alternative dazu gibt es z.B. noch hier

Problem: Nun gibt es unter Linux - zumindest seid den 2.6er Kernel-Versionen immer wieder Probleme dass WOL nicht funktionieren will. Das Problem liegt darin, dass die meisten Netzwerkkarten-Treiber das WOL deaktivieren!!!

Lösung des Problems: Es gibt ein Programm namens "ethtool". Hiermit kann man - nachdem der Netzwerktreiber geladen ist - die Netzwerkkartenparameter auslesen und ändern.

So bekommt man angezeigt wie die Parameter derzeit sind:

ethtool eth0

Beispiel:

VDR:~# 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: pumbg
       Wake-on: g
       Current message level: 0x00000001 (1)
       Link detected: yes

Besonders die Zeilen "Supports Wake-on:" und "Wake-on:" sollte man hier im Auge behalten. Die buchstaben bedeuten dabei:

      wol p|u|m|b|a|g|s|d...
             Set Wake-on-LAN options.  Not all  devices  support  this.   The
             argument  to  this  option  is a string of characters specifying
             which options to enable.
             p  Wake on phy activity
             u  Wake on unicast messages
             m  Wake on multicast messages
             b  Wake on broadcast messages
             a  Wake on ARP
             g  Wake on MagicPacket(tm)
             s  Enable SecureOn(tm) password for MagicPacket(tm)
             d  Disable (wake on nothing).  This option clears  all  previous
                options.

So aktiviert man das Wake-On-Lan beim Eintreffen eines "MagicPacket(TM)":

ethtool -s eth0 wol g

Ich habe diese Zeile einfach in meiner /etc/init.d/networking an entsprechender stelle gesetzt (nach dem aktivieren des Netzwerks).

Falls es noch Fragen gibt könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de