suspend (S3) not detected

I have a Lenovo IdeaPad 5 Pro (14ARH7 82SJ) that shipped with Windows originally but has been running Ubuntu for the last few years.

It appears FreeBSD doesn't seem to think the laptop is capable of suspend (S3).

$ sudo sysctl hw.acpi.supported_sleep_state
hw.acpi.supported_sleep_state: S4 S5

The system had no apparent problem with suspend with Ubuntu or Windows. So just wondering where I should look to troubleshoot the issue.

Thanks!
 
The system had no apparent problem with suspend with Ubuntu or Windows.
Perhaps Ubuntu or Windows suspend to disk (S4 sleep state)? I don't know much about Windows, and I'm not very familiar with Linux either, apparently the system states are checked on Linux with cat /sys/power/state , cat /sys/power/mem_sleep , cat /sys/power/disk.

https://www.kernel.org/doc/html/latest/admin-guide/pm/sleep-states.html .


Check on FreeBSD acpidump -dt | grep -A 6 'System State"

You should see an output similar to an ThinkPad E15 AMD (YMMV):
Rich (BB code):
    Name (_S0, Package (0x04)  // _S0_: S0 System State
    {
        0x00, 
        0x00, 
        0x00, 
        0x00
    })
    Name (_S3, Package (0x04)  // _S3_: S3 System State
    {
        0x03, 
        0x03, 
        0x00, 
        0x00
    })
    Name (_S4, Package (0x04)  // _S4_: S4 System State
    {
        0x04, 
        0x04, 
        0x00, 
        0x00
    })
    Name (_S5, Package (0x04)  // _S5_: S5 System State
    {
        0x05, 
        0x05, 
        0x00, 
        0x00
    })

Your laptop supports sleep state S4 (the memory context is stored to disk), if S4 is not satisfactory for your needs, and if "The supported states depend on BIOS implementation", check if there is an BIOS update available.

acpiconf(8)
Rich (BB code):
     -s type    Enters the specified sleep mode.  Recognized types are 1 (only
                the CPU clock is stopped), 2 (not implemented on most systems
                but similar to S1), 3 (the CPU context is lost and memory
                context is preserved), and 4 (the CPU context is lost and
                memory context is stored to disk).  Sleep states may also be
                given as S1, S2, etc.  The supported states depend on BIOS
                implementation, including ACPI byte code (AML). ...
                
                ...
 
I have a Lenovo IdeaPad 5 Pro (14ARH7 82SJ) that shipped with Windows originally but has been running Ubuntu for the last few years.

It appears FreeBSD doesn't seem to think the laptop is capable of suspend (S3).

$ sudo sysctl hw.acpi.supported_sleep_state
hw.acpi.supported_sleep_state: S4 S5

The system had no apparent problem with suspend with Ubuntu or Windows. So just wondering where I should look to troubleshoot the issue.

Thanks!
Well it correctly report that your laptop does not support S3. Your laptop probably support S0ix standby power state.
 
Perhaps Ubuntu or Windows suspend to disk (S4 sleep state)? I don't know much about Windows, and I'm not very familiar with Linux either, apparently the system states are checked on Linux with cat /sys/power/state , cat /sys/power/mem_sleep , cat /sys/power/disk.

https://www.kernel.org/doc/html/latest/admin-guide/pm/sleep-states.html .


Check on FreeBSD acpidump -dt | grep -A 6 'System State"

You should see an output similar to an ThinkPad E15 AMD (YMMV):
Rich (BB code):
    Name (_S0, Package (0x04)  // _S0_: S0 System State
    {
        0x00,
        0x00,
        0x00,
        0x00
    })
    Name (_S3, Package (0x04)  // _S3_: S3 System State
    {
        0x03,
        0x03,
        0x00,
        0x00
    })
    Name (_S4, Package (0x04)  // _S4_: S4 System State
    {
        0x04,
        0x04,
        0x00,
        0x00
    })
    Name (_S5, Package (0x04)  // _S5_: S5 System State
    {
        0x05,
        0x05,
        0x00,
        0x00
    })

Your laptop supports sleep state S4 (the memory context is stored to disk), if S4 is not satisfactory for your needs, and if "The supported states depend on BIOS implementation", check if there is an BIOS update available.

