Wake on Lan not working as intended

Hey, maybe you can help me with using wake on lan with framework desktop. I’m running nginx proxy manager on there and connected lm-studio deamon and my router with it, so I can reach my LLM from anywhere. This part works. But I also want to be able to turn the machine on when it is needed, to not have it always on.

But I only get it to work in a state where the computer randomly wakes as soon as it is noticing any network traffic over ethernet. So the machine is not only being waked by magic packets, but by anything. At least this is how I understand it from my non expert point of view. I worked on it with gpt-oss-120b for a while, but couldn’t come to a conclusion. Gpt says the problem probably is a combination of me running nginx proxy manager on the system I want to wake over lan and the missing BIOS option for wake-over-lan with magic packets only.

But I think that is not the whole story and maybe this is the point where some human logic is needed; so I can understand if the problem is fixable on my side or if the BIOS actually needs a more specific wol option. Maybe some of you can help me with this?

Fedora 43

Linux 7.0.10-101.fc43.x86_64 x86_64

BIOS 3.05

Framework Desktop 395 Max+ 128gb

Written by GPT:

What we did – step‑by‑step overview

BIOS/UEFI

• Enabled “Wake‑on‑LAN” (generic toggle). → Enabling let the NIC see any PME event → random wakes.
• Later disabled it completely. → Disabling stopped all wakes but also blocked magic‑packet wake.

NIC driver (Linux)

• Verified WoL support with ethtool.
• Set mode to g only.
• Made the setting persistent via a systemd service (acpi-wakeup-disable.service).

-> NIC now listens only for magic packets, but still woke up because other traffic triggered the generic BIOS PME flag.

ACPI wake sources

• Listed /proc/acpi/wakeup (many devices enabled). -
• Disabled all non‑NIC entries with a one‑shot systemd service (for dev in GPP0 … NHI1; do echo $dev > /proc/acpi/wakeup; done).

-> No extra PCIe/USB device could wake the box.

Router (Fritz!Box) / DynDNS

• Port forward for HTTPS (nginx reverse proxy)
• Router’s built‑in “reachability check” periodically sent ARP/TCP probes to the forwarded port.
• No UI option to disable that check.

→ Those probes reached the NIC and, because BIOS WoL was generic, caused spontaneous wakes even without a magic packet.

Network capture

• Captured traffic with tcpdump / tshark while PC was off.
• Looked for packets beginning with ff ff … + MAC.

-> Confirmed that router‑generated broadcast/ARP/TCP frames were being seen by the NIC.

Bottom line

The BIOS WoL flag was the root cause of random wakes because it responded to any network activity (router health checks).
We limited the NIC driver to magic‑packet only (g), and cleared all other ACPI wake sources, but the router’s periodic probes still triggered the BIOS PME line.

1 Like

Interesting, I also am facing random wakes after enabling WOL in Fedora, without me sending it any packets.

It appears it’s not an isolated issue.

How did you fix this issue?

Did you have to change the distro?

I did not fix the issue yet. I am not using WoL as of right now, even though I‘d really like to. Apparently upgrading to Fedora 44 also doesn’t fix the issue either. Hoping that one day a BIOS update fixes this.

From what I recon WoL is accessible in the BIOS but should not work as the NIC is internally routed via an USB controller!? Maybe the random wake-up is feed from USB related events?

This may fix your issue.

It seems as if the recent BIOS update 3.06 fixed the issue. Even though the patch notes did not mention anything related to wake on lan directly (at least for my understanding), I tried it again. And it looks good. My computer is not randomly powering on now with wake on lan enabled. Yay! :slight_smile:

Okay, but randomly waking is not what wake on lan is about, tbh :wink:

To clarify: The problem was that turning on wake on lan led to the computer waking up randomly, without intend. Now when you turn on the feature within bios, the computer only boots via magic packets if you tell to and otherwise remains turned off.