Jak mogę na stałe włączyć funkcję Wake-on-LAN?

13

Chcę zawsze włączać funkcję Wake-on-LAN dla moich kart sieciowych. Przewodnik po społeczności zaleca dodanie odpowiedniego polecenia do /etc/network/interfaces. Wcześniejsze doświadczenia związane z edycją plików Ubuntu conf, jest bardzo prawdopodobne, że plik interfejsu sieciowego jest zapisywany na nowo przy każdym rozruchu, jeśli nie przy każdym apt upgrade. Jaki jest najlepszy sposób, aby upewnić się, że funkcja Wake-on-LAN jest włączona przy każdym rozruchu?

djeikyb
źródło

Odpowiedzi:

12

Skrypt rozruchowy uruchamiany po skonfigurowaniu kart sieciowych powinien załatwić sprawę. Ubuntu używa upstart. Po przeczytaniu o zadaniach upstart, ethtool, napisaniu skryptu upstart i przeszukaniu interwebs w poszukiwaniu lepszego rozwiązania, wymyśliłem to z jevinskie (będziesz chciał umieścić to w pliku /etc/init):

start on started network

script
    for interface in $(cut -d: -f1 /proc/net/dev | tail -n +3); do
        logger -t 'wakeonlan init script' enabling wake on lan for $interface
        ethtool -s $interface wol g
    done
end script
  • Uruchamia się po zainicjowaniu karty sieciowej
  • Pobiera nicki z / proc / net / dev
  • Rejestruje działania do syslog
  • Działa na wszystkie znalezione karty sieciowe
  • Wymaga ethtool, więc upewnij się, że jest najpierw zainstalowany:

    sudo apt-get install ethtool
    

Jeśli chcesz nasycić tylko jedną nicią moc przebudzenia, coś takiego jest bardziej odpowiednie:

start on started network

script
    interface=eth0
    logger -t 'wakeonlan init script' enabling wake on lan for $interface
    ethtool -s $interface wol g
end script
djeikyb
źródło
2
Zawsze myślałem, że funkcja Wake on Lan jest funkcją BIOS.
con-f-use
@ con-f-use Wymaga współpracy BIOS-u i karty sieciowej. Oba muszą obsługiwać WOL. Co więcej, przynajmniej moja nicka ma zły zwyczaj wyłączania wilka po rozruchu. Wiki społeczności Ubuntu sugeruje, że dotyczy to wielu komputerów.
djeikyb
@ con-f-use Ten wątek superuser.sx na temat działania zasilania i restartu jest również interesujący, ponieważ dotyczy WOL.
djeikyb
Czy należy to zmienić dla systemd?
Nathan Osman
@NathanOsman proszę dodać uporządkowaną odpowiedź! to rozwiązanie jest nadal odpowiednie dla starszych, ale nadal obsługiwanych wersji LTS
djeikyb
3

Stwórzmy nowy plik, powiedzmy wakeonlanconfig, i wstawmy do niego poniższe wiersze:

#!/bin/bash
ethtool -s eth0 wol g
exit

Następnie ustaw uprawnienia do pliku, dzięki czemu będzie on wykonywalny:

chmod a+x wakeonlanconfig

I wreszcie uruchom skrypt podczas uruchamiania:

update-rc.d -f wakeonlanconfig defaults

Więcej informacji można znaleźć na stronie: http://lukasz-lademann.blogspot.com/2013/01/how-set-up-wol-wake-on-lan-on-thin.html

Łukasz
źródło