WOL works from Suspend (S3) but fails from Shutdown (S5) - Lenovo M92p [e1000e] - Headless Setup

Hi Community,

I am facing a persistent Wake-on-LAN issue on my Lenovo ThinkCentre M92p. I’ve spent days troubleshooting, tried multiple kernels and configurations, but I hit a wall.

The Context:

  • Hardware: Lenovo ThinkCentre M92p (Mini PC)

  • CPU: Intel Core i3-3220 (Ivy Bridge)

  • NIC: Intel 82579LM Gigabit Network Connection (Driver: e1000e)

  • OS: Manjaro Linux (Custom build via buildiso, based on XFCE profile but stripped down to AwesomeWM/Headless).

  • Setup: Headless server. lightdm service is disabled. No GUI power managers (like xfce-power-manager) are installed. I access the machine solely via SSH.

  • Kernel: Currently 6.12 LTS (Manjaro default).

  • Boot Mode: UEFI.

The Problem:

  • Suspend (S3): WOL works perfectly. I can wake it up instantly.

  • Shutdown (S5): WOL fails completely. (Note: Since it is a headless server in a remote location, getting physical access to turn it on manually is problematic, so reliable WOL is critical).

Why I suspect a Manjaro-specific config issue: This exact same machine, with the exact same BIOS settings, works perfectly (wakes from S5) under Debian 12 (UEFI mode) and Alpine Linux (Legacy mode).

What I have tried so far (without success):

  1. BIOS Settings:

    • WOL: Enabled (Primary/Automatic).

    • Deep Sleep / Enhanced Power Saving Mode: DISABLED (Verified multiple times).

    • CSM: Enabled (Network: Legacy First).

  2. Kernels:

    • Currently running 6.12, but I also tested 6.6 LTS and 6.1 LTS (since Debian uses 6.1, I hoped this would fix it).

    • Also tried XanMod v2 kernel.

    • Result: None of them wake from S5 on Manjaro.

  3. GRUB Parameters: Tried the following combinations:

    • pcie_aspm=off

    • acpi_osi=Linux

    • xhci_hcd.quirks=270336

  4. Software Configuration:

    • ethtool eno1: Shows Supports: pumbg, Wake-on: g.

    • Created NetworkManager dispatcher scripts (pre-down) to force ethtool -s eno1 wol g.

    • Created systemd shutdown hooks to force wol g.

    • Removed TLP to rule out power-saving interference.

    • Tried systemctl halt instead of poweroff.

My Question: Since Debian (UEFI) can handle this hardware correctly, is there any specific Manjaro kernel configuration or systemd shutdown behavior that aggressively cuts power to the PCI bus for Ivy Bridge era hardware?

Here is my system info:

