Traduções: English - Español - Français - Italiano - Português (Brasil) - Русский


Ligar o Computador pela Rede (Wake On LAN - WOL)

Algumas observações sobre como o Wake On LAN (WOL) funciona em sistemas Debian.

Hardware

O primeiro passo para iniciar seu computador pela rede é verificar que sua placa de rede e sua placa mãe suportam algum tipo de funcionalidade de Wake On LAN. Notavelmente placas 3Com-' -NM (não gerenciáveis) não suportam WOL enquanto suas placas -M (gerenciáveis) suportam.

Existem dois sistemas principais. O método mais antigo usa um conector de três pinos WOL conectando sua placa de rede Ethernet e sua placa mãe. O cabeçalho nas pontas do cabo possuem o rótulo 'wol' usualmente. Sistemas novos usam o pino WOL no próprio barramento PCI, não precisando do cabo. Algumas placas mães suportam os dois métodos e somente disponibilizam a entrada de três pinos para manter compatibilidade com placas de rede que não suportam o pino pelo PCI.

Placas-mãe recentes usam interfaces de rede próprias e suportam WOL sem a necessidade de qualquer pino/cabo.

Firmware / BIOS

Em um bom BIOS sobre a área de gerenciamento de energia (power management) você terá uma opção clara e intuitiva chamada "Wake On LAN". Outro nome possível da opção pode ser "PowerOn by PCI Card". 1

Software

Configuração da Interface

Stretch

Adicione esse arquivo

$ cat /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet dhcp
        ethernet-wol g

reinicie. Verifique se funcionou com

$ sudo ethtool eth0

Settings for eth0:
        Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: g
        Wake-on: g
        Link detected: yes

Wake-on: g significa que funcionou.

Squeeze

Como no ethtool do Squeeze os parâmetros podem ser configurados diretamente no /etc/network/interfaces. As coisas feitas acima podem ser feitas desta forma:

iface eth0 inet dhcp
        ethernet-wol g

O script /etc/network/if-up.d/ethtool então chamará ethtool durante o ifup. Veja /usr/share/doc/ethtool/README.Debian para mais informações

Você poderá então desligar o seu sistema, e preparar outros sistemas para acordá-lo.

Antes do Squeeze

Depois de ativar o Wake On LAN no hardware é também necessário ativá-lo no software. Isto é feito usando o ethtool, o qual informa a interface para responder ao pacote mágico. Substitua eth0 com o nome da sua interface de rede:

$ su
# aptitude install ethtool
# ethtool -s eth0 wol g

Isto pode ser automatizado editando /etc/network/interfaces:

iface eth0 inet dhcp
        post-up /sbin/ethtool -s $IFACE wol g
        post-down /sbin/ethtool -s $IFACE wol g

Isto roda ethtool sempre depois que a interface eth0 é levantada, e também depois dela ser desligada, então o WOL deve funcionar mesmo se a interface não foi corretamente desligada.

Enviando as Mensagens WOL

Eu instalei o pacote etherwake no controlador do sistema para o comando etherwake enviar o "Pacote Mágico" para o meu computador acordar. O programa deve ser rodado como administrador (root). Após usar o ?su para tornar-se administrador:

# aptitude install etherwake
# etherwake <mac address>

O wakeonlan também está disponível,um programa que usa pacotes UDP e não TCP, e portanto não precisa ser rodado como root. Ele também é um pouco mais configurável.

# aptitude install wakeonlan && exit
$ wakeonlan <mac address>

Sensibilidade ao WOL

Descobri que não desejo nenhuma opção do Wake On LAN exceto o Wake on "Magic Packet" (g). Eu desejo que minha máquina ligue quando eu especificamente falar para ela, não em mensagens unicast (u), mensagens broadcast (b) ou mensagens multicast (M).

Persistência WOL

O hardware lê as especificações, o BIOS aparenta estar correto, mas ainda não funciona sem alguns ajustes usando o software. De acordo com as perguntas frequentes do cliente Wake On Lan, a maioria dos drivers do Linux desativam o recurso WOL no boot << ?FootNote (http: //ahh.sourceforge.net/wol/faq.html) >>, então precisamos continuar.

Kernel 2.6

Com um kernel 2.6, estamos usando /etc/modprobe.d. Você pode usar /etc/modprobe.conf, mas este deve estar incluso em /etc/modprobe.d. Estou usando /etc/modprobe.d e adicionei um arquivo local.conf ao diretório. Nele está escrito:

install 8139too /sbin/modprobe -i 8139too; /sbin/ethtool -s eth0 wol g

ethtool vem do pacote ethtool, então você precisará instalar esse a menos que sua placa suporte uma opção de inicialização para definir o WOL. Se for esse o caso, eu faria um arquivo {local.conf com as opções apropriadas, talvez algo como:

options 3c59x enable_wol=1

Testando em outra máquina com um C3905B-TXNM e um 3C905C-TXM que usa o módulo 3c59x para controlá-los, descobri que o ethtool não conseguiu consultá-los ou definir a configuração WOL, mas que enable_wol = 1 a configuração funcionou e foi necessária.

Enquanto eu estava mexendo com essas configurações, notei que tanto o 8139too quanto o 8139cp estavam carregando, mas o carregamento de apenas 8139cp sozinho falhou, pois meu chipset não era suficientemente novo, então eu desativei-o da inicialização do kernel.

Depuração de estado com ethtool

Depois de uma hora lutando com o motivo pelo qual meu sistema ainda não funcionou, comecei a lançar o comando de consulta ethtool em todo o lugar para ver qual era o negócio:

# ethtool eth0

ifup

Eu achei que (pelo menos com meu driver 8139too no Debian 3.1/Sarge) a linha de instalação funcionaria quando eu no modprobe 8139too, mas o ifup também reinicia o WOL da configuração, então adicionei uma linha no /etc/network/interfaces sob eth0:

iface eth0 inet dhcp
         up /sbin/ethtool -s $ IFACE wol g

Mantive o comando ethtool em /etc/modprobe.d/local.conf no caso de iniciar e se o ifup não for executado antes de desligar.

Conclusão

O Wake On LAN funciona no Debian e abre algumas opções novas para mim.

Posso entrar no meu gateway e inicializar minha máquina, pegar o que preciso e depois desligá-la remotamente. Estou usando DHCP com mapeamentos de MAC-para-IP para que eu possa procurar nesse arquivo no meu sistema de gateway para conhecer o endereço MAC do sistema que eu gostaria de acordar. Se eu não tivesse isso, eu poderia manter um arquivo de texto.

A minha próxima proeza é ter o desligamento dos sistemas não essenciais (não apenas parar) em uma queda de energia para estender o tempo de execução da bateria para os sistemas essenciais e, em seguida, usar o WOL para ligar novamente os outros sistemas após a restauração da energia e que a bateria alcance um nível de carga específico. Eu acho que algumas configurações com parada ou APM ou ACPI não estão corretas nesses sistemas. Veja OffAndOnAgain.


CategoryNetwork | CategorySystemAdministration