Framework NixOS (Linux) users self-help

You may want to help this project so that others can add it to their configs so they have the fixes/changes for the best experience:

1 Like

Iā€™d be happy to help with this project! Iā€™ll have a look to see what issues are open. Is there any other way I can assist?

Yep, Iā€™ve applied the proposed patch and, so far, looks like it fixed it for me.

2 Likes

Got tired of the WiFi handoff issue and bought an Intel AX210 off ebay. After swapping the WiFi card my handoff issue is gone.

Oh thatā€™s great to know, I should do the same then. I was worried that there might be a legit reason why they didnā€™t go with it in the first place, but probably there is noneā€¦

As of today, PPD 0.20 has landed in nixpkgs, making it easier to get great power savings on AMD! :tada:

I tried to throw together an overlay for Marioā€™s latest improvements, but the build system changed a bit, and it still seems to complain about the bash-completion dependency. Maybe someone can fix it up. :slight_smile:

nixpkgs.overlays = [
  (final: prev: {
    power-profiles-daemon = prev.power-profiles-daemon.overrideAttrs (
      old: {
        nativeBuildInputs = old.nativeBuildInputs ++ (with pkgs; [
          cmake
          pylint
          argparse-manpage
          bash-completion
        ]);
        src = prev.fetchFromGitLab {
          domain = "gitlab.freedesktop.org";
          owner = "upower";
          repo = "power-profiles-daemon";
          rev = "f8bea7c205afc4b3101edc31b8e9b35780b0ceb6";
          sha256 = "sha256-+TAZNZOChG4FASdGpBL3mQsFZgUhLrmWFpbxHjTyWgE=";
        };
      }
    );
  }
  )
];
6 Likes

I did it like this, and I am not proud of it (of the Python part):

      nativeBuildInputs = (lib.filter (d: !(lib.hasPrefix "python" d.name)) old.nativeBuildInputs) ++ [
        (pkgs.python3.pythonOnBuildForHost.withPackages (ps: with ps; [
          pygobject3
          dbus-python
          python-dbusmock
          pylint
          argparse-manpage
          shtab
        ]))
        pkgs.cmake
      ];
      buildInputs = old.buildInputs ++ [
        pkgs.bash-completion
      ];
1 Like

Hereā€™s another way to do it (by disabling those options and avoiding rebuilds):

services.power-profiles-daemon.package = pkgs.power-profiles-daemon.overrideAttrs {
  version = "f8bea7c205afc4b3101edc31b8e9b35780b0ceb6";
  src = pkgs.fetchFromGitLab {
    domain = "gitlab.freedesktop.org";
    owner = "upower";
    repo = "power-profiles-daemon";
    rev = "f8bea7c205afc4b3101edc31b8e9b35780b0ceb6";
    sha256 = "sha256-+TAZNZOChG4FASdGpBL3mQsFZgUhLrmWFpbxHjTyWgE=";
  };
  mesonFlags =
    pkgs.power-profiles-daemon.mesonFlags
    ++ [
      "-Dbashcomp=disabled"
      "-Dmanpage=disabled"
      "-Dpylint=disabled"
    ];
};
1 Like

Worth noting that these PPD updates do not seem to work on the latest stable, 23.11.

Iā€™m running PPD 0.20 on 23.11 stable, so it may just have to do with tweaking the config.

This was the override that I was using for a bit to get things working:

        (final: prev: {
            power-profiles-daemon = prev.power-profiles-daemon.overrideAttrs(
              old: {
                version = "0.20";
                nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.argparse-manpage ];
                src = prev.fetchFromGitLab {
                  domain = "gitlab.freedesktop.org";
                  owner = "upower";
                  repo = "power-profiles-daemon";
                  rev = "0.20";
                  sha256 = "sha256-8wSRPR/1ELcsZ9K3LvSNlPcJvxRhb/LRjTIxKtdQlCA=";
                };
                postPatch = ''
                  patchShebangs --build \
                    src/powerprofilesctl \
                    tests/integration-test.py \
                    tests/unittest_inspector.py
                '';
              });
            }
        )

