Como ativar o Wake On Lan (WOL) no Ubuntu 16.04

26

Como habilitar o Wake On Lan (WOL) no Ubuntu 16.04 LTS?

nkef
fonte

Respostas:

21

Eu encontrei uma maneira melhor que funcionou para mim. Pelo menos de uma maneira mais limpa. Aparentemente, o Ubuntu mudou o inicio do systemd , no Ubuntu 15.04, Ubuntu 16.04 e presumivelmente nas próximas versões também. Eu sou novo nos dois sistemas, mas isso funcionou para mim.

Estou postando isso porque, enquanto pesquisava no Ubuntu 16 wol e outras pesquisas semelhantes, me deparei com esse post várias vezes. Isso poderia ajudar outra pessoa.

Para manter o WOL funcionando, tive que reativá-lo sempre que o sistema inicializou. Para evitar fazer isso manualmente, usei o systemd para essa finalidade. Isto é o que eu fiz:

  1. Primeiro, crie o arquivo /etc/systemd/system/[email protected](mantenha o símbolo @). Coloque isso nele:

    [Unit]
    Description=Wake-on-LAN for %i
    Requires=network.target
    After=network.target
    
    [Service]
    ExecStart=/sbin/ethtool -s %i wol g
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    
  2. Habilite isso para a interface na inicialização, execute o seguinte comando (altere eth3 com sua interface):

    systemctl enable wol@eth3
    

    Você deve ver algo assim:

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  3. Para verificar se está ativado, execute o seguinte comando (altere eth3 com sua interface) e ele deverá retornar enabled:

    systemctl is-enabled wol@eth3
    
  4. Para testar isso, reinicie e execute (altere eth3 com sua interface):

    ethtool eth3
    

    Você deve ver uma linha com o seguinte:

    Wake-on: g
    

Fontes:

loco.loop
fonte
2
+1 isso é muito melhor. deve ser o aceito.
Stefanos Kalantzis
19

No Ubuntu 16.04, configure WOL_DISABLE=N-o /etc/default/tlppara evitar a desabilitação do WOL pelo gerenciamento de energia TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

Adicionar NETDOWN=noem /etc/default/haltpara evitar desligar a placa de rede durante o desligamento

Ativar Wake on LAN em /etc/network/interfaces quando a configuração de rede estática for usada.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback
# The primary network interface

auto eth0
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1
        up ethtool -s eth0 wol g

Ative o wake on lan no BIOS, entre na configuração do BIOS e procure por algo chamado "Evento Wake up on PCI", "Wake up on LAN" ou similar. Altere-o para que ele esteja ativado. Salve suas configurações e reinicie.

https://help.ubuntu.com/community/WakeOnLan

Aviso: algumas placas-mãe / controladoras de rede não suportam WOL desde a inicialização a frio (estado S5, onde a energia do sistema é fisicamente desligada e ligada novamente). Nesse caso, pelo menos um ciclo de energia (inicialização, desligamento) deve ser realizado. Para atenuar o problema, o BIOS pode ser configurado para ligar quando o AC for restaurado e agendar um desligamento no Ubuntu posteriormente. Consulte o manual da placa-mãe para obter mais detalhes.

nkef
fonte
Isso funcionou para mim em 14.04 LTS. Obrigado!
TenLeftFingers
esses dois comentários sobre WOL_DISABLE=Ne NETDOWN=nodevem fazer parte de help.ubuntu.com/community/WakeOnLan
Alecz:
3

Para que o WOL funcione, verifique se a interface Ethernet está sendo desligada corretamente pelo sistema quando você desligar.

Tente o seguinte:

  1. Crie um script bash chamado wol_poweroff.sh no diretório /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Coloque este código nele:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Copie-o para o diretório /etc/rc0.d (para que também funcione com parada ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Torne os dois executáveis:

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

Agora teste para ver se funciona desligando sua máquina com sudo shutdown nowou sudo poweroffusando uma ferramenta WOL para enviar um pacote mágico a ela.


Essa foi a única coisa que funcionou para mim. Encontrei essas etapas em um relatório de bug no launchpad.net.

Segundo o autor, Robbie Williamson, isso funciona devido ao seguinte:

Para que o WOL funcione, a interface Ethernet deve ser desativada corretamente como parte do desligamento do sistema. Isso deve ser executado como parte dos níveis de execução rc0 e rc6, observando que o Linux normalmente possui 7 níveis de execução diferentes (ou modos de operação):

rc0.d - Sistema parado

rc1.d - Modo de usuário único

rc2.d - Modo de usuário único com rede

rc3.d - Modo multiusuário - inicialize no modo de texto

rc4.d - ainda não definido

rc5.d - Modo multiusuário - inicialize no X Windows

rc6.d - Desligamento e reinicialização


Fonte: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461

Edson Jr.
fonte
2

Execute o seguinte no terminal:

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

você deve ver um g ao lado para acordar na lan após escrever o segundo comando

fonte

Marwan Nabil
fonte
2

Se você usa o NetworkManager, pode ativar o WOL via nmcli:

nmcli connection show

Lembre-se de NAME da conexão do "802-3-ehternet" TYPE para DEVICE de interesse. Digamos que o nome seja "Conexão com fio 1". Em seguida, modifique-o corretamente:

nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

Para obter seu endereço MAC:

nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address

A partir de agora você pode desligá-lo e ligá-lo de outra máquina na mesma LAN por wakeonlan 1a:2b:3c:4d:5e:6fcomando, onde 1a:2b:3c:4d:5e:6festá o endereço MAC da placa de LAN da etapa anterior.

Orientar
fonte
1

Além dos parâmetros sugeridos pelo @nkef, você pode definir o seguinte em / etc / network / interfaces se usar o DHCP em vez de configurações IP estáticas para o adaptador LAN (aqui chamado eth0):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(testado no Ubuntu 16.04 LTS).

rpr
fonte
1

Isso também me incomodou no Ubuntu 18.04 (instalação sem cabeçalho / instalação mínima), infelizmente as respostas já listadas aqui, embora pareçam funcionar às vezes, não fornecerão uma solução confiável, pois criam condições de corrida ou lutam com o systemd, netplan e udev.

Eu tentei essa abordagem também no começo e parecia funcionar. Estou programando um sistema para inicializar todas as noites via WakeOnLan para executar backups, pois o BIOS do sistema não fornece uma opção AC ativada.

Funcionaria por alguns dias e depois se recusava a acordar, ligando-o manualmente e executando o ethtool revelou que a WoL havia sido desativada:

    Wake-on: d

Então, imaginei que outra coisa precisava ser desativada e que tive muitos desses problemas nos últimos anos com o systemd assumindo partes do sistema que decidi começar por aqui, e eis que:

WakeOnLan = .. .. O padrão é desativado.

https://www.freedesktop.org/software/systemd/man/systemd.link.html

Os exemplos on-line mostram algo como:

/etc/systemd/network/50-wired.link

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Como sempre isso ainda não estava funcionando. Então me deparei com isso:

udevadm test-builtin net_setup_link  /etc/systemd/network/50-wired.link

que resultou em:

Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link

E o que encontro em /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Solução :

  1. remova o netplan,
  2. configurar rede através de uma configuração netplan,
  3. ou defina o arquivo systemd .link para ter uma prioridade mais alta.

Como eu já tinha o arquivo systemd .link, simplesmente o renomeei para 00-wired.link, reiniciei e agora o ethtool eno1 reporta:

    Wake-on: g

Sem serviços extras exclusivamente com o objetivo de tentar habilitar a WoL.

Daniel Squires
fonte