My NixOS configuration specific to the Framework Laptop Virtuous Cassette comes from a Blog Post. It's pretty straightforward, of course, and only a few changes are necessary or nice.
A lot of the complaints about this machine are that you have to
choose between significant power drain while in "suspend to ram" state,
or you have to wait 3-5 seconds for the laptop to come out of deep
sleep. I choose the latter with mem_sleep_default=deep
.
I also enable LVFS's testing repository so that i can have LVFS support for Framework hardware according to their knowledge base.
The only other thing to consider is to make sure the kernel is new enough to support the WiFi 6 chipsets.
This can't just be blindly included in all my endpoints since it defines kernel params, but here's how it could be:
#+ARROYO_NIXOS_MODULE: nixos/framework-laptop.nix
#+ARROYO_NIXOS_ROLE: endpoint
It's actually just included directly in the Virtuous Cassette morph host manifest.
{ pkgs, ... }:
{
boot.kernelParams = [
# if si0x below doesn't work
# "mem_sleep_default=deep"
# Fixes a regression in s2idle, making it more power efficient than deep sleep
"acpi_osi=\"!Windows 2020\""
# For Power consumption
# https://community.frame.work/t/linux-battery-life-tuning/6665/156
"nvme.noacpi=1"
];
powerManagement.powertop.enable = true;
services.fwupd = {
enable = true;
extraRemotes = ["lvfs-testing"];
# per Frame.work LVFS docs
uefiCapsuleSettings = {
DisableCapsuleUpdateOnDisk = true;
};
};
hardware.rasdaemon.enable = true;
# services.fprintd.enable = true;
services.xserver.dpi = 204;
}
I don't use fprintd since i hate configuring PAM and don't feel like figuring out how to configure it in the way i actually want to use a fingerprint reader… Consider instead how easy it was to get this laptop working, it doesn't really need special configuration.
Resources for S0ix/Modern Standby
I really would like good low-power suspend… mem_sleep_default=deep
means it takes like 7
seconds for my laptop to wake up
Power management/Suspend and hibernate - ArchWiki
[2023-10-19 Thu 10:07]
Linux* S0ix Troubleshooting | 01.org
[2023-10-19 Thu 10:09]
How to achieve S0ix states in Linux* | 01.org
[2023-10-19 Thu 10:10]