Dies ist ein Artikel zum Thema Wake On LAN und Linux, der aus der Erfahrung geboren wurde
Ich selber habe einen Dell Optiplex GX 110 auf dem bis vor kurzem noch SuSE 9.3 lief.
Nachdem nun der Support seitens Novell/SuSE/openSUSE für die 9.3er Version ausläft,
habe ich mich dazu durchgerungen auf openSUSE umzusteigen. Dabei bin ich der - nicht empfohlenen - Anleitung
von openSUSE gefolgt. Problematisch waren dabei einige Paketabhängigkeiten, die aber manuell zu lösen waren.
Anmerkung: der spätere Umstieg von openSUSE 10.2 auf 10.3 wollte aus dem System heraus auch nicht gelingen (wg. Paketabhängigkeiten) problemloser ist der Upgrade-Prozess über die openSUSE-CD (Boot-Menüpunkt System-Update).
Nachdem der Upgrade-Prozess durchlaufen war, hatte ich ein Problem: Meine WOL-Konfiguration funktionierte nicht mehr...... Es hatte mich bei der SuSE 9.3 Installation einiges an Google-Suche und Ausprobieren gekostet herauszufinden, wie ich meinen Rechner runterfahren kann und er die Netzwerkkarte (NIC) in den Modus des Wartens auf ein MagicPacket© versetzt. Dabei habe ich (sehr) viele Dokumentationen gelesen, die leider nicht zum Ziel führten. Irgendwann klappte es dann endlich und ich konnte den Rest um den zu weckenden Rechner stricken..... Das ist nun ein paar Tage her und ich hatte es ganz vergessen, bis, ja bis zum Upgrade auf die openSUSE 10.2 Da merkte ich dann schmerzlich, dass ich vergessen hatte aufzuschreiben, wie es geht. Nun habe ich aber innerhalb kurzer Zeit alles nachvollzogen und schreibe es hier für mich als gedächtnisstütze und für andere, die nach der Lösung suchen auf:
Meine Hardware: Dell Optiplex GX 110 (aufgerüstet auf 512MB Speicher und 40GB Festplatte, ansonsten original)
Die Netzwerkkarte: die integrierte 3COM 3C905-TX / TX-M Tornado
die Karte wird von Linux (da sowohl SuSE 9.3 als auch openSUSE 10.2, behaupte ich mal das gilt auch für 9.1, 9.2, 9.3, 10.0, 10.1, 10.2) richtig erkannt.
Der Modulname ist 3c59x. Ob dieser geladen worden ist lässt sich am einfachsten auf der Kommandozeile überprüfen:
lsmod | grep 3c59x
Dadurch, dass die Zahlen nicht genau passen, sollte man sich nicht abschrecken lassen, da der 3c59x-Treiber für einige Kartenmodelle ausgelegt zu sein scheint (3C59x, 3C900 und 3C905 Serie von 3COM). In einigen Foren findet man die folgende Lösung um die Karte temporär in den WakeOnLAN-Zustand zu versetzen:
rmmod 3c59x && modprobe 3c59x enable_wol=1
Damit kann man ausprobieren, ob es überhaupt funktioniert. Problem ist jedoch, dass dies nur temporär, nämlich bis zum nächsten Neustart funktioniert. Hat es einmal geklappt, kann man nun statt sich ein Script zu basteln um beim Systemstart dieses Script ausfüren zu lassen das folgende tun: auf der Kommandozeile/Shell wechselt man in den root Modus, wechselt in das Verzeichnis /etc/ und editiert mit einem Editor seiner Wahl (joe, nano, vi - für Anfänger empfehle ich nano) die Datei modprobe.conf.
rcs2000@linux:~> su
Passwort:
linux:/home/rcs2000 # cd /etc/
linux:/etc # joe modprobe.conf
Dort sucht man nach einer Zeile mit 'options 3c59x ...':
...
# options tulip options=0
# options 3c59x options=0
# options 3c501 io=0x280 irq=5
# options 3c503 io=0x280 irq=5 xcvr=0
...
und ersetzt sie durch folgende:
...
# options tulip options=0
options 3c59x enable_wol=1
# options 3c501 io=0x280 irq=5
# options 3c503 io=0x280 irq=5 xcvr=0
...
Ich kann mir vorstellen, dass diese Anleitung in abgewandelter Form auch mit anderen Netzwerkkarten funktioniert.... Ein Tipp noch zum prüfen ob die Netzwerkkarte (Treiber) WakeOnLAN
unterstützt:
Mit dem folgenden Befehl für meinen Kartentreiber:
modinfo 3c59x
bekomme ich die folgende Ausgabe:
...
parm: rx_copybreak:3c59x copy breakpoint for copy-only-tiny-frames (int)
parm: enable_wol:3c59x: Turn on Wake-on-LAN for adapter(s) (0-1) (array of int)
parm: global_enable_wol:3c59x: same as enable_wol, but applies to all NICs if enable_wol is unset (int)
parm: flow_ctrl:3c59x 802.3x flow control usage (PAUSE only) (0-1) (array of int)
...