Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect DMI Wake-up type when woken by APM timer #29

Open
2 of 8 tasks
pjungkamp opened this issue Dec 24, 2024 · 2 comments
Open
2 of 8 tasks

Incorrect DMI Wake-up type when woken by APM timer #29

pjungkamp opened this issue Dec 24, 2024 · 2 comments

Comments

@pjungkamp
Copy link

Device Information

System Model or SKU

Please select one of the following

  • Framework Laptop 13 (11th Gen Intel® Core™)
  • Framework Laptop 13 (12th Gen Intel® Core™)
  • Framework Laptop 13 (13th Gen Intel® Core™)
  • Framework Laptop 13 (AMD Ryzen™ 7040 Series)
  • Framework Laptop 13 (Intel® Core™ Ultra Series 1)
  • Framework Laptop 16 (AMD Ryzen™ 7040 Series)
Handle 0x0001, DMI type 1, 27 bytes
System Information
	Manufacturer: Framework
	Product Name: Laptop 13 (Intel Core Ultra Series 1)
	Version: A5
	Serial Number: <REDACTED>
	UUID: <REDACTED>
	Wake-up Type: Power Switch
	SKU Number: FRANDPCP05
	Family: Laptop

BIOS VERSION

Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
	Vendor: INSYDE Corp.
	Version: 03.04
	Release Date: 10/09/2024

Standalone Operation

Are you running your mainboard as a standalone device. Is standalone mode enabled in the BIOS?

  • Yes
  • No

Describe the bug

The Wake-up Type dmi entry on handle 1 isn't properly set when woken by an APM timer.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Set HibernateDelaySec in /etc/systemd/sleep.conf to a short value for testing (e.g. 1m).
  2. Use systemctl suspend-then-hibernate.
  3. The system resumes after HibernateDelaySec elapsed but doesn't hibernate.
  4. Check dmidecode --handle 1:
$ dmidecode --handle 1
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.6 present.
54 structures occupying 4244 bytes.
Table at 0x5EDEE000.

Handle 0x0001, DMI type 1, 27 bytes
System Information
        ...
	Wake-up Type: Power Switch

Expected behavior

The system should hibernate after HibernateDelaySec elapses.

systemd uses an APM timer to wake the system after HibernateDelaySec and uses the DMI "Wake-up Type" to determine whether the resume was caused by the timer set for hibernation or by the user. The framework doesn't indicate the proper Wake-up Type: APM Timer.

Operating System (please complete the following information):

  • OS/Distribution: NixOS
  • Version: nixos-unstable 2024-12-17
  • Linux Kernel Version: 6.5.7

Additional context

@pjungkamp
Copy link
Author

I just closed the issue on the systemd side, since I believe it's a problem with the Framework Laptops firmware or at least with the way that the rtc_cmos driver in linux interprets the Frameworks FADT table. See systemd/systemd#35743 (comment)

@pjungkamp
Copy link
Author

This issue can be worked around by adding rtc_cmos.use_acpi_alarm=1 on the kernel commandline or adding a file to /etc/modprobe.d.

# /etc/modprobe.d/framework.conf
options rtc_cmos use_acpi_alarm=1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant