Power settings on Arch Linux

I just installed Arch Linux on my freshly built DIY Framework 13. I’m having some issues with Suspend, and I’m seeing a few suspicious error messages in my kernel logs that I wanted to see if anyone else is seeing.

System info

AMD Ryzen 7 7840U - 2.8k Display

Arch is fully updated.

❯ uname -r
6.12.10-arch1-1

BIOS version: 3.05
Memory: DDR5-5600 - 32GB
Storage: WD_BLACK™ SN770 NVMe™- M.2 2280 - 1TB

All parts (memory, storage, etc) are all from Framework, so there shouldn’t be any compatibility issues there.

Waking from Suspend sometimes triggers a reboot

Suspend is not working reliably for me. Short suspends (<1 minute) work most of the time, but if I leave it in Suspend for more than a few minutes the machine always reboots when I try to wake it up.

I’ve run the amd_s3idle.py script and it seems to be working well. Full log: https://gist.githubusercontent.com/mgalgs/b703a25c65c842102fb4d9e4f3b392c2/raw/dc30701a1660747cc5cc527bf255c6671e5f3af0/s2idle_report-2025-01-29.txt

My full system journal from a recent boot is here: https://gist.githubusercontent.com/mgalgs/3688eac9d36b7b40028d25a7e21fcd88/raw/87099b2c4c31990803f43fbea06e253b9a70b0cd/gistfile1.txt

This session includes a handful of successful suspend operations (search The system has now entered the suspend sleep state.), and then eventually there’s a final suspend from which we never return. I think the only difference between the final suspend and the earlier ones is that the final suspend was longer (I left the lid shut for at least 10 minutes, whereas the other suspends were brief (< 2 minutes)).

Power related configs

If anyone is running Arch on a FW 13 AMD Ryzen with power management working well, could you please share your configuration? I’m wondering about systemd-analyze cat-config systemd/sleep.conf and cat /proc/cmdline, in particular, but if there are other configurations necessary please let me know!

Here are mine:

❯ systemd-analyze cat-config systemd/sleep.conf
# /etc/systemd/sleep.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it under the
#  terms of the GNU Lesser General Public License as published by the Free
#  Software Foundation; either version 2.1 of the License, or (at your option)
#  any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file (or a copy of it placed in
# /etc/ if the original file is shipped in /usr/), or by creating "drop-ins" in
# the /etc/systemd/sleep.conf.d/ directory. The latter is generally
# recommended. Defaults can be restored by simply deleting the main
# configuration file and all drop-ins located in /etc/.
#
# Use 'systemd-analyze cat-config systemd/sleep.conf' to display the full config.
#
# See systemd-sleep.conf(5) for details.

[Sleep]
#AllowSuspend=yes
#AllowHibernation=yes
#AllowSuspendThenHibernate=yes
#AllowHybridSleep=yes
#SuspendState=mem standby freeze
#HibernateMode=platform shutdown
#MemorySleepMode=
#HibernateDelaySec=
#HibernateOnACPower=yes
#SuspendEstimationSec=60min

And here are my kernel parameters:

❯ cat /proc/cmdline
initrd=\initramfs-linux.img root=PARTUUID=52c8d8ab-60c5-4b24-bec4-1e7f321c292c rw rootflags=subvol=@

Kernel errors

Possibly unrelated, but I’m seeing some kernel error messages that look a little sketchy. For example, during boot, and also every time I plug in my power supply I see the following error in the kernel logs:

Jan 29 12:08:27 bitforge kernel: ucsi_acpi USBC000:00: unknown error 0
Jan 29 12:08:27 bitforge kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)

Is anyone else running kernel version 6.12.10 or thereabouts seeing this ACPI error?

Here are all of my kernel error logs:

❯ journalctl -x -b -1 -k -p err
Jan 29 12:02:33 bitforge kernel: cros_ec_lpcs cros_ec_lpcs.0: packet too long (4 bytes, expected 0)
Jan 29 12:02:33 bitforge kernel: cros-usbpd-charger cros-usbpd-charger.5.auto: Unexpected number of charge port count
Jan 29 12:02:33 bitforge kernel: cros-usbpd-charger cros-usbpd-charger.5.auto: probe with driver cros-usbpd-charger failed with error -71
Jan 29 12:02:33 bitforge kernel: ucsi_acpi USBC000:00: unknown error 0
Jan 29 12:02:33 bitforge kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
Jan 29 12:02:33 bitforge kernel: ucsi_acpi USBC000:00: unknown error 256
Jan 29 12:02:33 bitforge kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
Jan 29 12:08:27 bitforge kernel: ucsi_acpi USBC000:00: unknown error 0
Jan 29 12:08:27 bitforge kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
Jan 29 12:08:48 bitforge kernel: ucsi_acpi USBC000:00: unknown error 0
Jan 29 12:08:48 bitforge kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)
Jan 29 12:10:32 bitforge kernel: ucsi_acpi USBC000:00: unknown error 0
Jan 29 12:10:32 bitforge kernel: ucsi_acpi USBC000:00: GET_CABLE_PROPERTY failed (-5)

If someone else running similar hardware on a similar kernel version could check if they’re seeing the same thing that would be fantastic.

Thanks!

Are you suspending with a dock/hub connected? Is it working fine if you have no devices such as displays connected? Do you have Bluetooth devices connected when you suspend?

Sounds like you’re not alone: Reboots instead of waking from sleep -- when plugged in to AC power?

Yes: USB C Error on boot

1 Like

No dock/hub/bluetooth/devices of any kind connected.

Thanks for the links, sounds like there’s a strong correlation to HDMI expansion cards. I totally missed that full HDMI isn’t supported at all in slot 2, which is exactly where I stuck it :sob:. I’m re-shuffling my cards (I also had USB A in a “high power consumption” slot – I guess I really wasn’t paying attention to the compat matrix during setup :grimacing:).

I’ll run this for a while and report back with results!

(Note to self: If this doesn’t do the trick, try disabling “PCIE Dynamic Link Power Management”)

2 Likes

Nice catch!

@mgalgs let us know if it fixes it but I suspect it will!

2 Likes

All right, I’m a week in after the expansion card re-shuffle and suspend has been working like a charm. Case closed, thanks for your help, everyone!

2 Likes