system76 / firmware-open

System76 Open Firmware
Other
957 stars 86 forks source link

darp8 with `2023-08-18_a8dd6c2` wont come out of suspend #469

Closed uSpike closed 8 months ago

uSpike commented 1 year ago

I cannot bring the system out of suspend. I can bring the system into suspend, the power light starts flashing. If I press a keyboard key the power light stops flashing and is steady-on green, but the screen doesn't turn on and the system seems completely unresponsive.

This seems to happen whether the system is charging or not.

Expected behavior

The system should come out of suspend back to the desktop.

Actual behavior

Repeating myself here

Additional info

It seems that linux is never reentered, here's output from journalctl -xe -b-1

Sep 01 08:51:05 system76-pc systemd[1]: Starting System Suspend...
░░ Subject: A start job for unit systemd-suspend.service has begun execution
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ A start job for unit systemd-suspend.service has begun execution.
░░ 
░░ The job identifier is 4061.
Sep 01 08:51:05 system76-pc systemd[1]: grub-common.service: Deactivated successfully.
░░ Subject: Unit succeeded
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ The unit grub-common.service has successfully entered the 'dead' state.
Sep 01 08:51:05 system76-pc systemd[1]: Finished Record successful boot for GRUB.
░░ Subject: A start job for unit grub-common.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ A start job for unit grub-common.service has finished successfully.
░░ 
░░ The job identifier is 4153.
Sep 01 08:51:05 system76-pc systemd[1]: Starting GRUB failed boot detection...
░░ Subject: A start job for unit grub-initrd-fallback.service has begun execution
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ A start job for unit grub-initrd-fallback.service has begun execution.
░░ 
░░ The job identifier is 4065.
Sep 01 08:51:05 system76-pc systemd[1]: grub-initrd-fallback.service: Deactivated successfully.
░░ Subject: Unit succeeded
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ The unit grub-initrd-fallback.service has successfully entered the 'dead' state.
Sep 01 08:51:05 system76-pc systemd[1]: Finished GRUB failed boot detection.
░░ Subject: A start job for unit grub-initrd-fallback.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░ 
░░ A start job for unit grub-initrd-fallback.service has finished successfully.
░░ 
░░ The job identifier is 4065.
Sep 01 08:51:05 system76-pc rfkill[7559]: block set for type bluetooth

it seems to not have any messages indicating it's coming out of suspend.

andyrub18 commented 8 months ago

Ok, thanks.

Edit: I tried to update the firmware in settings but it's not available yet. I'm using pop os 22.04

On Thu, Jan 11, 2024 at 10:23 AM Levi Portenier @.***> wrote:

I'd upload it but I'm not sure if the system76 team would want someone random uploading compiled binaries.

Thanks, that's probably for the best.

The version was released yesterday, so the update should be available in the System76 firmware updater. That is in Settings > Firmware in Pop, or in the Firmware Manager application in Ubuntu with the System76 repo added.

— Reply to this email directly, view it on GitHub https://github.com/system76/firmware-open/issues/469#issuecomment-1887407375, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL573WXW47GS3OFEVDYSOGLYN77V3AVCNFSM6AAAAAA4HT3B62VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBXGQYDOMZXGU . You are receiving this because you were mentioned.Message ID: @.***>

AlexGoico commented 8 months ago

Ok, thanks. Edit: I tried to update the firmware in settings but it's not available yet. I'm using pop os 22.04 On Thu, Jan 11, 2024 at 10:23 AM Levi Portenier @.> wrote: I'd upload it but I'm not sure if the system76 team would want someone random uploading compiled binaries. Thanks, that's probably for the best. The version was released yesterday, so the update should be available in the System76 firmware updater. That is in Settings > Firmware in Pop, or in the Firmware Manager application in Ubuntu with the System76 repo added. — Reply to this email directly, view it on GitHub <#469 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AL573WXW47GS3OFEVDYSOGLYN77V3AVCNFSM6AAAAAA4HT3B62VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBXGQYDOMZXGU . You are receiving this because you were mentioned.Message ID: @.>

To note, I'm using Ubuntu 22.04.3 LTS and it's not available on that Firmware Manager either.

tnelsonw commented 8 months ago

I looked today in the Pop!OS firmware settings. The update is also not available for me.

crawfxrd commented 8 months ago

2024-01-10_6c402c3 has been released, switching from S3 to S0ix suspend by default to avoid the hang on resume.

uSpike commented 8 months ago

For those stuck like I was, you have to run this to clear your cache for the firmware apps to actually download the new manifests:

sudo rm -rf /var/cache/system76-firmware-daemon/
smithzvk commented 8 months ago

