MacBook Pro 11,4 - the laptop doesn't come back from suspend

hi everyone!

I just decided to install Fedora Silverblue 36 on my Macbook Pro 11,4 from 2015, since it will not be supported in the next MacOS 13 release.

Everything seems to work quite well so far, except for suspension :disappointed_relieved:

When I close the lid, the logo switches off and the Mac seems to be correctly suspended.

When I lift the lid, nothing seems to happen. However after a little bit I can hear the fan spinning up louder and louder, but the Mac never comes back. The screen and the logo never light up again. The only way to get the Mac back is to hold the power button and perform an hard reboot.

Any way to debug and fix this?
It’s quite a killer feature for my workflow and might force me to go back to MacOS :sob:

if it may be useful, this is the output of lspci:

00:00.0 Host bridge: Intel Corporation Crystal Well DRAM Controller (rev 08)
00:01.0 PCI bridge: Intel Corporation Crystal Well PCI Express x16 Controller (rev 08)
00:01.1 PCI bridge: Intel Corporation Crystal Well PCI Express x8 Controller (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Crystal Well Integrated Graphics Controller (rev 08)
00:03.0 Audio device: Intel Corporation Crystal Well HD Audio Controller (rev 08)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d5)
00:1f.0 ISA bridge: Intel Corporation HM87 Express LPC Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation 8 Series Chipset Family Thermal Management Controller (rev 05)
01:00.0 SATA controller: Samsung Electronics Co Ltd Device a801 (rev 01)
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC (rev 01)
04:00.0 Multimedia controller: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera
05:00.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
06:00.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
06:03.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
06:04.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
06:05.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
06:06.0 PCI bridge: Intel Corporation DSL5520 Thunderbolt 2 Bridge [Falcon Ridge 4C 2013]
07:00.0 System peripheral: Intel Corporation DSL5520 Thunderbolt 2 NHI [Falcon Ridge 4C 2013]

Can you provide the information I asked here:
Freeze after wake from suspend - #2 by py0xc3

Maybe your two issues are related, maybe not. But the “starting point” for investigation is the same.

At points where you get the same output as @nift-d , it might be worth to also read Freeze after wake from suspend - #4 by py0xc3

MacBookPro11,x - ArchWiki (archlinux.org) - Post Installation
Does this apply to Fedora?

One note, my Fedora is pretty much vanilla. I just installed 2-3 flatpaks but the suspend was the first thing I tried after installation.
To answer your questions:

  1. I’m using the kernel 5.19.7-200.fc36.x86_64

  2. The kernel is unmodified

$ cat /proc/sys/kernel/tainted
0
  1. No asus module
