Framework 12 Linux Review

But Framework also stated, in the past regarding S3 on tigerlake that it’s not supported by Intel, and implying somewhat that we / you’re on your own when it comes to S3.

Like, to me, it’s not a Framework-supported feature, but it ‘works’. Kind of like, using a Toyota bonnet to fry an egg in the Australian outback, it’s not supported, but it works.

In the review, you ‘recommended’ changing the setting to deep, but it’s not clear if this would be officially supported by Framework. This come into play, typically in larger deployments, as one wouldn’t want to stray away from the scope of official supported configurations. Might need Framework to clarify this.

Or does someone have knowledge of the official wording on this?

In my head, and it might just be me, “reviews” ought to stay in the lanes of “Does the product do what it’s supposed to do, and how well?”, in a supported fashion. Then there’s the opinion oriented articles / videos that gives opinions, recommendations, user journey (beyond OOTB UX) vibe. So, mixing a recommendation into a review throws me off track a little (and again, it’s probably just me).

So I got Omarchy installed. If you follow the Framework guide, you can install all of the drivers you need for rotation, etc. Then if you run the Omarchy installer script it will add it.

Totally in love with it.

First time on Arch. Guess I can start telling everyone that I use Arch, btw.

5 Likes

Now to copy the setup in NixOS… :joy_cat:

At least this is better than

Nice! How is the auto-rotating display and virtual keyboard on Omarchy on Arch Linux? Do these features work?

Yes indeed. Everything seems to work. You just have to make sure you install the driver for the rotation sensor. (instructions on how to do that are on the FW guide for installing Arch on the 12.)
Even got my FW Fan Control software working on it as well. Needs a little tweaking though, and then I’ll through it up on github.

4 Likes

hey there! wanted to ping you on this as I just got my FW12 and am looking to better control the fan. The current gnome extension seems to be a bit borked and i thought i’d see what you had working before i potentially dive into trying to fix the extension myself. Thanks!

— edit, nevermind, and no rush.. i was being an idiot.. still curious to see what you’ve come up with though

1 Like

Did you manage to make it wake up when opening the lid? I can only wake it up from deep sleep using the power button.

uname -a

Linux framework12 6.16.7-200.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Sep 11 17:46:54 UTC 2025 x86_64 GNU/Linux

Fedora 42

cat /sys/power/mem_sleep

s2idle [deep] 

Sorry I don’t have an FL12, I heard the capability of deep sleep from this forum.

I think it depends on the specific computer model. From the laptops I used, some can’t resume without pressing the power button, some can resume from sleep by opening the lid, some can even resume from hibernation by opening the lid

Sorry my notifications have been off for this thread, but after more testing it looks like s2idle [deep] on the FW12 isn’t actually reaching a lower power state. Kernel logs (journalctl | grep “PM: suspend entry”) still show s2idle, not deep, and the battery drain matches that. This lines up with AMD’s move away from true S3/“deep sleep” on newer APUs—firmware usually disables it in favor of Modern Standby/S0 idle, so even if [deep] shows up in /sys/power/mem_sleep, it’s effectively non-functional. I’m still seeing the same ~0.5–2%/hr suspend drain, sometimes worse if Wi-Fi or NVMe devices block deeper idle.

Technically deep sleep (true S3 / Suspend-to-RAM) could be brought back via firmware. Framework could ship BIOS/UEFI/ACPI firmware that re-enables the S3 sleep, but they probably won’t because;
• It would break Windows Modern Standby compliance, because Microsoft requires newer platforms to use S0 Low Power Idle / Modern Standby instead of S3.
• It would require rigorous testing of wake sources, power gating, device support, etc. Many peripherals would need to reliably power down and wake correctly.

Realistically, unless Framework is willing to ship a BIOS that goes off the Modern Standby spec just for Linux users, it seems very unlikely deep sleep will return universally. More likely improvements will come via firmware/driver tweaks to make s2idle more efficient.

For now the only reliable workaround is using suspend-then-hibernate, which adds a timeout to drop from suspend into hibernate so long idle periods don’t chew through the battery.

I’ll follow up on this more in my long term review.

2 Likes

Does Microsoft has written rules that bans S3? What about a hardware that supports both S0 and S3? My previous non framework used modern standby before I wiped it and installed Linux and now it’s s2idle [deep]. I tested S0 and confirmed that on computers that support both, S3 always save more energy

Yes — Microsoft’s Windows certification rules effectively ban S3 on systems designed for Modern Standby (S0ix). If an OEM wants Windows 10/11 “Modern Standby” certification, they must ship firmware with S0 enabled and S3 disabled. Some older or vendor-toggled systems expose both, but once a machine is certified for Modern Standby, S3 isn’t allowed under Microsoft’s rules.

1 Like

I have an idea: ship the pre-built version with S3 disabled (for the Microsoft Windows sticker), and ship the DIY version with S3 enabled. Make the BIOS page to have two versions one for pre-built the other for DIY, and saying flashing the DIY version to the pre-built machine is “not officially supported”.

I bought a Chewi after watching your detailed review. Interestingly, it defaults local account on Windows OOBE, and after I wiped the drive and installed Linux I can select [deep] and the journalctl reflects that.

According to CJ, [deep] is effectively disabled, you can check the journal of your machine to confirm (or deny if the result is different) that. Thus, setting to [s2idle] or [deep] should have identical battery drain. Do you still have to press the power button to resume on [s2idle]?

in my case it shows “PM: suspend entry (deep)”, it just takes a bit of time to go trough all the logs (i have the intel build), and I can confirm it’s different from s2sleep, since the laptop doesn’t get as hot and the battery lasts longer. The only problem is that I have to press the power button to wake it up from deep sleep whereas in s2sleep opening the lid was enough. I’m trying to find a way to create some sort of udev rule to detect the lid switch toggle or just enable it in /proc/acpi/wakeup but it looks like it’s not there, which could mean it is not possible to configure it to wake up, at least not in this way I think.

Instructions for Fedora

Any changes made writing to /sys/power/mem_sleep (i.e. echo deep > /sys/power/mem_sleep) are reset when you power off or reboot. To have it preserved between reboots you must edit the GRUB_CMDLINE_LINUX variable /etc/default/grub and add mem_sleep_default=deep. after the edit my /etc/default/grub looks like this:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet mem_sleep_default=deep"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true

on other distros this file might be a bit different but the important part is to add mem_sleep_default=deep at the end of the string assigned to the GRUB_CMDLINE_LINUX variable, or in general to the kernel command line on any boot loader.

1 Like

Could someone give me a hint where I find those settings? (on Fedora)