@uSpike thanks for the tip, I can see it now.

Can I ask which new boards will have S0ix instead of S3? Will all darp8's be affected? Was this whole issue due to trying to enable S3 but we are giving up on that now (not a loaded question, just want to understand)?

andyrub18 commented 8 months ago

I just updated the firmware and I still have the problem

DrymarchonShaun commented 8 months ago

@uSpike thanks for the tip, I can see it now.

Can I ask which new boards will have S0ix instead of S3? Will all darp8's be affected? Was this whole issue due to trying to enable S3 but we are giving up on that now (not a loaded question, just want to understand)?

I believe S3 is no longer supported by Intel chips newer than Tiger Lake (11th Gen), having been replaced by s0ix.

I'm not sure if Intel saying "no longer supported" means "removed entirely" or "may or may not work, but don't bother us if it doesn't."

MrPenguin07 commented 8 months ago

Updated to 2024-01-10_6c402c3.

No issues so far, except I had to run coreboot config and disable ME again (unsure if updating firmware should be setting that back on ON by default?!) Suspend continues to work well for me.

Regards

andyrub18 commented 8 months ago

Updated to 2024-01-10_6c402c3.

No issues so far, except I had to run coreboot config and disable ME again (unsure if updating firmware should be setting that back on ON by default?!) Suspend continues to work well for me.

Regards

How do I do that?

MrPenguin07 commented 8 months ago

Updated to 2024-01-10_6c402c3. No issues so far, except I had to run coreboot config and disable ME again (unsure if updating firmware should be setting that back on ON by default?!) Suspend continues to work well for me. Regards

How do I do that?

https://github.com/StarLabsLtd/coreboot-configurator

plattysoft commented 8 months ago

I got a firmware update prompt, but it still shows the 2023-08-18 one. Will try deleting the cache.

I did the downgrade a while ago, thanks for the instructions, I do close the lid a lot and it was maddening

MrPenguin07 commented 8 months ago

I got a firmware update prompt, but it still shows the 2023-08-18 one.

I did the downgrade a while ago, thanks for the instructions, I do close the lid a lot and it was maddening

Click the little expansion arrow, does it then show the latest? I found it a tad confusing as well, in my case I think the main firmware update screen showed the current version - not the version thats available. After expanding or perhaps clicking update, could then see the changelog for latest.

plattysoft commented 8 months ago

I got a firmware update prompt, but it still shows the 2023-08-18 one. I did the downgrade a while ago, thanks for the instructions, I do close the lid a lot and it was maddening

Click the little expansion arrow, does it then show the latest? I found it a tad confusing as well, the main firmware update screen shows your current version - not the version thats available. After expanding can see the changelog for latest.

2023-08-18 is the available one, the installed one is the 2022 one from this thread.

It will most likely work once I've deleted the cache (which I did minutes ago)

MrPenguin07 commented 8 months ago

RE: Intel ME being enabled by default. I do not believe this is the correct behavior?

For Open Firmware systems, the IME is typically disabled by default unless doing so would break functionality (such as suspend/resume). https://support.system76.com/articles/intel-me/


Tiger Lake-U

Models using TGL-U processors default to having the IME enabled. TGL-U removes support for S3 and requires S0ix. This requires all CPU, PCH, and PCIe devices to have ACPI defined low power states. With S0ix, the CPU has numerous states for low power, with the lowest being C10. In order to reach this C10 state, the IME must report that it is in a low power state. Disabling the ME with the HAP bit keeps the CPU in the C8 state. This nearly triples the power usage in S0ix suspend, from around 1 watt to around 3 watts. https://github.com/system76/firmware-open/blob/master/docs/intel-me.md


I assume this does not apply to ADL, hence is there any reason ME is enabled by default with the latest firmware?

andyrub18 commented 8 months ago

I updated to 2024-01-10 and disabled intel ME but I still got the suspend problem. I got the intel core i5-1240p and pop-os 22.04 lts

ahoneybun commented 8 months ago

I updated to 2024-01-10 and disabled intel ME but I still got the suspend problem. I got the intel core i5-1240p and pop-os 22.04 lts

Does suspend work with IME enabled?

andyrub18 commented 8 months ago

I updated to 2024-01-10 and disabled intel ME but I still got the suspend problem. I got the intel core i5-1240p and pop-os 22.04 lts

Does suspend work with IME enabled?

I got the IME enabled, suspend work but it won't come out of suspend. I tried to disabled it, same problem. Is it a cache problem or something like that?

andyrub18 commented 8 months ago

It's as if I never update the firmware

andyrub18 commented 8 months ago

image

andyrub18 commented 8 months ago

image

