retorno imediato do repouso S3 quando o cabo ethernet está conectado

0

O problema:

  • O computador retoma a partir do repouso S3 (suspender para ram) dentro de 5 segundos de suspensão se o cabo Ethernet estiver conectado

Hardware:

  • Intel E2180
  • Gigabyte P35-DS3L
  • Realtek RTL8111b (usando o módulo r8169)

Software:

  • Desativou a ativação da ACPI para todos os dispositivos, por /proc/acpi/wakeup
  • logs do kernel por dmesg parecem normais - nenhum driver inibe a suspensão ou quaisquer outros problemas. Os logs de uma suspensão bem-sucedida (cabo ethernet desconectado) e uma interrupção interrompida (cabo ethernet conectado) são os mesmos.
  • no S3 suspend-to-ram o kernel ativa a ativação da ACPI para a ponte PCI-e. Eu suspeito que isso seja normal.
  • BIOS: ativação de mouse / teclado USB desativada, ativação wake-on-ring, ativação ativada por PME
  • ethtool relata que o WOL está definido para ug .

Suspeitei que um dispositivo com falha emitia pacotes contínuos de WOL, mas o Wireshark não registra nenhum pacote de WOL enquanto o computador está ligado.

Isso ocorre mesmo com todas as outras portas (USB) desconectadas (deixando VGA / ethernet).

Além disso, vou precisar da funcionalidade WOL

Editar:

  • Desativar o WOL na interface de rede usando ethtool impede a retomada imediata.
por user19087 01.12.2016 / 18:08

2 respostas

0

Acontece que este é um mal-entendido das configurações da interface do kernel para o wake-on-lan. De manual do ethtool :

Sets Wake-on-LAN options.  Not all devices support this.
The argument to this option is a string of characters
specifying which options to enable.

p   Wake on PHY activity
u   Wake on unicast messages
m   Wake on multicast messages
b   Wake on broadcast messages
a   Wake on ARP
g   Wake on MagicPacket™
s   Enable SecureOn™ password for MagicPacket™
d   Disable (wake on nothing).  This option
    clears all previous options.

Assumi que os sinalizadores unicast ou broadcast restringiriam a origem do pacote mágico, ou seja:

  • ug: acorde apenas se um pacote de WoL unicast foi recebido
  • bg: só acorde se um pacote de WoL de transmissão for recebido

No entanto, os sinalizadores unicast ou broadcast correspondem a qualquer pacotes unicast ou broadcast. O que realmente acontece:

  • ug: wake se um pacote unicast foi recebido, ou se um pacote WoL foi recebido (unicast ou broadcast; não importa desde que o MAC corresponda)
  • bg: wake se um pacote de transmissão foi recebido ou se um pacote de WoL foi recebido (unicast ou broadcast; não importa desde que o MAC corresponda)

É claro que a condição comum unicast se aplica aos sinalizadores unicast (u) e WoL (g): pacotes unicast só podem ser recebidos se o MAC do destino ainda estiver na tabela ARP.

    
por 01.12.2016 / 21:04
0

Eu tenho a mesma placa-mãe e o mesmo problema ... você estava muito perto de descobrir uma solução. Altere a configuração da interface de rede, para que ela aceite apenas "magicpacket" e esqueça sobre multicast / unicast ...

sudo ethtool -s eth0 wol g

Isso fez o truque para mim e, como bônus, consegui acordar o computador da rede (com etherwake)

    
por 18.03.2018 / 23:29