Ich entschied mich für eine Lösung, mit der mein Medienserver beim Zugriff automatisch aktiviert wird, ohne von dd-wrt abhängig zu sein.
Ich habe ein Himbeer-Pi, also habe ich es verwendet, weil es wenig Strom hat und es mir nichts ausmacht, es die ganze Zeit eingeschaltet zu lassen. Natürlich kann es von jedem Linux-Rechner ausgeführt werden.
Die endgültige Lösung, die ich für mich gefunden habe, war das Schreiben eines kleinen Bash-Skripts. Die Himbeer-Pi-Abhängigkeiten sind Etherwake und TCPDump. Beide sind standardmäßig nicht auf Rasbian installiert. Auch auf dem Server muss Wake On Lan aktiviert sein, wie in den anderen Beiträgen erwähnt.
sudo apt-get install etherwake
sudo apt-get install tcpdump
Das Wake-Skript lautet wie folgt:
nano ~/wol.sh
Dann:
#!/bin/bash
pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x #WOL target ip address
targetMAC=00:11:22:33:44:55 #WOL target MAC
wake () {
tcpdump -i eth0 -c 1 -p host $target
etherwake $targetMAC
#echo WOL sent to $target at $targetMAC
return
}
while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
if [ $varPing -eq 0 ]; then
#echo ping success
else
#echo ping fail
wake
fi
done
Die Hauptidee ist, dass es von meinem Himbeer-Pi ausgeführt wird, der den Server weckt, wenn er eine einzelne Arp-Anfrage für den Server bemerkt. Wenn der Server wach ist, wartet er nicht auf eine Arp-Anfrage, sondern sendet ab und zu ein paar Pings, um sicherzustellen, dass er noch wach ist.
Ich habe die Datei wol.sh benannt und ausführbar gemacht. Legen Sie es dann in die sudo crontab, um @reboot als root zu starten. Dies ist für tcpdump, das einen erhöhten Zugriff benötigt, um eth0 und etherwake zu hören.
sudo chmod +x /home/pi/wol.sh
sudo crontab -e
füge dies unten hinzu
@reboot sh /home/pi/wol.sh > /dev/null