DrymarchonShaun commented 8 months ago

It's as if I never update the firmware

Are you actually on the newest firmware - cat /sys/class/dmi/id/bios_version ?

andyrub18 commented 8 months ago

cat /sys/class/dmi/id/bios_version

image yes

leviport commented 8 months ago

Can you share which suspend mode it's trying to use?

cat /sys/power/mem_sleep
andyrub18 commented 8 months ago

Can you share which suspend mode it's trying to use?

cat /sys/power/mem_sleep

image s2idle [deep]

leviport commented 8 months ago

Interesting, that means it's still trying to use S3 for some reason, which explains why you're seeing no change in behavior.

andyrub18 commented 8 months ago

Interesting, that means it's still trying to use S3 for some reason, which explains why you're seeing no change in behavior.

How can I change that?

crawfxrd commented 8 months ago

How can I change that?

echo s2idle | sudo tee /sys/power/mem_sleep

The ACPI FADT feature flag indicates that the OS should use S0ix (s2idle) by default for suspend. Something is overriding the behavior if it's set to deep.


RE: Intel ME being enabled by default. I do not believe this is the correct behavior?

It's intentional. I enabled it due it to blocking C10 when disabled in the past.

Suspend continues to work well for me.

So the power LED blinks when suspended when you have CSME disabled?

Does PCIe device 16:00.0 exist in lspci? This is the communication device, and if it's present it means that CSME is still enabled.

For more details, the output of the CBMEM console (coreboot/utils/cbmem; sudo cbmem -c) would contain the actual state of the CSME.

andyrub18 commented 8 months ago

How can I change that?


echo s2idle | sudo tee /sys/power/mem_sleep

when I use this command and verify, it's still set to deep. Do I have to reboot after this command?

image

leviport commented 8 months ago

The brackets around s2idle indicate that is the one that is currently selected. Your previous screenshot shows the brackets around deep.

andyrub18 commented 8 months ago

The brackets around s2idle indicate that is the one that is currently selected. Your previous screenshot shows the brackets around deep.

is there a way to change to current selected?

leviport commented 8 months ago

You changed it already with the command you ran. Your screenshots demonstrate as much. Check it again, make sure s2idle is still selected, test suspend, and let us know if it works, please.

andyrub18 commented 8 months ago

You changed it already with the command you ran. Your screenshots demonstrate as much. Check it again, make sure s2idle is still selected, test suspend, and let us know if it works, please.

It works. Thank you

MrPenguin07 commented 8 months ago

RE: Intel ME being enabled by default. I do not believe this is the correct behavior?

It's intentional. I enabled it due it to blocking C10 when disabled in the past.

Suspend continues to work well for me.

So the power LED blinks when suspended when you have CSME disabled?

Does PCIe device 16:00.0 exist in lspci? This is the communication device, and if it's present it means that CSME is still enabled.

For more details, the output of the CBMEM console (coreboot/utils/cbmem; sudo cbmem -c) would contain the actual state of the CSME.

Hi appreciate the response; PCI 16:00.0 is not there, and after some testing with powertop/turbostat it does indeed only reach C9. Couldn't sleuth much in the way of what the realistic efficiency loss may be - however if this is the trade off required to disable CME i'll take it. I suppose every user will need to make a decision here, thanks for the non-default explanation.

So no the power light does not blink in [s2idle] sleep state; however curiously when set to [deep] it does. In any case, this is far better than the earlier firmware with the S3 hack as my laptop was constantly hot in bag and draining up to 10% per hour even while power led was blinking.

Regards.

andyrub18 commented 8 months ago

RE: Intel ME being enabled by default. I do not believe this is the correct behavior?

It's intentional. I enabled it due it to blocking C10 when disabled in the past.

Suspend continues to work well for me.

So the power LED blinks when suspended when you have CSME disabled? Does PCIe device 16:00.0 exist in lspci? This is the communication device, and if it's present it means that CSME is still enabled. For more details, the output of the CBMEM console (coreboot/utils/cbmem; sudo cbmem -c) would contain the actual state of the CSME.

Hi appreciate the response; PCI 16:00.0 is not there, and after some testing with powertop/turbostat it does indeed only reach C9. Couldn't sleuth much in the way of what the realistic efficiency loss may be - however if this is the trade off required to disable CME i'll take it. I suppose every user will need to make a decision here, thanks for the non-default explanation.

So no the power light does not blink in [s2idle] sleep state; however curiously when set to [deep] it does. In any case, this is far better than the earlier firmware with the S3 hack as my laptop was constantly hot in bag and draining up to 10% per hour even while power led was blinking.

Regards.

It's exactly the same for me