Debian - WAKE ON LAN
K (→Saubere Debian Lösung) |
|||
Zeile 4: | Zeile 4: | ||
Ich habe diese Zeile einfach in meine /etc/init.d/networking an entsprechender Stelle nach dem Aktivieren des Netzwerks gesetzt. | Ich habe diese Zeile einfach in meine /etc/init.d/networking an entsprechender Stelle nach dem Aktivieren des Netzwerks gesetzt. | ||
− | Falls es noch Fragen gibt könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de | + | Falls es noch Fragen gibt, könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de |
− | Bei [[Debian]] sieht das dann z.B. so aus: (einfach | + | Bei [[Debian]] sieht das dann z. B. so aus: (einfach nach ethool suchen, um die passenden Stellen zu finden): |
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
Zeile 117: | Zeile 117: | ||
</pre> | </pre> | ||
− | === Saubere Debian Lösung === | + | === 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 | + | 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!) |
<pre> | <pre> | ||
cd /etc/rc0.d | cd /etc/rc0.d | ||
Zeile 124: | Zeile 124: | ||
</pre> | </pre> | ||
− | Und hier | + | 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. |
<pre> | <pre> | ||
#! /bin/sh | #! /bin/sh | ||
# | # | ||
− | # Ensures that | + | # Ensures that Wake on Lan works |
# | # | ||
Zeile 152: | Zeile 152: | ||
</pre> | </pre> | ||
− | Falls ethtool noch nicht installiert ist muß man dies jetzt nachholen: | + | Falls ethtool noch nicht installiert ist, muß man dies jetzt nachholen: |
<pre> | <pre> | ||
apt-get install ethtool | apt-get install ethtool |
Version vom 14. Mai 2006, 00:12 Uhr
Beschreibung
Für Debian gibt es die Pakete etherwake und wakeonlan. Etherwake kann nur vom root ausgeführt werden, wakeonlan von allen Benutzern.
Ich habe diese Zeile einfach in meine /etc/init.d/networking an entsprechender Stelle nach dem Aktivieren des Netzwerks gesetzt. Falls es noch Fragen gibt, könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de
Bei Debian sieht das dann z. B. so aus: (einfach nach ethool suchen, um die passenden Stellen zu finden):
#!/bin/sh # # manage network interfaces and configure some networking options PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin if ! [ -x /sbin/ifup ]; then exit 0 fi spoofprotect_rp_filter () { # This is the best method: turn on Source Address Verification and get # spoof protection on all current and future interfaces. if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f done return 0 else return 1 fi } spoofprotect () { echo -n "Setting up IP spoofing protection: " if spoofprotect_rp_filter; then echo "rp_filter." else echo "FAILED." fi } ip_forward () { if [ -e /proc/sys/net/ipv4/ip_forward ]; then echo -n "Enabling packet forwarding..." echo 1 > /proc/sys/net/ipv4/ip_forward echo "done." fi } syncookies () { if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo -n "Enabling TCP/IP SYN cookies..." echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo "done." fi } doopt () { optname=$1 default=$2 opt=`grep "^$optname=" /etc/network/options` if [ -z "$opt" ]; then opt="$optname=$default" fi optval=${opt#$optname=} if [ "$optval" = "yes" ]; then eval $optname fi } case "$1" in start) doopt spoofprotect yes doopt syncookies no doopt ip_forward no echo -n "Configuring network interfaces..." ifup -a ethtool -s eth0 wol g echo "done." ;; stop) if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | grep -q "^/ nfs$"; then echo "NOT deconfiguring network interfaces: / is an NFS mount" elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | grep -q "^/ smbfs$"; then echo "NOT deconfiguring network interfaces: / is an SMB mount" elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts | grep -qE '^(nfs[1234]?|smbfs|ncp|ncpfs|coda|cifs)$'; then echo "NOT deconfiguring network interfaces: network shares still mounted." else echo -n "Deconfiguring network interfaces..." ifdown -a --exclude=lo echo "done." fi ;; force-reload|restart) doopt spoofprotect yes doopt syncookies no doopt ip_forward no echo -n "Reconfiguring network interfaces..." ifdown -a --exclude=lo ifup -a ethtool -s eth0 wol g echo "done." ;; *) echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}" exit 1 ;; esac exit 0
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