lsmod | grep asus
  1. Sep 10 19:05:31 fedora kernel: Linux version 5.19.7-200.fc36.x86_64 (mockbuild@b - Pastebin.com

  2. System: Kernel: 5.19.7-200.fc36.x86_64 arch: x86_64 bits: 64 Desktop: GNOME - Pastebin.com

$ sudo acpitool -w
   Device	S-state	  Status   Sysfs node
  ---------------------------------------
  1. PEG0	  S3	*enabled   pci:0000:00:01.0
  2. PEG1	  S3	*enabled   pci:0000:00:01.1
  3. PEG2	  S3	*disabled
  4. EC	  S4	*disabled  platform:PNP0C09:00
  5. GMUX	  S3	*disabled  pnp:00:03
  6. HDEF	  S3	*disabled  pci:0000:00:1b.0
  7. RP03	  S3	*enabled   pci:0000:00:1c.2
  8. ARPT	  S4	*enabled   pci:0000:03:00.0
  9. RP04	  S3	*enabled   pci:0000:00:1c.3
  10. XHC1	  S3	*enabled   pci:0000:00:14.0
  11. ADP1	  S4	*disabled  platform:ACPI0003:00
  12. LID0	  S4	*enabled   platform:PNP0C0D:00

To disable one by one do I need to unload the kernel module? :thinking:

It remains question 1 :wink: It did not ask about 5.19.7 :smiley:

Since you just installed the system: I assume you still have one other kernel to choose from the grub menu at boot? If it is older, try it anyway. Just to have the comparison to a different kernel.

I tried the second entry and I think it booted an older version of the ostree 36.1.5 instead of the latest update 20220909.

But the problem still persisted, still no coming back from suspend unfortunately.

Hmm… The question is if that includes a different kernel or if it is just another image with the same one. I am not experienced with issues that are Silverblue-specific.

Maybe some of the Silverblue folks in ask.fp can help?


Sounds good!

Perfect!

Nope :wink: For the beginning, just try it with acpitool.

I checked, it is different: 5.17.5-300.fc36.x86_64

have to learn how to use acpitool, might require a bit of time before I manage to get back to you.

Good to know. Then it is nothing that only affects 5.19.7.

Concerning your logs: I don’t think it is the origin, but you might try to disable (not just with --now but reboot after disable) wpa_supplicant and geoclue and see if that makes a difference. So, e.g., sudo systemctl disable wpa_supplicant and the same for geoclue (looks like the latter is also a service?). Then, reboot, and try. Please let us know the systemctl output. The disabling of wpa_supplicant will disable your wifi for the duration of the test.

If it does not make a difference, just enable it again (e.g., sudo systemctl enable wpa_supplicant).

Stopping and disabling those services didn’t seem to make a difference, however it has to be noted that somehow they were constantly being restarted automatically somehow, even though I had stopped and disabled them.
I stopped/disabled NetworkManager too, still they kept coming up :man_shrugging:
I didn’t help, these are the logs post reboot: Sep 10 23:08:00 fedora kernel: Linux version 5.19.7-200.fc36.x86_64 (mockbuild@b - Pastebin.com

Unfortunately adding acpi_osi=Darwin didn’t help either

I’m trying to experiment with acpitool but I get a permission error even as root

# acpitool -W 8
  Function Toggle_WakeUp_Device : could not open file : /proc/acpi/wakeup. 
  You must have write access to /proc/acpi/wakeup to enable or disable a wakeup device. 
  Check the permissions on /proc/acpi/wakeup or run acpitool as root.

I wonder if using Silverblue might have anything to do with it? :thinking:

What is the output if you do:

sudo systemctl status wpa_supplicant.service
sudo systemctl disable --now wpa_supplicant.service
sudo systemctl status wpa_supplicant.service 

If you think that after that, it gets enabled again at some point, get once again the output of sudo systemctl status wpa_supplicant.service

However, these systemctl commands should work on Silverblue the same way as on Workstation.

Well, first, if I read it correctly, you are not working with sudo but a dedicated root account?

Second, I cannot fully exclude a difference at Silverblue as I have never worked with acpitool on it, but /proc/ is a virtual file system for real time kernel and process information. It should not be affected by the immutable nature of Silverblue.

My first guess is that this is a device on which your system depends on. How does it work with other devices? Do you have this error at all devices?

Additionally, may I ask, in order to fully understand your acpitool -W 8 command, what is the output of acpitool -w ?


Also, you may follow the development in the other thread: Freeze after wake from suspend → You could try to disable the bluetooth service (I see in your logs it is activated) and check if that makes a difference. This could offer direction concerning the cause and help us to evaluate how to proceed.

wpa_supplicant.service is called by dbus from network manager.
you can mask it:
sudo systemctl mask wpa_supplicant.service

or you can:
Disable wifi from the Network Manager GUI
and then stop the service

unmasking the service is:
sudo systemctl unmask wpa_supplicant.service

Assuming your running gnome/workstation.

It is Silverblue, but in terms of nm and everything around and on top, it should be equal to Gnome/Workstation. So your argument makes sense. Interesting, I don’t have this behavior on my system, but I expect my nm is far away from the default configs of the current workstation anyway. Thanks for letting us know!

@grumpey yes, actually I had researched it a bit and found out about this issue in fact.
I then masked all these services:

  • wpa_supplicant
  • NetworkManager
  • geoclue
  • bolt (got suggested on reddit that it might cause trouble)

All the services then were down but still no luck with suspend. Always the same problem, unfortunately.

I tried to install the Fedora Workstation version, still no luck, same issues.
At this point I got a bit frustrated because I really need a working environment by tomorrow (Monday) unfortunately and I’m quite tight with time.

I gave a try to OpenSuse Tumbleweed. There suspend/resume works but the laptop wakes up randomly and after waking up the wifi doesn’t work.

Then I tried Ubuntu, my last attempt before reinstalling MacOS. And with Ubuntu, everything works. The laptop suspends and resumes correctly, all pretty smoothly.
I’m also a bit sad, because I really like Fedora and especially the new direction taken with Silverblue. And I’m not very fond of Ubuntu, their Gnome customization and Snaps.
But I really need a working system these days.

@py0xc3 the acpitool output was this (I linked it in a previous comment):

$ sudo acpitool -w
   Device	S-state	  Status   Sysfs node
  ---------------------------------------
  1. PEG0	  S3	*enabled   pci:0000:00:01.0
  2. PEG1	  S3	*enabled   pci:0000:00:01.1
  3. PEG2	  S3	*disabled
  4. EC	  S4	*disabled  platform:PNP0C09:00
  5. GMUX	  S3	*disabled  pnp:00:03
  6. HDEF	  S3	*disabled  pci:0000:00:1b.0
  7. RP03	  S3	*enabled   pci:0000:00:1c.2
  8. ARPT	  S4	*enabled   pci:0000:03:00.0
  9. RP04	  S3	*enabled   pci:0000:00:1c.3
  10. XHC1	  S3	*enabled   pci:0000:00:14.0
  11. ADP1	  S4	*disabled  platform:ACPI0003:00
  12. LID0	  S4	*enabled   platform:PNP0C0D:00

it’s identical to the one it’s being printed out in Ubuntu.
I’ll stick with Ubuntu for now, thank you so much for the help, really :pray:

1 Like