Damit die Bequemlichkeit nicht zu kurz kommt, braucht auch der KC einen PC-Wecker für das Netzwerk und seine Teilnehmer.
Oft sind es gerade die kleinen Progrämmchen, welche das Computerleben erleichtern. Das im folgenden Beitrag beschriebene Werkzeug benutze ich in äquivalenter Form fast täglich auf meinem Haupt-PC, um fix mal etwas auf anderen Rechnern nachzuschauen oder diese nebenbei in Betrieb zu nehmen - natürlich ohne erst aufzustehen und hinzulaufen :-).
Da der Aufwand sehr überschaubar war und ein WakeOnLan-Programm fest auf der MussIchHaben-Liste für die Netzwerkschnittstelle des KC85 stand, wurde das vor ca. drei Wochen in Angriff genommen und auch in relativ kurzer Zeit fertiggestellt. Den grössten Zeitaufwand verursachte dabei nicht die Programmierung der Netzwerkfunktionen, sondern die Handhabung und Verwaltung der Daten in einer ausgelagerten Textdatei.
Funktionsweise
Die Grundlagen für das ferngesteuerte Einschalten von Rechnern in Ethernet-Netzwerken wurden von HP und AMD Mitte der 90er geschaffen und in entsprechenden Dokumenten veröffentlicht. Die sogenannte "Magic Packet Technology" ist zwar kein offizielles Protokoll aber mittlerweile zum Industriestandard geworden. Sie funktioniert mit jedem modernen PC, welcher mit PCI Version 2.2 bzw. PCIe ausgestattet ist oder die Netzwerkkarte mit dem bekannten 3-poligen Kabel am entsprechenden WOL-Anschluss des Mainboards angesteckt werden kann.
Wie das genau in Hard- und Software von den Computerherstellern umgesetzt werden muss, kann man im entsprechenden White Paper von AMD nachlesen:
Magic Packet Technology White Paper
WOL-Programme für andere Betriebssysteme gibt es natürlich auch. Sie werden in der Regel kostenlos als Freeware angeboten. Nachfolgend zwei Links zu Programmen, welche man unter Windows einsetzen kann. Auf den Webseiten dieser Programme und in den Hilfedateien findet man ausführliche Informationen zu WakOnLan, so dass ich hier darauf verzichten kann. Wie fast immer bekommt man einen guten Überblick auf den entsprechenden Seiten der Wikipedia:
Wake On Lan für Windows NT - XP (unter Software -> Freeware)
WOL Classic (Windows 2000 - 2003) und WOL2 (ab Windows Vista, Linux, Mac) von Marko Oette
Das CP/M Programm WOL.COM macht nun prinzipiell das Gleiche wie die PC-Programme. Es sendet an die Directed Broadcast Adresse (alle Host-Bits=1, siehe Projektartikel KCNet "Netzwerk-Konfiguration") des lokalen bzw. externen Netzwerkes ein WOL-Paket per UDP an den Port 9 ("discard") des Zielrechners. In diesem Paket muss u.a. die MAC-Adresse des aufzuweckenden Computers enthalten sein. Die bekommt man beispielsweise unter Windows mit dem Kommando IPCONFIG /ALL im DOS-Fenster hinter "Physikalische Adresse:" angezeigt.
Damit ein PC per WakeOnLan aufweckt, muss man im Windows-Gerätemanager in den Eigenschaften der betreffenden Netzwerkkarte entsprechende Einstellungen vornehmen. Erstens muss das Aufwecken generell erlaubt bzw. aktiviert sein, was meist eine Einstellung unter der Registerkarte "Erweitert" festlegt. Zweitens ist der Reiter Energieverwaltung aufzurufen und ein Häkchen bei dem(n) Punkt(en) zu setzen, wo die Aktivierung per Magic Packet freigegeben wird.
Weiterhin darf der PC in der Regel nicht vom Stromnetz getrennt werden, wenn er heruntergefahren ist. Sobald die eingebaute Netzwerkkarte einmal stromlos war, vergisst sie eine meist nur flüchtig gespeicherte WakeOnLan-Freigabe. Auch wenn man das PC-Netzteil danach wieder einschaltet, wird der PC nicht mehr "geweckt", wenn man WOL-Pakete an diesen Rechner schickt.
Da das Aufwecken von PC's per WOL-Paket von der Firmware der Netzwerkkarte gesteuert wird, funktioniert es systemunabhängig und ist nicht auf Windows-PC's beschränkt. Man kann damit nicht nur ausgeschaltete Computer reaktivieren, sondern auch solche, welche sich im Standby oder im Ruhezustand befinden. Es funktioniert allerdings in der Regel nur mit verkabelten Maschinen und nicht per WLan, lediglich Notebooks mit Wake on Wireless LAN (WoWLAN) sollen das unterstützen.
WOL.COM
Prinzipiell gibt es 3 verschiedene Varianten, das CP/M Programm WOL.COM zu benutzen.
- Die Puristen haben die MAC-Adressen aller Netzwerk-PC's im Kopf und rufen das Programm beispielsweise so auf:
WOL 01:02:03:04:05:06
Befindet sich der Zielteilnehmer nicht im gleichen Netzwerk, muss die entsprechende Netzwerk-Adresse oder IP-Adresse des Rechners und die Subnetz-Maske des externen Netzwerkes mit angegeben werden:
WOL 01:02:03:04:05:06 192.168.100.10/255.255.255.0
Das WOL-Paket kommt allerdings nur im Zielnetzwerk an, wenn alle Router auf dem Weg dorthin das Routing von Directed Broadcast's unterstützen, was leider aus Sicherheitsgründen nicht immer der Fall ist. Man kann das testen, indem man auf dem Zielrechner einen Netzwerk-Sniffer laufen lässt und dann kontrolliert, ob ein an ihn gesendetes WOL-Paket eintrifft.
- Da ich kein Purist bin, benutze ich meistens die zweite Variante. Man kann in einer Datei WOL.INI die Daten für alle Rechner definieren, welche man per WakeOnLan steuern möchte. Für jeden PC sind das ein Name (s.u.), seine MAC-Adresse und wieder optional eine externe Netzwerk-Adresse mit Subnetz-Maske. Nun ruft man WOL.COM in der Kommandozeile auf und übergibt dort den definierten Namen des Computers. Im folgenden Beispiel lautet dieser Name BACKUP - die DIR|DU: Angabe davor gibt bei Notwendigkeit das Verzeichnis der WOL.INI Datei an:
[DIR|DU:]WOL [DIR|DU:]BACKUP
Wenn dieser Name in der Datei WOL.INI gefunden wird und auch korrekte Daten hinterlegt sind, wird sofort ein entsprechendes WOL-Packet generiert und abgeschickt. Bei Fehlern geht WOL.COM automatisch zur nachfolgenden Variante über.
- Die dritte Variante ist am bequemsten und einfachsten. Man ruft WOL.COM ohne Parameter auf und wählt den gewünschten Netzwerk-Teilnehmer aus einer Bildschirmliste aus. Das Programm listet dann am Bildschirm alle Datensätze von WOL.INI mit korrekten Daten seitenweise mit je 9 Namen auf. Per Zifferntaste startet man den weiteren Ablauf für den gewählten Computer oder bricht alles mit ESC bzw. CTRL+C ab. Der Screenshot zeigt ein entsprechendes Beispiel.
Normalerweise unterdrückt WOL.COM alle Ausgaben von MAC-Adressen und lokalen bzw. externen Netzwerk-Adressen. Mit der Option -f schaltet man diese Ausgaben gezielt ein und kann dann auch den kompletten Verarbeitungsablauf der Daten nachvollziehen. Der folgende Screenshot zeigt einige Beispiele für den Aufruf von WOL.COM mit der Beispieldatei WOL.INI:
Die Optionen -v zeigen Version von bzw. -h eine Hilfeseite für WOL.COM an:
WOL.INI
Diese Datei wird für die Verwaltung der WOL-Daten benötigt. Der Dateiname darf nicht geändert werden, da er von WOL.COM so erwartet wird. Ab Version 1.1 von WOL.COM kann man beim Aufruf aus der Kommandozeile den Standort der WOL.INI vor dem Namen der Rechner-Konfiguration angeben, siehe oben. Die Unterstützung für benannte Verzeichnisse unter NZCOM wurde dort ebenfalls ergänzt.
Unter MLDOS kann man auch beide Dateien mit dem Public-Attribut versehen, wenn man sich die Verzeichnisangaben sparen will. WOL.INI ist eine ganz normale Textdatei, welche mit TPKC im Programm-Modus oder ZDE bearbeitet werden kann. Im Programmpaket für den KC85 befindet sich eine Beispieldatei, welche man als Vorlage verwenden kann.
Innerhalb von WOL.INI muss nun ein sogenannter [Account] für jeden Computer definiert werden, welchen man mit WOL.COM erreichen will, zum Beispiel:
[Account] | - | Pflichtangabe |
name=PC-WORK | - | Pflichtangabe |
mac=00:60:97:01:02:03 | - | Pflichtangabe |
net=192.168.0.0/255.255.255.0 | - | optional |
Allgemein gelten für die Datei WOL.INI folgende Randbedingungen:
- Zeilen mit Semikolon und SPC in der ersten Spalte werden ignoriert
- ein Datensatz beginnt mit dem Schlüsselwort [Account]
- Parameter und ihre Werte werden durch ein Gleichheitszeichen voneinander getrennt
- eine Datenzeile enthält vor oder zwischen den Zeichen keine Kontroll- oder Leerzeichen
Für die Wertangabe bei Parametern gibt es folgende Beschränkungen:
'name':
- es sind nur die Zeichen 'A-Z' (gross oder klein), '0-9' und '-' zulässig
- der Bindestrich sollte nicht als erstes oder letztes Zeichen verwendet werden
- die maximale Länge des Namens beträgt 15 Zeichen
'mac':
- es sind nur hexadezimale Ziffernpaare '00-FF' zulässig, welche durch einen Doppelpunkt voneinander getrennt sind
'net':
- es sind nur Ziffern im "dotted decimal format" zulässig
- die Netzwerk-Adresse und Subnetz-Maske sind durch einen Schrägstrich voneinander getrennt
Die Anzahl der definierten Accounts ist nicht begrenzt. Das Programm zeigt in der Account-Liste seitenweise immer maximal 9 gültige Accounts an, wobei die Bildschirm-Reihenfolge der Reihenfolge in der Datei WOL.INI entspricht, fehlerhafte Datensätze werden automatisch ausgefiltert.
Die Angabe hinter 'net' ist optional (siehe oben) und nur notwendig, wenn sich der Netzwerkteilnehmer nicht im lokalen Netzwerk befindet.
Das Programm für den KC85, eine Beispieldatei WOL.INI und eine kurze Beschreibung wurden den KCNet-Softwarepaketen hinzugefügt, welche sich im Downloadbereich befinden.