Wake-on-LAN quebrado em 64 bits, funciona em 32 bits

2

Como posso fazer com que o WOL funcione no Ubuntu de 64 bits?

É uma situação estranha. O hardware é um ASUS G75VW 3D altamente modificado. O Windows e o Ubuntu de 32 bits funcionam bem para o Wake on LAN. A placa-mãe tem um papel menor aqui, tendo apenas algumas configurações de economia de energia que eu desativei no BIOS para permitir o WOL. Em seguida, a NIC precisa ser configurada. No Windows, essa é uma configuração única e funciona muito bem. No Ubuntu 32 bits, usei um gatilho rc.local para ethtool e funcionou muito bem.

No Ubuntu de 32 bits, a placa de rede aparece como eth0 , como se poderia esperar. Em 64 bits, ele é renomeado para enp4s0 . Eu sei que ele é renomeado porque eu verifiquei dmesg , que também diz por que meu script rc.local não altera o wol de d para g em ethtool :

[    1.624275] atl1c 0000:04:00.0 enp4s0: renamed from eth0
[    3.821446] IPv6: ADDRCONF(NETDEV_UP): enp4s0: link is not ready
[    3.822431] atl1c 0000:04:00.0: atl1c: enp4s0 NIC Link is Up<1000 Mbps Full Duplex>

tudo bem. Eu posso lidar com o link não estar pronto, colocá-lo em um temporizador ou algo assim para mais tarde. Mas se eu configurá-lo manualmente, ethtool diz que está mostrando wol g para o cartão

Supports Wake-on: pg
Wake-on: g

Por algum motivo, isso é redefinido quando eu desligo o computador, porque o pacote mágico wol não acorda o computador mesmo depois disso.

Teste

Eu testei muitas coisas. Primeiro, o gatilho wol não funciona se o laptop tiver sido desconectado, mesmo que por um breve período. Ele funciona se o cabo ethernet foi desconectado e conectado novamente. O disparador wol está claramente sendo definido quando o sistema é desligado, pois se eu desligar o ubuntu de 32 bits e trocar os discos rígidos sem desconectá-los, posso usar o ubuntu em 64 bits.

Suspeito que tenha algo a ver com os controladores, mas não sei onde os obter, se for esse o caso. Então, novamente, posso apenas executar o driver de 32 bits em 64 bits e acabar com isso? Eu tenho bibliotecas de 32 bits na máquina para outros fins.

Não consigo resolver isso executando o Ubuntu de 32 bits, porque eu executo as JVMs na máquina que exigem uma grande quantidade de RAM (além do limite de 32 bits).

Para os documentos de ajuda do ubuntu , removi network-manager e tentei configurar a conexão com ifup ( daqui ). Infelizmente, o ifup não reconheceu a interface. Aqui estava o conteúdo do meu arquivo /etc/network/interfaces em 64 bits.

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

Não sei por que minha placa wireless e a placa ethernet não foram listadas lá. Aqui está ifconfig -a .

enp4s0    Link encap:Ethernet  HWaddr 10:bf:48:19:08:b4
          inet addr:192.168.1.91  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::12bf:48ff:fe19:8b4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:505 errors:0 dropped:0 overruns:0 frame:0
          TX packets:289 errors:0 dropped:0 overruns:0 carrier:1
          collisions:0 txqueuelen:1000
          RX bytes:48646 (48.6 KB)  TX bytes:38816 (38.8 KB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:57 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8091 (8.0 KB)  TX bytes:8091 (8.0 KB)

wlp3s0    Link encap:Ethernet  HWaddr c4:85:08:70:7d:7b
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Então, por uma postagem no fórum , adicionei enp4s0 manualmente ao arquivo de interfaces de rede. Agora parece:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto enp4s0
iface enp4s0 inet dhcp

Então o ifup funcionou. Eu não sei se fiz certo, mas tudo que fiz foi digitar:

ifup enp4s0

Tudo ainda funcionou e ainda consegui SSH depois de reiniciar, então acho que ainda não quebrei minha placa ethernet. Eu realmente não sei o que estou fazendo aqui pessoal e estou me agarrando a palhas.

Eu li um pouco mais abaixo na página de ajuda e percebi que ignorava o link para um bug .

Seguindo a solução alternativa, adicionei um script a rc6.d e rc0.d e defini-os como executáveis, mas não sei como verificar se realmente foram executados (acho que eu poderia echo something e verificar dmesg ...Isso funcionaria?). Eu reiniciei a máquina uma vez por uma boa medida e a desliguei, mas ela ainda não apresentou tentativas de WOL.

Seguindo o buraco do coelho, encontrei um comentar em uma postagem no blog , que sugeria um endereço IP estático mais específico, ajudaria. Eu não entendi porque (já que o pacote mágico envia para toda a rede com um endereço mac), mas eu tentei mesmo assim. Se minha configuração para interfaces de rede se parece com a dele, não há mudança.

Mais detalhes sobre a máquina. Tanto 32 bits quanto 64 bits estão no mais recente Ubuntu 15.10 Wily Werewolf .

Atualizar

Eu tenho mais pesquisas.

Posso confirmar que o WoL funciona em uma nova instalação do Wily Werewolf de 64 bits. Depois disso, eu corri:

sudo apt-get update
sudo apt-get upgrade

E depois o WoL parou de funcionar. Esse parece ser o único passo necessário para reproduzir meu problema.

Então, novamente, aqui está minha pergunta:

Como posso ativar o wake on lan no Ubuntu de 64 bits?

    
por deltree 28.10.2015 / 02:59

1 resposta

1

Acho que finalmente encontrei uma resposta para esse problema. Na versão 15.10, os utilitários TLP foram introduzidos como padrão. Então, em dist dist upgrade você obtém uma configuração padrão no TLP dizendo WOL_DISABLE = Y

Mesmo o link diz que, se o computador não acordar após a suspensão / hibernação ao usar o TLP, defina o valor WOL_DISABLE como N em / etc / default / tlp.

Eu testei isso no Ubuntu-MATE 16.04 LTS (64 bits) onde o WOL não funcionou após a instalação. Alterar a configuração do TLP faz com que funcione novamente.

Espero que isso ajude em seu problema também.

    
por paradix 02.05.2016 / 11:42