inxi -Fazy                                                                                           gabi@gshoots
System:
Kernel: 6.12.48-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-6.12-x86_64
root=UUID=504332ef-8e60-4911-8278-9dee6581fbba rw rootflags=subvol=@ quiet
splash apparmor=1 security=apparmor udev.log_priority=3
Console: pty pts/0 DM: LightDM v: 1.32.0 Distro: Manjaro base: Arch Linux
Machine:
Type: Desktop System: LENOVO product: 3227F41 v: ThinkCentre M92p
serial:  Chassis: type: 3 serial: 
Mobo: LENOVO model: MAHOBAY v: NO DPK serial: 
part-nu: LENOVO_MT_3227 uuid:  Firmware: UEFI
vendor: LENOVO v: 9SKT9CAUS date: 12/11/2018
CPU:
Info: model: Intel Core i3-3220 bits: 64 type: MT MCP arch: Ivy Bridge
gen: core 3 level: v2 built: 2012-15 process: Intel 22nm family: 6
model-id: 0x3A (58) stepping: 9 microcode: 0x21
Topology: cpus: 1x dies: 1 clusters: 2 cores: 2 threads: 4 tpc: 2
smt: enabled cache: L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB
desc: 2x256 KiB L3: 3 MiB desc: 1x3 MiB
Speed (MHz): avg: 1596 min/max: 1600/3300 scaling: driver: intel_cpufreq
governor: schedutil cores: 1: 1596 2: 1596 3: 1596 4: 1596 bogomips: 26350
Flags-basic: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
Vulnerabilities:
Type: gather_data_sampling status: Not affected
Type: indirect_target_selection status: Not affected
Type: itlb_multihit status: KVM: VMX unsupported
Type: l1tf mitigation: PTE Inversion
Type: mds mitigation: Clear CPU buffers; SMT vulnerable
Type: meltdown mitigation: PTI
Type: mmio_stale_data status: Unknown: No mitigations
Type: reg_file_data_sampling status: Not affected
Type: retbleed status: Not affected
Type: spec_rstack_overflow status: Not affected
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and \__user pointer
sanitization
Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
STIBP: conditional; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
affected
Type: srbds status: Not affected
Type: tsa status: Not affected
Type: tsx_async_abort status: Not affected
Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
Device-1: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics
vendor: Lenovo driver: i915 v: kernel arch: Gen-7 process: Intel 22nm
built: 2012-13 ports: active: none empty: DP-1, DP-2, HDMI-A-1, HDMI-A-2,
VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0152 class-ID: 0300
Display: unspecified server: X.org driver: N/A tty: 118x38
API: EGL v: 1.5 hw: drv: intel crocus platforms: device: 0 drv: crocus
device: 1 drv: swrast surfaceless: drv: crocus inactive: gbm,wayland,x11
API: OpenGL v: 4.5 compat-v: 4.2 vendor: mesa v: 25.2.3-arch1.2
note: console (EGL sourced) renderer: Mesa Intel HD Graphics 2500 (IVB GT1),
llvmpipe (LLVM 20.1.8 256 bits)
Info: Tools: api: eglinfo,glxinfo x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Intel 7 Series/C216 Family High Definition Audio vendor: Lenovo
driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1e20
class-ID: 0403
API: ALSA v: k6.12.48-1-MANJARO status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: JACK v: 1.9.22 status: off tools: N/A
Server-2: PipeWire v: 1.4.8 status: off with: 1: pipewire-pulse status: off
2: wireplumber status: off 3: pipewire-alsa type: plugin
tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel 82579LM Gigabit Network vendor: Lenovo driver: e1000e
v: kernel port: f080 bus-ID: 00:19.0 chip-ID: 8086:1502 class-ID: 0200
IF: eno1 state: up speed: 1000 Mbps duplex: full mac: 
IF-ID-1: br-2a816a1a3f2e state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-2: br-3064d1ab4f39 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-3: br-3373c988ee97 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-4: br-45c6cbd0703b state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-5: br-52680e4c8f78 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-6: br-670a7b90d600 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-7: br-6b23b600a38f state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-8: br-7006a4372e3b state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-9: br-c430add4b212 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-10: br-c5d0fac06dff state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-11: br-d1558fd0e035 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-12: br-eebd02ff21fe state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-13: br-ef2212b65843 state: up speed: 10000 Mbps duplex: unknown
mac: 
IF-ID-14: br-f38f3151bb65 state: down mac: 
IF-ID-15: docker0 state: down mac: 
IF-ID-16: veth0a82626 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-17: veth1456558 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-18: veth2c6a82c state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-19: veth2c73067 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-20: veth2e8838d state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-21: veth3a0ac47 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-22: veth3ebcd25 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-23: veth49a3149 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-24: veth5006398 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-25: veth572d955 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-26: veth5be586f state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-27: veth67a7950 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-28: veth68004d9 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-29: veth6edb395 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-30: veth7f296f5 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-31: veth8697f41 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-32: veth8ca3d84 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-33: vethbab4b09 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-34: vethc2d56d4 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-35: vethc79bbfa state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-36: vethce67d04 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-37: vethdced8c5 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-38: vethe2937a1 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-39: vethe8ef5e1 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-40: vetheaf0bc3 state: up speed: 10000 Mbps duplex: full
mac: 
IF-ID-41: vethfd6cd26 state: up speed: 10000 Mbps duplex: full
mac: 
Info: services: apache2, httpd, NetworkManager, nginx, smbd, sshd,
systemd-timesyncd
Drives:
Local Storage: total: 1.03 TiB used: 621.71 GiB (59.2%)
SMART Message: Required tool smartctl not installed. Check --recommends
ID-1: /dev/sda maj-min: 8:0 vendor: Apacer model: AS350 128GB
size: 119.24 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial:  fw-rev: 200 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Western Digital model: WD10EADS-65L5B1
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s
tech: N/A serial:  fw-rev: 1A01 scheme: GPT
Partition:
ID-1: / raw-size: 118.95 GiB size: 118.95 GiB (100.00%)
used: 64.16 GiB (53.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 632 KiB (0.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 118.95 GiB size: 118.95 GiB (100.00%)
used: 64.16 GiB (53.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/log raw-size: 118.95 GiB size: 118.95 GiB (100.00%)
used: 64.16 GiB (53.9%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 15.29 GiB used: 0 KiB (0.0%) priority: 300
comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 max-streams: 4
dev: /dev/zram0
Sensors:
System Temperatures: cpu: 16.0 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Memory: total: 8 GiB available: 7.64 GiB used: 3.37 GiB (44.1%)
Processes: 387 Power: uptime: 17m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 3.04 GiB Init: systemd v: 257
default: graphical tool: systemctl
Packages: pm: pacman pkgs: 1121 libs: 321 tools: pamac,yay pm: flatpak
pkgs: 0 Compilers: gcc: 15.2.1 Shell: Zsh v: 5.9 running-in: pty pts/0 (SSH)
inxi: 3.3.40 \[/details\]

Any help would be appreciated!

Mod edit: Added proper code formatting; ``` on their own lines above and below the Terminal output. :wink:

Let me say - I have very little experience with WOL - but I tell myself I understand why some will want it.

To my knowledge - there is no kernel configuration which changes the default kernel behaviour in that regard.

You can find the kernel PKGBUILDS on core · GitLab

At some point I did use WOL to wake a local M75q and what I learned it is the hardware’s that is responsible. The operating system has no say, and from what I gather from the Arch Wiki - you may need to ensure wake-on-lan is reactivated after a reboot.

What I learned then was that for WOL to work the system can never loose power - if it does - the ability to wake-on-lan - at least in my case - was void.

A quick search gave me this link - I don’t know if you can use it - but as I don’t have enough knowledge - this was the least I could do :slight_smile: especially because it contains link to useful information on the Arch Linux wiki.

Thank you for the formatting edit!

Also, huge thanks to @linux-aarhus for the insights. I followed the gist you linked: I created /etc/systemd/system/wol@.service, enabled it for eno1, and verified it with systemctl status. It returns SUCCESS (exit code 0), showing that the ethtool -s eno1 wol g command was executed correctly.

Unfortunately, the machine still does not wake from Shutdown (S5) (though S3 suspend works perfectly).

Since the OS configuration now seems correct (the service runs, ethtool shows g, and /sys/.../wakeup is enabled), I suspect I might need to double-check the hardware side. I plan to connect a monitor to the machine tomorrow to inspect the BIOS settings again (specifically regarding CSM/Legacy network boot options) and check the physical link LEDs after shutdown.

I will report back if I find the culprit!

1 Like

It turns out the problem was predominantly “User Error” (BIOS settings). :sweat_smile:

I finally connected a monitor to the headless unit to inspect the BIOS properly, and found the culprits:

  1. Enhanced Power Saving Mode was set to Enabled (it effectively kills the NIC power in S5).

  2. Network Boot was set to Disabled (excluded from the boot sequence). —>But i guess thats dont matter

After setting Enhanced Power Saving to Disabled and enabling Network Boot in the boot sequence, the machine wakes up from S5 perfectly!

@linux-aarhus: Thank you for the guidance! Even though the root cause was in the BIOS, I am very glad you shared the wol@.service method. Since this recommendation comes from a Manjaro team member, I consider this the “best practice” for ensuring persistence. I will definitely integrate this systemd service into my custom ISO profile so WOL is enabled correctly by default on fresh installs.

Thanks for the help, marking this as solved!

1 Like

Great to hear :+1:

Yesterday I decided to brush up on my WOL - I have an older ThinkStation P330 with Intel network.

I had to call it a day before I finished - but I did find the same as you did - Powersave Settings will disable Wake-on-LAN.

After seing your response - I picked up from yesterday.

As I completely cut power to my equipment during night - I could test if my memory was correct - that is if the system loose AC connection, the WOL feature is void - and my memory was not correct.

I just sent a wol magic packet to the workstations MAC address - and :sparkler: the workstation started.

Now I realise why this is cool :slight_smile:

By the way - network boot need not be enabled.

For network boot to be doable you need a tftp service in your local network to serve a bootable image on request.

1 Like

That is great confirmation regarding the Power Saving settings! It seems Lenovo really wants to save that 0.5W in S5 by default. :grinning_face_with_smiling_eyes:

Thanks for the clarification on Network Boot as well. I enabled it mostly out of habit (on some older legacy machines, enabling the LAN Option ROM via Network Boot was sometimes required to keep the NIC alive), but it makes sense that for pure WOL, it’s not strictly necessary if the hardware supports it natively.

It’s good to know it survives AC power loss too – that makes it a truly robust solution for a headless server.

Thanks again for taking the time to test this on your ThinkStation and for the help!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.