Skip to content

Regression: Wake on LAN fails after shutdown on OPNsense 25.x (em driver / ACPI _OSC error) #278

@Phil8811

Description

@Phil8811

Hi

Describe the bug
Wake on LAN (WoL) regression after upgrading from OPNsense 24.x to 25.x. WoL works after a physical power cycle (S5 from G3), but fails after a clean software shutdown (S5 from S0). The system logs show critical ACPI errors related to the PCI bridge (_OSC method failure) which likely prevents the NIC from being correctly armed for PME (Power Management Event) during the transition to S5.

Last known working version: OPNsense 24.7

Tip: to validate your setup was working with the previous version, use opnsense-revert (https://docs.opnsense.org/manual/opnsense_tools.html#opnsense-revert)

To Reproduce
Steps to reproduce the behavior:

  1. Go to Interfaces -> [LAN/WAN Interface].
  2. Enable Wake on LAN.
  3. Verify WOL_MAGIC is active using ifconfig in the shell.
  4. Go to System -> Power -> Shutdown and perform a clean shutdown.
  5. Send a Magic Packet to the device: Device fails to wake.

Expected behavior
The device should wake up upon receiving a Magic Packet after a clean software shutdown, as it did in OPNsense 24.x

Describe alternatives you considered

  1. Attempted to disable ACPI strict mode by adding hw.acpi.strict_mode="0" to /boot/loader.conf.local.

  2. Verified that the NIC hardware and motherboard still support WoL by testing after a physical power unplug/replug (where it works).

  3. Checked if the em driver correctly reports the WoL flag (it does).

  4. Considered forcing PCI Power Management Event (PME) via system tunables, but I am awaiting developer guidance on the specific sysctl/tunable compatible with the FreeBSD 14.3 em driver stack to ensure the NIC stays powered in S5.

Relevant log files

ifconfig em0 (WOL is armed):
options=4802028<VLAN_MTU,JUMBO_MTU,WOL_MAGIC,HWSTATS,MEXTPG>

dmesg ACPI Errors:
[1] pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
[1] Firmware Error (ACPI): \134_SB.PCI0._OSC: Excess arguments - ASL declared 5, ACPI requires 4 (20221020/nsarguments-311)
[1] Firmware Error (ACPI): Failure creating named object [\134_SB.PCI0._OSC.CAPD], AE_ALREADY_EXISTS (20221020/dsfield-352)
[1] ACPI Error: AE_ALREADY_EXISTS, CreateBufferField failure (20221020/dswload2-639)
[1] ACPI Error: Aborting method \134_SB.PCI0._OSC due to previous error (AE_ALREADY_EXISTS) (20221020/psparse-689)
[1] pcib0: _OSC failed: AE_ALREADY_EXISTS

Additional context
The system is an older HP Desktop platform. The issue is likely a regression in the FreeBSD 14.3 ACPI implementation or the em driver's interaction with it during the S0 to S5 transition.

Since WoL works perfectly after a physical power cycle (G3 to S5), the hardware is correctly configured in the BIOS. The failure only occurs when the OS (OPNsense) handles the shutdown, suggesting that the ACPI _OSC failure on pcib0 prevents the kernel from maintaining the power to the NIC's PME (Power Management Event) logic. This was not an issue in OPNsense 24.x (FreeBSD 13.x).

Environment
OPNsense 25.x (FreeBSD 14.3-RELEASE-p5) CPU: Pentium(R) Dual-Core E5300 @ 2.60GHz NIC: Intel(R) 82567LM-3 ICH10 (em0)

Hardware: HP Desktop PC (older platform)

CPU: Pentium(R) Dual-Core E5300 @ 2.60GHz

NIC 1 (Target): Intel(R) 82567LM-3 ICH10 (em driver)

NIC 2: Realtek PCIe GbE Family Controller (re driver)

Software version used and hardware type if relevant, e.g.:

Best Regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    supportCommunity support or awaiting triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions