From 3f017311191fe6d501ca2496a835d012f656ee9c Mon Sep 17 00:00:00 2001 From: Daniel Olsen Date: Fri, 3 May 2024 10:20:34 +0200 Subject: [PATCH 01/11] lenovo/thinkpad/l480: init --- README.md | 1 + flake.nix | 1 + lenovo/thinkpad/l480/default.nix | 12 ++++++++++++ 3 files changed, 14 insertions(+) create mode 100644 lenovo/thinkpad/l480/default.nix diff --git a/README.md b/README.md index 1e1ba98..5ac2a82 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ See code for all available configurations. | [Lenovo ThinkPad L13](lenovo/thinkpad/l13) | `` | | [Lenovo ThinkPad L14 (AMD)](lenovo/thinkpad/l14/amd) | `` | | [Lenovo ThinkPad L14 (Intel)](lenovo/thinkpad/l14/intel) | `` | +| [Lenovo ThinkPad L480](lenovo/thinkpad/l480) | `` | | [Lenovo ThinkPad P1 Gen 3](lenovo/thinkpad/p1/3th-gen) | `` | | [Lenovo ThinkPad P14s AMD Gen 2](lenovo/thinkpad/p14s/amd/gen2) | `` | | [Lenovo ThinkPad P16s AMD Gen 1](lenovo/thinkpad/p16s/amd/gen1) | `` | diff --git a/flake.nix b/flake.nix index 123f9f2..8ac61b3 100644 --- a/flake.nix +++ b/flake.nix @@ -121,6 +121,7 @@ lenovo-thinkpad-l13-yoga = import ./lenovo/thinkpad/l13/yoga; lenovo-thinkpad-l14-amd = import ./lenovo/thinkpad/l14/amd; lenovo-thinkpad-l14-intel = import ./lenovo/thinkpad/l14/intel; + lenovo-thinkpad-l480 = import ./lenovo/thinkpad/l480; lenovo-thinkpad-p1 = import ./lenovo/thinkpad/p1; lenovo-thinkpad-p1-gen3 = import ./lenovo/thinkpad/p1/3th-gen; lenovo-thinkpad-p14s-amd-gen2 = import ./lenovo/thinkpad/p14s/amd/gen2; diff --git a/lenovo/thinkpad/l480/default.nix b/lenovo/thinkpad/l480/default.nix new file mode 100644 index 0000000..d000320 --- /dev/null +++ b/lenovo/thinkpad/l480/default.nix @@ -0,0 +1,12 @@ +{ lib, ... }: +{ + imports = [ + ../. + ../../../common/cpu/intel/kaby-lake + ../../../common/pc/laptop/ssd + ]; + + # available cpufreq governors: performance powersave + # The powersave mode locks the cpu to 700Mhz which is not really usable + powerManagement.cpuFreqGovernor = lib.mkDefault "performance"; +} From d623635bb7d9262c0422af8f74599c6b3cf60180 Mon Sep 17 00:00:00 2001 From: Stig Palmquist Date: Sat, 4 May 2024 02:16:46 +0200 Subject: [PATCH 02/11] surface: linux 6.8.6 -> 6.8.9 --- microsoft/surface/common/kernel/linux-6.8.x/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsoft/surface/common/kernel/linux-6.8.x/default.nix b/microsoft/surface/common/kernel/linux-6.8.x/default.nix index cc3b663..e016d77 100644 --- a/microsoft/surface/common/kernel/linux-6.8.x/default.nix +++ b/microsoft/surface/common/kernel/linux-6.8.x/default.nix @@ -7,14 +7,14 @@ let cfg = config.microsoft-surface; - version = "6.8.6"; + version = "6.8.9"; kernelPatches = surfacePatches { inherit version; patchFn = ./patches.nix; }; kernelPackages = linuxPackage { inherit version kernelPatches; - sha256 = "sha256-nnIyMtYDq0Xr8EPDRxTEjyd6sZXCmry4Ry8qTDpaGZU="; + sha256 = "sha256-+QXxI46nqOhTFLrPKDMC6AlwBgENJfzqcm0N4OpbybY="; ignoreConfigErrors=true; }; From 753176b57b3fcddb140c1c012868e62c025120bd Mon Sep 17 00:00:00 2001 From: Andre Date: Fri, 3 May 2024 09:28:12 -0400 Subject: [PATCH 03/11] Add fingerprint support for Lenovo Legion 16ARHA7 --- lenovo/legion/16arha7/default.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lenovo/legion/16arha7/default.nix b/lenovo/legion/16arha7/default.nix index 30015e3..da8174b 100644 --- a/lenovo/legion/16arha7/default.nix +++ b/lenovo/legion/16arha7/default.nix @@ -18,4 +18,14 @@ in # √(2560² + 1600²) px / 16 in ≃ 189 dpi services.xserver.dpi = 189; + + # Enable fingerprint reader + services.fprintd = { + enable = true; + package = pkgs.fprintd-tod; + tod = { + enable = true; + driver = pkgs.libfprint-2-tod1-elan; + }; + }; } From c4fa85b9df1b719cc09fa1338f4a6aa61dc7384c Mon Sep 17 00:00:00 2001 From: leo60228 Date: Thu, 25 Apr 2024 21:57:25 -0400 Subject: [PATCH 04/11] raspberry-pi/5: init --- README.md | 1 + raspberry-pi/5/default.nix | 15 +++++++++++++++ raspberry-pi/5/overlay.nix | 6 ++++++ tests/run.py | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 raspberry-pi/5/default.nix create mode 100644 raspberry-pi/5/overlay.nix diff --git a/README.md b/README.md index 5ac2a82..6698010 100644 --- a/README.md +++ b/README.md @@ -281,6 +281,7 @@ See code for all available configurations. | [Purism Librem 5r4](purism/librem/5r4) | `` | | [Raspberry Pi 2](raspberry-pi/2) | `` | | [Raspberry Pi 4](raspberry-pi/4) | `` | +| [Raspberry Pi 5](raspberry-pi/5) | `` | | [Samsung Series 9 NP900X3C](samsung/np900x3c) | `` | | [StarFive VisionFive v1](starfive/visionfive/v1) | `` | | [StarFive VisionFive 2](starfive/visionfive/v2) | `` | diff --git a/raspberry-pi/5/default.nix b/raspberry-pi/5/default.nix new file mode 100644 index 0000000..8aea944 --- /dev/null +++ b/raspberry-pi/5/default.nix @@ -0,0 +1,15 @@ +{ lib, pkgs, ... }: + +{ + nixpkgs.overlays = [ + (import ./overlay.nix) + ]; + + boot = { + kernelPackages = lib.mkDefault (pkgs.linuxPackagesFor pkgs.linux_rpi5); + initrd.availableKernelModules = [ + "usbhid" + "usb_storage" + ]; + }; +} diff --git a/raspberry-pi/5/overlay.nix b/raspberry-pi/5/overlay.nix new file mode 100644 index 0000000..8fd1a89 --- /dev/null +++ b/raspberry-pi/5/overlay.nix @@ -0,0 +1,6 @@ +final: _prev: { + linux_rpi5 = final.linux_rpi4.override { + rpiVersion = 5; + argsOverride.defconfig = "bcm2712_defconfig"; + }; +} diff --git a/tests/run.py b/tests/run.py index 8ad6025..07a86c0 100755 --- a/tests/run.py +++ b/tests/run.py @@ -81,7 +81,7 @@ def write_eval_test(f: IO[str], profiles: list[str]) -> None: continue system = "x86_64-linux" - if "raspberry-pi/4" == profile: + if "raspberry-pi/4" == profile or "raspberry-pi/5" == profile: system = "aarch64-linux" f.write( From 67b979143d80efef4ab2bff6f247c28f75f975e6 Mon Sep 17 00:00:00 2001 From: leo60228 Date: Tue, 30 Apr 2024 13:24:45 -0400 Subject: [PATCH 05/11] raspberry-pi/5: add xserver configuration --- raspberry-pi/5/default.nix | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/raspberry-pi/5/default.nix b/raspberry-pi/5/default.nix index 8aea944..d4018d1 100644 --- a/raspberry-pi/5/default.nix +++ b/raspberry-pi/5/default.nix @@ -12,4 +12,15 @@ "usb_storage" ]; }; + + # Needed for Xorg to start (https://github.com/raspberrypi-ui/gldriver-test/blob/master/usr/lib/systemd/scripts/rp1_test.sh) + # This won't work for displays connected to the RP1 (DPI/composite/MIPI DSI), since I don't have one to test. + services.xserver.extraConfig = '' + Section "OutputClass" + Identifier "vc4" + MatchDriver "vc4" + Driver "modesetting" + Option "PrimaryGPU" "true" + EndSection + ''; } From 7a7f2ea0f2822e59b2910fb2577c78bb6627913e Mon Sep 17 00:00:00 2001 From: leo60228 Date: Tue, 30 Apr 2024 17:46:48 -0400 Subject: [PATCH 06/11] raspberry-pi/5: add nvme module Co-authored-by: Sergey Kazenyuk --- raspberry-pi/5/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/raspberry-pi/5/default.nix b/raspberry-pi/5/default.nix index d4018d1..038b146 100644 --- a/raspberry-pi/5/default.nix +++ b/raspberry-pi/5/default.nix @@ -8,6 +8,7 @@ boot = { kernelPackages = lib.mkDefault (pkgs.linuxPackagesFor pkgs.linux_rpi5); initrd.availableKernelModules = [ + "nvme" "usbhid" "usb_storage" ]; From 11d92d24440b390d7d7998a383e4f64daf1fa1c3 Mon Sep 17 00:00:00 2001 From: leo60228 Date: Wed, 1 May 2024 15:37:43 -0400 Subject: [PATCH 07/11] raspberry-pi/5: add to flake.nix --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index 8ac61b3..416d4c6 100644 --- a/flake.nix +++ b/flake.nix @@ -220,6 +220,7 @@ purism-librem-5r4 = import ./purism/librem/5r4; raspberry-pi-2 = import ./raspberry-pi/2; raspberry-pi-4 = import ./raspberry-pi/4; + raspberry-pi-5 = import ./raspberry-pi/5; kobol-helios4 = import ./kobol/helios4; samsung-np900x3c = import ./samsung/np900x3c; starfive-visionfive-v1 = import ./starfive/visionfive/v1; From 1d11c108000d498af656dfa3ede9ce25839c9948 Mon Sep 17 00:00:00 2001 From: leo60228 Date: Wed, 1 May 2024 15:40:27 -0400 Subject: [PATCH 08/11] raspberry-pi/5: add kernel version assertion --- raspberry-pi/5/default.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/raspberry-pi/5/default.nix b/raspberry-pi/5/default.nix index 038b146..1fbd757 100644 --- a/raspberry-pi/5/default.nix +++ b/raspberry-pi/5/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ lib, pkgs, config, ... }: { nixpkgs.overlays = [ @@ -24,4 +24,11 @@ Option "PrimaryGPU" "true" EndSection ''; + + assertions = [ + { + assertion = (lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.1.54"); + message = "The Raspberry Pi 5 requires a newer kernel version (>=6.1.54). Please upgrade nixpkgs for this system."; + } + ]; } From 8a4adfe48b68b50ef62e9a299898093436269b6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 5 May 2024 06:59:23 +0200 Subject: [PATCH 09/11] raspberry-pi/5: don't use overlay --- raspberry-pi/5/default.nix | 13 +++++++------ raspberry-pi/5/overlay.nix | 6 ------ 2 files changed, 7 insertions(+), 12 deletions(-) delete mode 100644 raspberry-pi/5/overlay.nix diff --git a/raspberry-pi/5/default.nix b/raspberry-pi/5/default.nix index 1fbd757..aba0178 100644 --- a/raspberry-pi/5/default.nix +++ b/raspberry-pi/5/default.nix @@ -1,12 +1,13 @@ { lib, pkgs, config, ... }: - +let + linux_rpi5 = pkgs.linux_rpi4.override { + rpiVersion = 5; + argsOverride.defconfig = "bcm2712_defconfig"; + }; +in { - nixpkgs.overlays = [ - (import ./overlay.nix) - ]; - boot = { - kernelPackages = lib.mkDefault (pkgs.linuxPackagesFor pkgs.linux_rpi5); + kernelPackages = lib.mkDefault (pkgs.linuxPackagesFor linux_rpi5); initrd.availableKernelModules = [ "nvme" "usbhid" diff --git a/raspberry-pi/5/overlay.nix b/raspberry-pi/5/overlay.nix deleted file mode 100644 index 8fd1a89..0000000 --- a/raspberry-pi/5/overlay.nix +++ /dev/null @@ -1,6 +0,0 @@ -final: _prev: { - linux_rpi5 = final.linux_rpi4.override { - rpiVersion = 5; - argsOverride.defconfig = "bcm2712_defconfig"; - }; -} From 88eb241bbd87e21bbf6c8be7319fe997550b90f8 Mon Sep 17 00:00:00 2001 From: pinage404 Date: Sun, 28 Apr 2024 17:54:40 +0200 Subject: [PATCH 10/11] framework/16-inch: moved out of the CPU folder as it doesn't only define configuration for the CPU --- README.md | 2 +- flake.nix | 2 +- framework/16-inch/{cpu => }/7040-amd/README.md | 0 framework/16-inch/{cpu => }/7040-amd/default.nix | 2 +- framework/16-inch/{cpu => }/common/amd.nix | 6 +++--- framework/16-inch/{cpu => }/common/default.nix | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) rename framework/16-inch/{cpu => }/7040-amd/README.md (100%) rename framework/16-inch/{cpu => }/7040-amd/default.nix (64%) rename framework/16-inch/{cpu => }/common/amd.nix (82%) rename framework/16-inch/{cpu => }/common/default.nix (91%) diff --git a/README.md b/README.md index 6698010..10d82bb 100644 --- a/README.md +++ b/README.md @@ -146,7 +146,7 @@ See code for all available configurations. | [Framework 12th Gen Intel Core](framework/13-inch/12th-gen-intel) | `` | | [Framework 13th Gen Intel Core](framework/13-inch/13th-gen-intel) | `` | | [Framework 13 AMD Ryzen 7040 Series](framework/13-inch/7040-amd) | `` | -| [Framework 16 AMD Ryzen 7040 Series](framework/16-inch/cpu/7040-amd) | `` | +| [Framework 16 AMD Ryzen 7040 Series](framework/16-inch/7040-amd) | `` | | [FriendlyARM NanoPC-T4](friendlyarm/nanopc-t4) | `` | | [FriendlyARM NanoPi R5s](friendlyarm/nanopi-r5s) | `` | | [Focus M2 Gen 1](focus/m2/gen1) | `` | diff --git a/flake.nix b/flake.nix index 416d4c6..2b77735 100644 --- a/flake.nix +++ b/flake.nix @@ -79,7 +79,7 @@ framework-12th-gen-intel = import ./framework/13-inch/12th-gen-intel; framework-13th-gen-intel = import ./framework/13-inch/13th-gen-intel; framework-13-7040-amd = import ./framework/13-inch/7040-amd; - framework-16-7040-amd = import ./framework/16-inch/cpu/7040-amd; + framework-16-7040-amd = import ./framework/16-inch/7040-amd; friendlyarm-nanopc-t4 = import ./friendlyarm/nanopc-t4; friendlyarm-nanopi-r5s = import ./friendlyarm/nanopi-r5s; focus-m2-gen1 = import ./focus/m2/gen1; diff --git a/framework/16-inch/cpu/7040-amd/README.md b/framework/16-inch/7040-amd/README.md similarity index 100% rename from framework/16-inch/cpu/7040-amd/README.md rename to framework/16-inch/7040-amd/README.md diff --git a/framework/16-inch/cpu/7040-amd/default.nix b/framework/16-inch/7040-amd/default.nix similarity index 64% rename from framework/16-inch/cpu/7040-amd/default.nix rename to framework/16-inch/7040-amd/default.nix index 2059a49..6c02455 100644 --- a/framework/16-inch/cpu/7040-amd/default.nix +++ b/framework/16-inch/7040-amd/default.nix @@ -4,7 +4,7 @@ imports = [ ../common ../common/amd.nix - ../../../../common/cpu/amd/raphael/igpu.nix + ../../../common/cpu/amd/raphael/igpu.nix ]; } diff --git a/framework/16-inch/cpu/common/amd.nix b/framework/16-inch/common/amd.nix similarity index 82% rename from framework/16-inch/cpu/common/amd.nix rename to framework/16-inch/common/amd.nix index f75720d..f5341b6 100644 --- a/framework/16-inch/cpu/common/amd.nix +++ b/framework/16-inch/common/amd.nix @@ -1,8 +1,8 @@ { lib, config, ... }: { imports = [ - ../../../../common/cpu/amd - ../../../../common/cpu/amd/pstate.nix - ../../../../common/gpu/amd + ../../../common/cpu/amd + ../../../common/cpu/amd/pstate.nix + ../../../common/gpu/amd ]; # Workaround for SuspendThenHibernate: https://lore.kernel.org/linux-kernel/20231106162310.85711-1-mario.limonciello@amd.com/ diff --git a/framework/16-inch/cpu/common/default.nix b/framework/16-inch/common/default.nix similarity index 91% rename from framework/16-inch/cpu/common/default.nix rename to framework/16-inch/common/default.nix index 34a769b..2b53522 100644 --- a/framework/16-inch/cpu/common/default.nix +++ b/framework/16-inch/common/default.nix @@ -1,7 +1,7 @@ { lib, pkgs, ... }: { imports = [ - ../../../../common/pc/laptop - ../../../../common/pc/laptop/ssd + ../../../common/pc/laptop + ../../../common/pc/laptop/ssd ]; # Fix TRRS headphones missing a mic From e148ccbecbd2fe4dc4768fba67f6db828466ad06 Mon Sep 17 00:00:00 2001 From: pinage404 Date: Sun, 28 Apr 2024 17:30:41 +0200 Subject: [PATCH 11/11] framework: install framework-tool --- framework/13-inch/common/default.nix | 1 + framework/16-inch/common/default.nix | 1 + framework/framework-tool.nix | 3 +++ 3 files changed, 5 insertions(+) create mode 100644 framework/framework-tool.nix diff --git a/framework/13-inch/common/default.nix b/framework/13-inch/common/default.nix index b7b961d..904c2d7 100644 --- a/framework/13-inch/common/default.nix +++ b/framework/13-inch/common/default.nix @@ -3,6 +3,7 @@ ../../../common/pc/laptop ../../../common/pc/laptop/ssd ../../kmod.nix + ../../framework-tool.nix ]; # Fix TRRS headphones missing a mic diff --git a/framework/16-inch/common/default.nix b/framework/16-inch/common/default.nix index 2b53522..9dc402c 100644 --- a/framework/16-inch/common/default.nix +++ b/framework/16-inch/common/default.nix @@ -2,6 +2,7 @@ imports = [ ../../../common/pc/laptop ../../../common/pc/laptop/ssd + ../../framework-tool.nix ]; # Fix TRRS headphones missing a mic diff --git a/framework/framework-tool.nix b/framework/framework-tool.nix new file mode 100644 index 0000000..4effcca --- /dev/null +++ b/framework/framework-tool.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + environment.systemPackages = [ pkgs.framework-tool ]; +}