acpiconf(8)
Rich (BB code):
     -s type    Enters the specified sleep mode.  Recognized types are 1 (only
                the CPU clock is stopped), 2 (not implemented on most systems
                but similar to S1), 3 (the CPU context is lost and memory
                context is preserved), and 4 (the CPU context is lost and
                memory context is stored to disk).  Sleep states may also be
                given as S1, S2, etc.  The supported states depend on BIOS
                implementation, including ACPI byte code (AML). ...
               
                ...
Ah, thank you.
Hmm, it appears that system state doesn't appear anywhere in the output of acpidump. See attached text file for full output. Perhaps there are more clues in there.

Also, good tip on the Linux comparison. I'll boot an Ubuntu USB installer later today and check the suggested sys locations and report back.

Thanks!
 

Attachments

Ah, thank you.
Hmm, it appears that system state doesn't appear anywhere in the output of acpidump. See attached text file for full output. Perhaps there are more clues in there.

Also, good tip on the Linux comparison. I'll boot an Ubuntu USB installer later today and check the suggested sys locations and report back.

Thanks!
OK. I've now booted Linux and have the contents of those three files:

ubuntu@ubuntu:~$ cat /sys/power/state
freeze mem disk
ubuntu@ubuntu:~$ cat /sys/power/mem_sleep
[s2idle]
ubuntu@ubuntu:~$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume


So, yeah. As per the Linux file referenced earlier, with no standby or deep option in the mem_sleep file, it appears that suspend is indeed not supported.

I'll have to check the BIOS to see if there are any options I missed.
Thanks!
 
OK. I've now booted Linux and have the contents of those three files:

ubuntu@ubuntu:~$ cat /sys/power/state
freeze mem disk
ubuntu@ubuntu:~$ cat /sys/power/mem_sleep
[s2idle]
ubuntu@ubuntu:~$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume


So, yeah. As per the Linux file referenced earlier, with no standby or deep option in the mem_sleep file, it appears that suspend is indeed not supported.

I'll have to check the BIOS to see if there are any options I missed.
Thanks!

OK, I've now re-installed Windows and have now run an ACPI diagnostic to see what power states are detected.
PS C:\Users\zachw> powercfg /availablesleepstates
The following sleep states are available on this system:
Standby (S0 Low Power Idle) Network Connected
Hibernate
Fast Startup

The following sleep states are not available on this system:
Standby (S1)
The system firmware does not support this standby state.
This standby state is disabled when S0 low power idle is supported.

Standby (S2)
The system firmware does not support this standby state.
This standby state is disabled when S0 low power idle is supported.

Standby (S3)
The system firmware does not support this standby state.
This standby state is disabled when S0 low power idle is supported.

Hybrid Sleep
Standby (S3) is not available.
The hypervisor does not support this standby state.

I've confirmed that Windows does indeed offer Sleep, which does appear to put the computer into a Suspend-like state with the screen off and the power LEDs slowly pulsating, as expected.
1764381081022.png


So, it appears that this "S0 Low Power Idle" is the closest option to Suspend.
Does anyone recognize this mode or know how it compares to S3 Suspend?
Any sense if FreeBSD supports or will support this mode in the future.

Thanks!
Zach
 
OK, I've now re-installed Windows and have now run an ACPI diagnostic to see what power states are detected.
PS C:\Users\zachw> powercfg /availablesleepstates
The following sleep states are available on this system:
Standby (S0 Low Power Idle) Network Connected
Hibernate
Fast Startup

The following sleep states are not available on this system:
Standby (S1)
The system firmware does not support this standby state.
This standby state is disabled when S0 low power idle is supported.

Standby (S2)
The system firmware does not support this standby state.
This standby state is disabled when S0 low power idle is supported.

Standby (S3)
The system firmware does not support this standby state.
This standby state is disabled when S0 low power idle is supported.

Hybrid Sleep
Standby (S3) is not available.
The hypervisor does not support this standby state.

I've confirmed that Windows does indeed offer Sleep, which does appear to put the computer into a Suspend-like state with the screen off and the power LEDs slowly pulsating, as expected.
View attachment 24259

So, it appears that this "S0 Low Power Idle" is the closest option to Suspend.
Does anyone recognize this mode or know how it compares to S3 Suspend?
Any sense if FreeBSD supports or will support this mode in the future.

Thanks!
Zach

Many probably already knew about this, but it now appears that this is a known issue and is an area of work in progress as mentioned in the recent quarterly update. In fact, FreeBSD contributor obiwac wrote a blog article on this issue as well as a preso at the BSDCan 2025 conference which was recorded.
 
Back
Top