Replies: 26 comments 5 replies
|
I made the changes, but when I close the lid and then try to resume (also have to press power button), the touchbar will come back but not the screen. The touch bar does respond to the fn key though. I have to hard power off and power back on. 2019 MacBookPro16,1 Thanks for working on this! |
|
i have an A2141 2019, 16 inch tried these changes and mine will not wake from sleep at all :( I guess the hardware is different enough between those model years :( |
Because you use You should change all |
|
I have a Macbook T2 13" 2020 with touchbar as well. I performed the changes you described on my system. I can report that for me it works the first time I test it but if I close the lid a second time it doesn't. Upon opening the lid the second time and hitting the power button, I am unable to type in my password for some reason. I am presented with the prompt to enter my password but I am unable to type anything. I will dig in a bit more this weekend and see what I can figure out. Thank you for your work on this. |
|
I have the "MacBook Pro 13-inch (2018, four Thunderbolt 3 ports) – Model: A1989" with the touchbar. I followed the file changes and I can now suspend the laptop after a restart and it will wake back up. However, if I then suspend the laptop again it won't come back and will hard shut down. Additionally, closing the lid will act the same as the initial suspend except it also stops the wifi from working (then on second suspend it doesn't work at all). Will also take a further look, but thank you for starting this off. |
|
Thank you very much! I am on 2017 MacBook (not air, not pro), which has neither a T1 nor T2 chip as far as I know. Nevertheless, same disk issues upon suspend. Edited logins.conf, sleep.conf, and limine as described. I did not bother with the T2 related change. I did however have to run sudo limine-update for the changes to take effect. After this, I see /sys/power/mem_sleep set to s2idle and I can close and open the lid without disk issues. |
|
I have followed pretty much everything in this thread and still stuck on 2019 MBP |
|
Omarchy 3.17, MacBook Pro 15,3 A1990. Same problem as @erzz and my TouchBar sometimes works, sometimes does not. Running |
|
2019 MacBook Pro 13" (MacBookPro15,2 1.0) No wake up at all. I have to kill it with a long press of the power button to perform a fresh boot. After that, the touch bar does not come up. running tiny-dfr just leads to errors |
|
Hi, I just did a fresh install on a MacBook Pro 13-inch Model: A1989 and am running into the same issues. When I close the lid the Mac freezes and touchbar stops working. |
|
Hi All, I have the same issues with a fresh install of 3.2.0 on a MacBook Pro model A1708, this unit has no touchbar. |
|
Thank you! For my MBP 2015 A1398 (without touchbar) worked perfectly changes you described for:
I don't touched the /etc/systemd/system/suspend-t2.service file. PS. Also, I did |
|
Same issue here. Tried the solution. Updated all the files as per instructions. No effect. Behavior is that it goes black, does not come back from sleep and if you leave it like that then eventually it will just shutdown like halt with fans doing a quick loud sound (like when in Mac you have a serious issues, probably kernel panic in Linux) |
|
Omarchy 3.2 Did not fix the problem for me. Suspend would sit there with fans wiring either:
The suspend workaround was a net improvement even just removing and probing the bce module, the touchbar only ever worked first Omarchy boot post-install and never again. With the bce rmmod and modprobe it came back. After installing the service it is present on boot. Now suspend sits there with fans wiring. But now keyboard and trackpad enable and I can re-enter desktop. |
|
I've hit this, too on a MacBookAir9,1 (2020 Intel) — linux-t2 6.17.7. Closing the lid would result in the machine appearing to shut down rather than suspend. After some digging, I applied three fixes and lid-close suspend now works reliably. Root cause: /sys/power/mem_sleep defaults to deep (S3), which T2 firmware doesn't support. Suspend would crash/reboot the system. Fix 1 — Force freeze (s2idle) as the suspend mode: Fix 2 — Add mem_sleep_default=s2idle to kernel cmdline (belt-and-suspenders — add to the existing t2-mac.conf limine entry): Then append the param directly to the cmdline: line in Fix 3 — Manage apple-bce around suspend (prevents dead keyboard/trackpad on resume) in Then: The keyboard getting re-connected on resume still is hit-or-miss but the computer is much more useable now. |
|
About drop-in not being applied, this should fix it #5114 |
|
For those following along, I'm having a very good experience with this setup and so I've opened #5129 |
|
Great discussion. I went deep on this for a MacBookPro15,4 and wanted to share what I found. The core problem most people are hitting is that rmmod apple-bce fails — ALSA pins the module through aaudio. You need to unbind the PCI device first. After that, rmmod apple-bce works. And importantly, we don't use -f (force) — with proper unbind and correct dependency ordering, a clean unload succeeds. But apple-bce isn't the only module — appletbdrm, hid_appletb_kbd, hid_appletb_bl all depend on it and need to be unloaded in the right order first. We also unload brcmfmac_wcc and brcmfmac separately (they handle Wi-Fi, not T2 dependencies but the Broadcom Wi-Fi chip doesn't handle D3 correctly on T2 Macs, causing timeouts/wake storms.). The other root cause is a kernel bug: PLAYBACK uses dev_timestamp (T2 clock domain) which gets out of sync after module re-probe, causing a wild position → XRUN → scheduling while atomic crash. Fix is using os_timestamp for PLAYBACK — one line in audio/pcm.c. I've got a full solution in PR #5998 that handles the complete lifecycle (unbind → stop tiny-dfr → unload deps in order → suspend → reload), plus the kernel timestamp patch. @jzimdars — your PR #5129 is on the right track but the aaudio unbind and proper dep ordering are essential for reliable second-suspend. The rmmod -f apple-bce won't work if PipeWire has the audio device open. |
|
T2 MacBook Air (MacBookAir9,1) — no TouchBar — sequential suspend fix Kernel: Root cause: The Intel JHL7540 Thunderbolt 3 xHCI controller ( Fix — two parts:
Result: Two consecutive |
|
Update — fan keeps running during suspend on T2 MacBook Air (no TouchBar) The Fix — systemd-sleep hook at #!/bin/bash
SMC_FAN=/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:85/APP0001:00
case "$1" in
pre)
systemctl stop t2fanrd
echo 0 > "$SMC_FAN/fan1_manual"
;;
post)
echo 1 > "$SMC_FAN/fan1_manual" 2>/dev/null || true
systemctl start t2fanrd
;;
esacMake executable and that's it. Verified working on MacBookAir9,1. Combined fix summary for the Air:
All three together give working sequential suspend/resume with a silent (stopped) fan during sleep. |
|
@TopperH — nice finds on the xHCI and fan issues. You're running s2idle with mem_sleep_default=s2idle, but deep is the default on these machines and the real question is whether it works with proper module management. PR #5998 keeps deep mode and manages the T2 module lifecycle, plus a kernel patch fixing the audio dev_timestamp bug after module re-probe. No s2idle, no xHCI unbinding needed on MBP. Would you be willing to try it on your MacBookAir9,1? Drop mem_sleep_default=s2idle and pm_async=off, enable the service, and see if deep works. Could make the xHCI workaround unnecessary. |
|
@jjohnson — thanks a lot for this! I tested PR #5998 on my MacBookAir8,1 (I mistyped it as 9,1 in earlier posts — it's the 2018 Retina Air, still T2) and at a first glance everything seems perfectly working.
The only thing I noticed is AppleFailedBootVolumeUUID being set on resume, probably harmless. |
|
I dug into this on a MacBookPro16,2 and believe I found a root cause that explains the hard-hang for the T2 machines here (the ones that freeze the instant they suspend and need a forced power-off). It's an asynchronous device-suspend race, not a specific dead driver. On these T2 Macs the kernel default of suspending devices in parallel ( The fix is to force synchronous device suspend: echo 0 | sudo tee /sys/power/pm_asyncOn my 16,2 that gave 5/5 clean suspend/resume cycles (incl. lid close/reopen), where the default hung 5/5. It's independent of suspend mode, and reverts on reboot so it's safe to try. I've opened a PR that applies this automatically on T2 Macs (detects via Could folks on other affected models help confirm breadth? If you're on a 13"/15"/other-16" T2 MacBook that hangs on suspend, please try the one-liner above and then (Note: the older |
|
Update from testing and the work in #5998 and #6149: There appear to be multiple independent suspend/resume problems on T2 Macs.
The current #5998 branch does not set There has also been a major upstream change: T2 Linux replaced the legacy The useful next test matrix is:
When reporting results, please include the Mac model, Wi-Fi chipset, kernel version, |
|
Confirmed on current Omarchy Quattro with the new
Closing the lid correctly triggered suspend, but every attempt was aborted by the BCM4377b driver: This produced repeated deep/fallback-s2idle attempts and significant battery drain while the lid was closed. With
There was no need to cycle Verified with an RTC-controlled suspend test: Wi-Fi reloaded and reconnected successfully, and there were zero new This fills the |
|
Overnight confirmation on MacBookAir9,1 with current Quattro Machine
Fix: a This boot (2026-09-02 21:22 → now):
This fills the Air 9,1 cell of the Please do not land a blanket Suggested split: keep |

Uh oh!
There was an error while loading. Please reload this page.
System details
Macbook T2 13" 2020 with touchbar
What's wrong?
As many other owners of Intel MacBooks, I'm facing a "sleep/suspend" issue with Omarchy.
Once installed, when I close the lid or choose suspend from the system menu, my session either freezes or it reboots without loading the touchbar drivers.
I need to perform another reboot to have a session working as intended.
Discoveries
After (quite) long debugging sessions, I found the following:
suspendaction and notsleepsuspendaction has an impact on theusb devicesby being unable to unbind correctly the devicesfor dev in "dev-tiny_dfr_display.device dev-tiny_dfr_backlight.device dev-tiny_dfr_display_backlight.device"; do systemctl status $dev; doneafter a suspend. Some devices will appear asdeadstatus and when trying to runsudo systemctl restart tiny-dfr, it will fail stating that the device doesn't exist or is actually busy (either way, it's an improper state)suspendaction has different modes and the one by default in Omarchy is set todeep.s2idleshould be the one selected by default (see solution to be tested below)Solution to be tested
Based on the discoveries above and on the different documentation found a bit everywhere, I could reach a first step of "normal sleep behavior" with the following configuration changes:
/etc/systemd/logind.conf
Description
The important settings here are:
This will switch the
suspendaction to thesleepaction when the lid is close, both on battery and external power.Tip
The option
HandlePowerKey=ignoreallows the power button to display the Omarchy system menu directly. It can be seen as a small quality of life modification./etc/systemd/sleep.conf
Description
This file is a first part of the solution and might need some adjustments, and even have the changes transferred as a drop-in in
/etc/systemd/sleep.conf.d/directory.As stated before, the major change here is to set
MemorySleepMode=s2idlefor changing the way the power management is handled and be compatible with the MacBook hardware (at least, that's how I understand it).The other option
SuspendState=freezeis a requirement tos2idlebased on the Archlinux documentation link above).Note
While the documentation clearly states that this file is the way to change the power management, I faced another issue that the settings were not correctly applied (don't know the reason).
More concretely, even with the file modified, a
sudo systemctl daemon-reloadapplied, once I rebooted, when runningcat /sys/power/mem_sleep, I had the results2idle [deep], meaningdeepwas the power management method selected and nots2idle.To change this behavior permanently, I had to change the kernel command line directly as described below.
/etc/default/limine
Description
The important modification here is the line:
KERNEL_CMDLINE[default]+="quiet splash intel_iommu=on iommu=pt pcie_ports=compat mem_sleep_default=s2idle"Due to another potential issue with the kernel command line drop-in not being loaded (
/etc/limine-entry-tool.d/t2-mac.conf), I added its content directly to this file and added the optionmem_sleep_default=s2idleat the end.This allowed the power management method to be permanently changed as intended.
/etc/systemd/system/suspend-t2.service
Description
The last file modified is a modified service file from the T2Linux.org suspend file (link above), which I only kept the stop and start of the
tiny-dfrservice.For testing purpose, I kept commented all the kernel modules used by the apple components (keyboard/touchbar/wifi).
They should not be needed normally, as the sleep method doesn't seem to unbind the devices like suspend does.
Call to help
As said initially, this could be the begin of a solution but it's not perfect and I only have 1 MacBook, so I'm not sure if other models will behave the same and if this solution is actually applicable to them.
So in order to help the Omarchy amazing maintainers, please try to apply the changes to the files above, reboot, and see how your system behaves when picking
Suspendfrom the Omarchy system menu and when closing the lid.Please note that it might take few seconds before seeing something appearing on the screen when trying to wake-up and in my case, I have to always click the power button to resume from sleep.
Hope this helps finding a solution and I didn't perform any battery drain testing, so hopefully the
sleepmethod will not have a huge impact.Last but not least, you can find me in the Omarchy Discord (same alias, Nunix) if you have any questions or feedback.
The sleep rabbit hole Corsair 🏴☠️
All reactions