Deep sleep on Apple Silicon drops to 0.05 W in open Aurora kernel work for Omarchy
Letting a Mac running Linux sleep for days is getting close. The MacBook Neo patches come with real measurements, but they still depend on two unmerged pieces.
Image: aurora-silicon/linux PR #1208 (GitHub)
Sleep has been one of the sore spots of Linux on a Mac, and the Aurora Silicon team now has numbers to show it can be fixed. “Deep sleep (suspend-to-RAM) for the MacBook Neo (T8140) at EL2”, opened by DjDeveloperr on November 8, 2026, measures a MacBook Neo at 0.049 W through a five-minute sleep. The pull request is still open and not merged, so this isn’t in the Aurora kernel yet.
“From the SMC’s charge counter on battery, a 300 s sleep averaged 11.3 mA, 0.049 W at 4.375 V, entry and wake included,” the PR says, adding that a fit over four sleeps gives about 8.6 mA asleep. On battery with nothing plugged in, 16 of 16 systemd suspends returned, with a median of 0.25 s to enter sleep and 1.02 s to wake. The PR is upfront that these figures come from test kernels that also carried test-only switches and debug code.
The macOS comparison needs some care. DjDeveloperr, who posts as Dj, wrote on X on November 7, 2026 that the Neo now averages 0.05 W in suspend, “just like macOS.” The PR’s own line reads differently: “macOS under aura measured 0.109 W on this machine with the same counter.” It doesn’t reconcile that figure with the claim on X, so the comparison with macOS isn’t settled.
The work itself is broad. GitHub counts 82 commits across 184 files, and Dj says suspend and wake had to be implemented in a large number of subsystems. According to him, the machine cuts the power rail to the SoC while keeping DRAM in self-refresh. The PR says its sleep controller “runs macOS’s last 14 ms in macOS’s order,” and lists wakes from the RTC alarm, the power button, the internal keyboard and trackpad, a USB keyboard, a Bluetooth keyboard, the lid and a Wi-Fi magic packet. Once the controller binds, deep sleep becomes the default for systemctl suspend, and mem_sleep_default=s2idle still keeps the old behavior.
It can’t land alone. The series needs two pull requests in Aurora’s aura repository that are also still open: aura#117, which gives powered-off cores a way back, and aura#112, which publishes the PCIe tables that Apple’s storage controller needs to wake. Without the first, the PR says, the controller doesn’t bind and s2idle remains the only sleep. The apple_sep module also has to be loaded before the first sleep, or every deep sleep is refused.
The PR lists what’s still unfinished. The USB host loses its registers in every sleep, so the hub and devices reset-resume after each wake. Removing the PMP driver when it’s built as a module leaves every later sleep refused until a reboot. The GPU’s OSLOG counters also stay unechoed until a soak test shows that echoing them is safe.
This PR covers the Neo only, and it says M4 and later machines will need their own tables. Older Macs are separate work: Dj says others on the team, including Naeem Malik, have deep sleep working on M1 and M2, and Malik reported on X on November 7, 2026 “0.05 W averaged over a 3-hour sleep, nearly 10x less than Linux s2idle (0.44 W) on M1 Air.” Related work is open too, with Neo wake fixes in #1398 and a seven-part docked sleep series for the M4 MacBook Air starting at #1414, whose new parameters default to off.
As for timing, DHH quoted Malik’s numbers on X on November 7, 2026: “Matching deep sleep performance on M with Omarchy is getting close! Maybe we can get the first version of this out next week?” That’s a hope rather than a date, and as of November 10, 2026, the PR is still waiting to be merged.