Although pkgs refers to nixpkgs-unstable, and actually if you have a nixpkgs-unstable input overriding is way simpler now that the PPD 0.20 update is merged. This is what I have now:

        # Use nixpkgs-unstable PPD with latest source/inputs
        (_: _: { power-profiles-daemon = pkgs.power-profiles-daemon; })
1 Like

Worth asking for a backport to 23.11 maybe rather than jumping through those hoops? I didnā€™t do it as I both run unstable and have very little understanding of how PPD works and what it might have compatibilities with; but NixOS releases are not Debian stable, and requests to backport version bumps are usually accepted if there are no issues with them.

Does this mean that once we either backport to 23.11 or hit 24.05 that this would be all we need for @Mario_Limoncielloā€™s fixes?

  # AMD has better battery life with PPD over TLP:
  # https://community.frame.work/t/responded-amd-7040-sleep-states/38101/13
  services.power-profiles-daemon.enable = lib.mkDefault true;

Already in NixOS/nixos-hardware.

#TIL that the preventWakeOnAC workaround from nixos-hardware is no longer needed with kernel >= 6.7 because of

Iā€™m getting the ā€œNo devices availableā€ error when enrolling fingerprints on my Intel 12th gen Framework, despite it working fine in Manjaro. Iā€™ve tried clearing the old fingerprints, updating the firmware (even though the guide said itā€™s only needed for 13th gen and AMD), nothing is working.

My config contains:

services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
security.pam.services.login.fprintAuth = true;

Any ideas?

Iā€™d love two separate nixos threads for AMD and intel, things are getting pretty messy

8 Likes

Does anyone else have a problem with the cpu frequency? It appears to be stuck at 400Hz no matter what.
intel_pstate is active and governor is ā€˜performanceā€™.
I donā€™t think I had this problem yesterday, I only noticed after adding a TLP configuration but even reverting that doesnā€™t make a difference

Good evening all,

Hoping to get a few pointers on where to start with a few issues Iā€™m having.

Iā€™m a bit of a newer Linux user as Iā€™ve used Fedora for about a year, but never had to tinker as itā€™s always worked / never gotten in the way of my needs, but this weekend I decided to learn something new with my flash new toy.

So here are my issues:

  • When connecting the dock, either 1)The external screen wakes, and no peripherals work, or 2) the screen is not recognised but all my peripherals work
  • The HDMI expansion card does nothing. Not so much as an audible device tone.

Some context, I have run my laptop in dual boot with Fedora 39 for about a fortnight and had neither of the above issues.

Things I have tried:

  • nixos-rebuild switch --upgrade
  • changing to unstable branch
  • applying the nixos-hardware config
  • trying a different Desktop Environment
  • quick google searches before realising Iā€™m in too deep and donā€™t have enough established knowledge of linux or Nix
  • going back to Fedora as a sanity check

I appreciate this is probably not the best initial place to ask this, but I figured it was contextually, worth doing as weā€™re all on (somewhat) similar platforms. Iā€™m happy to go and read and/or play, but I donā€™t know where to start.

Any hints, tips or ideas would be greatly appreciated.

Cheers,

Fingerprint related stuff now has its own thread.

I thought Iā€™d share my config here for my 12th-gen Intel Framework laptop

This is a flake-based config with home-manager as a module. It includes the recommended TLP config from Framework. Iā€™m currently running a pre-release version of System76s COSMIC desktop environment (which is awesome!), but also have configuration for KDE Plasma 6. I also have Firefox and Neovim configured through home-manager.

1 Like

I am in the process of working with the NixOS community right now (literally in chat in another tab) for a community support program.

Soon, once we get everything dialed in, you will see NixOS recommendations in the nearish future.

17 Likes