Эта проблема:

  • Компьютер переходит из режима ожидания S3 (приостановить-к-ram) в течение 5 секунд после приостановки, если подключен кабель Ethernet

Оборудование:

  • Intel E2180
  • Gigabyte P35-DS3L
  • Realtek RTL8111b (с использованием модуля r8169)

Программного обеспечения:

  • Я отключил ACPI wakeup для всех устройств, в /proc/acpi/wakeup
  • Журналы ядра в dmesg выглядят нормально - драйвер не тормозит приостановку или любые другие проблемы. Журналы успешной приостановки (кабель Ethernet отключен) и неисправной приостановки (кабель Ethernet подключен) одинаковы.
  • на S3 suspend-to-ram ядро принудительно включает активацию ACPI для моста PCI-e. Я подозреваю, что это нормально.
  • BIOS: пробуждение USB-мыши / клавиатуры отключено, пробуждение по кольцу отключено, пробуждение по PME включено
  • ethtool сообщает, что WOL установлен в уг.

Я подозревал, что неисправное устройство испускает непрерывные пакеты WOL, но Wireshark не записывает пакеты WOL, пока компьютер включен.

Это происходит даже при отключении всех других портов (USB) (оставляя VGA/ Ethernet).

Также мне понадобится функциональность WOL

Редактировать:

  • Отключение WOL на сетевом интерфейсе с помощью ethtool предотвращает немедленное возобновление.

2 ответа2

0

Оказывается, это неправильное понимание настроек интерфейса ядра для wake-on-lan. Из руководства пользователя 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.

Я предполагал, что одноадресные или широковещательные флаги будут ограничивать источник магического пакета, то есть:

  • ug: активировать только при получении одноадресного WoL-пакета
  • bg: активировать только при получении широковещательного пакета WoL

Однако флаги одноадресной или широковещательной передачи соответствуют любым одноадресным или широковещательным пакетам. Что на самом деле происходит:

  • ug: пробуждение, если был получен одноадресный пакет или если был получен пакет WoL (одноадресный или широковещательный; не имеет значения, если MAC совпадает)
  • bg: пробуждение, если был получен широковещательный пакет или получен пакет WoL (одноадресная или широковещательная; не имеет значения, если совпадает MAC)

Конечно, обычное одноадресное предупреждение применяется к флагам одноадресной (u) и WoL (g): одноадресные пакеты могут быть получены только в том случае, если MAC-адрес цели все еще удерживается таблицей ARP.

0

У меня та же системная плата и та же проблема ... вы были достаточно близки, чтобы найти решение. Измените конфигурацию сетевого интерфейса, чтобы он принимал только "волшебный пакет", забудьте о multicast/unicast ...

sudo ethtool -s eth0 wol g

Это помогло мне, и в качестве бонуса я могу разбудить компьютер из сети (с помощью etherwake)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .