[Bug 218579] bge(4): Wake on Lan (WoL) does not work

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 19 Feb 2024 20:47:37 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=218579

--- Comment #48 from Keve Nagy <freebsd.bug@nagykeve.e4ward.com> ---
Created attachment 248615
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=248615&action=edit
Files and logs collected during testing the bge-patch, 2024-FEB

The summary is:
 * the bge_wol patch works on 13.2R
 * the bge_wol patch makes no improvement on 14.0R

Used two computers for the tests. A HP T610 Thin Client with an onboard bge
interface, which boots in UEFI+GPT mode only. And a HP MicroServer N40L with an
onboard bge interface, which boots in BIOS+MBR mode only. Both computers were
set up to dual-boot between FreeBSD 13.2R and FreeBSD 14.0R, with sources
installed, and "freebsd-update fetch install" applied.
Before my tests, I connected the bge interface of both computers to an isolated
network switch. For reference I also connected a third computer without a bge
interface, this had em0. Booted a live Linux from an USB stick on one of the 3
computers at a time, shut it down, and successfully woke it up via FreeBSD's
built in "wake aa:bb:cc:dd:ee:ff" command to verify that BIOS settings,
cabling, switch, collected addresses are all OK and WOL actually works for each
of them. Then ...
* For each system, I booted the factory GENERIC kernel, run "ifconfig" to see
what it shows (WOL_MAGIC was never shown, even an "ifconfig bge0 wol" did not
activate it), issued a "shutdown -p now", and tried to wake it from one of the
other hosts. WOL with the factory kernel never woke the bge-based nodes, but
always woke the em-based computer (which did always show WOL_MAGIC in ifconfig
output).
Then booted the system again, issued a "cd /usr/src", followed by a "patch <
~/if_bge_patch240113.diff" which always completed successfully. Then "make
buildkernel", followed by "make installkernel", and "shutdown -r now".
** I booted the bge-patched GENERIC kernel, run "ifconfig" to see what it
shows, issued a "shutdown -p now", and tried to wake it from one of the other
hosts. Both bge-based nodes successfully woke when they were "shutdown -p now"
from under a bge-patched FreeBSD 13.2, but never woke when they were "shutdown
-p now" from under a bge-patched FreeBSD 14.0. The em-based host always woke,
regardless of being shut down from under FreeBSD 13.2 or 14.0.

The bge-patched 13.2 GENERIC kernel works reliably. I tried multiple times.
Also tried doing a "shutdown -r now" after a successful WOL and then doing a
"shutdown -p now". Always worked perfectly fine.
In none of the cases I experienced that the computer booted up unexpectedly
after a "shutdown -p now". So it never behaved like a "shutdown -r". Except
when I explicitly run a "shutdown -r".

See attached files.
Let me know if I can help any further.

Regards,
Keve

-- 
You are receiving this mail because:
You are on the CC list for the bug.