diff --git a/README.md b/README.md index bd4fd3c9..b9940040 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,8 @@ See code for all available configurations. | [Asus ROG Strix G713IE](asus/rog-strix/g713ie) | `` | `asus-rog-strix-g713ie` | | [Asus ROG Strix G733QS](asus/rog-strix/g733qs) | `` | `asus-rog-strix-g733qs` | | [Asus ROG Strix X570-E GAMING](asus/rog-strix/x570e) | `` | `asus-rog-strix-x570e` | -| [Asus ROG Zephyrus G14 GA401](asus/zephyrus/ga401) | `` | `asus-zephyrus-ga401` | +| [Asus ROG Zephyrus G14 GA401IV (2020)](asus/zephyrus/ga401iv) | `` | `asus-zephyrus-ga401iv` | +| [Asus ROG Zephyrus G14 GA401 (2021)](asus/zephyrus/ga401) | `` | `asus-zephyrus-ga401` | | [Asus ROG Zephyrus G14 GA402](asus/zephyrus/ga402) | `` | `asus-zephyrus-ga402` | | [Asus ROG Zephyrus G14 GA402X\* (2023)](asus/zephyrus/ga402x/amdgpu) | `` | `asus-zephyrus-ga402x-amdgpu` | | [Asus ROG Zephyrus G14 GA402X\* (2023)](asus/zephyrus/ga402x/nvidia) | `` | `asus-zephyrus-ga402x-nvidia` | diff --git a/asus/flow/gv302x/shared.nix b/asus/flow/gv302x/shared.nix index a556e7d0..ada7f65b 100644 --- a/asus/flow/gv302x/shared.nix +++ b/asus/flow/gv302x/shared.nix @@ -11,7 +11,6 @@ let mkEnableOption mkIf mkMerge - version versionAtLeast ; diff --git a/asus/zephyrus/ga401iv/default.nix b/asus/zephyrus/ga401iv/default.nix new file mode 100644 index 00000000..32839501 --- /dev/null +++ b/asus/zephyrus/ga401iv/default.nix @@ -0,0 +1,38 @@ +{ lib, ... }: + +{ + imports = [ + ../../../common/cpu/amd + ../../../common/cpu/amd/pstate.nix + ../../../common/gpu/amd + ../../../common/gpu/nvidia/prime.nix + ../../../common/gpu/nvidia/turing + ../../../common/pc/laptop + ../../../common/pc/ssd + ]; + + hardware.nvidia = { + # Enable DRM kernel mode setting + # This will also cause "PCI-Express Runtime D3 Power Management" to be enabled by default + modesetting.enable = lib.mkDefault true; + + # Dynamic boost is available on ampere GPUs and newer, not this laptop + dynamicBoost.enable = lib.mkDefault false; + + prime = { + amdgpuBusId = "PCI:4:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; + + services = { + asusd.enable = lib.mkDefault true; + + udev.extraHwdb = '' + evdev:name:*:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:* + KEYBOARD_KEY_ff31007c=f20 # fixes mic mute button + KEYBOARD_KEY_ff3100b2=home # Set fn+LeftArrow as Home + KEYBOARD_KEY_ff3100b3=end # Set fn+RightArrow as End + ''; + }; +} diff --git a/flake.nix b/flake.nix index 1fbed53c..bcee0b1e 100644 --- a/flake.nix +++ b/flake.nix @@ -87,6 +87,7 @@ asus-zenbook-ux535 = import ./asus/zenbook/ux535; asus-zenbook-ux481-intelgpu = import ./asus/zenbook/ux481/intelgpu; asus-zenbook-ux481-nvidia = import ./asus/zenbook/ux481/nvidia; + asus-zephyrus-ga401iv = import ./asus/zephyrus/ga401iv; asus-zephyrus-ga401 = import ./asus/zephyrus/ga401; asus-zephyrus-ga402 = import ./asus/zephyrus/ga402; asus-zephyrus-ga402x = import ./asus/zephyrus/ga402x; @@ -425,16 +426,16 @@ common-cpu-amd-zenpower = import ./common/cpu/amd/zenpower.nix; common-cpu-amd-raphael-igpu = import ./common/cpu/amd/raphael/igpu.nix; common-cpu-intel = import ./common/cpu/intel; - common-gpu-intel-comet-lake = - deprecated "992" "common-gpu-intel-comet-lake" - (import ./common/gpu/intel/comet-lake); + common-gpu-intel-comet-lake = deprecated "992" "common-gpu-intel-comet-lake" ( + import ./common/gpu/intel/comet-lake + ); common-cpu-intel-cpu-only = import ./common/cpu/intel/cpu-only.nix; - common-gpu-intel-kaby-lake = - deprecated "992" "common-gpu-intel-kaby-lake" - (import ./common/gpu/intel/kaby-lake); - common-gpu-intel-sandy-bridge = - deprecated "992" "common-gpu-intel-sandy-bridge" - (import ./common/gpu/intel/sandy-bridge); + common-gpu-intel-kaby-lake = deprecated "992" "common-gpu-intel-kaby-lake" ( + import ./common/gpu/intel/kaby-lake + ); + common-gpu-intel-sandy-bridge = deprecated "992" "common-gpu-intel-sandy-bridge" ( + import ./common/gpu/intel/sandy-bridge + ); common-gpu-amd = import ./common/gpu/amd; common-gpu-amd-sea-islands = import ./common/gpu/amd/sea-islands; common-gpu-amd-southern-islands = import ./common/gpu/amd/southern-islands; diff --git a/kobol/helios4/default.nix b/kobol/helios4/default.nix index b2b67c1a..8e32ab3c 100644 --- a/kobol/helios4/default.nix +++ b/kobol/helios4/default.nix @@ -5,6 +5,7 @@ let # A patch to get both PWM fans working # the patch has been successfully applied to 5.15 and 5.19 { + name = "mvebu-gpio-remove-hardcoded-timer-assignment"; patch = pkgs.fetchpatch { url = "https://raw.githubusercontent.com/armbian/build/bd3466eef2106ea13e85e821f5d852ff97465e6c/patch/kernel/archive/mvebu-5.15/92-mvebu-gpio-remove-hardcoded-timer-assignment.patch"; sha256 = "sha256-eQqMp0+MZd30zkl8DE89oB7czvyqCkfwF2k0EZ69jr0="; @@ -12,12 +13,14 @@ let } # support for Wake-On-Lan { + name = "mvebu-gpio-add-wake-on-gpio-support"; patch = pkgs.fetchpatch { url = "https://raw.githubusercontent.com/armbian/build/bd3466eef2106ea13e85e821f5d852ff97465e6c/patch/kernel/archive/mvebu-5.15/92-mvebu-gpio-add_wake_on_gpio_support.patch"; sha256 = "sha256-OrvnVCU55P0U78jdoxGRJvl29i+Rvq8AdEGSCCpxa2I="; }; } { + name = "helios4-dts-add-wake-on-lan-support"; patch = pkgs.fetchpatch { url = "https://raw.githubusercontent.com/armbian/build/bd3466eef2106ea13e85e821f5d852ff97465e6c/patch/kernel/archive/mvebu-5.15/94-helios4-dts-add-wake-on-lan-support.patch"; sha256 = "sha256-ai4161bTC22023eaVVWsvbk6fQKjkv0P4DQ4DA1Zgow="; diff --git a/mnt/reform/kernel.nix b/mnt/reform/kernel.nix index 7b742b23..b67dad7a 100644 --- a/mnt/reform/kernel.nix +++ b/mnt/reform/kernel.nix @@ -34,18 +34,23 @@ let hash = "sha256-XiTuH40b3VJqzwygZzU0FcvMDj41Rq6IsMbm+3+QxDY="; }; - kernelPatches = - (map (patch: { inherit patch; }) ( - lib.filesystem.listFilesRecursive "${reformDebianPackages}/linux/patches${lib.versions.majorMinor modDirVersion}" - )) - ++ [ - { - patch = callPackage ./dtsPatch.nix { - inherit reformDebianPackages; - kernelSource = src; - }; - } - ]; + # Use postPatch to apply patches from a directory without IFD + postPatch = '' + for patch in ${reformDebianPackages}/linux/patches${lib.versions.majorMinor modDirVersion}/*/*.patch; do + echo "Applying patch: $patch" + patch -p1 < "$patch" + done + ''; + + kernelPatches = [ + { + name = "reform-dts"; + patch = callPackage ./dtsPatch.nix { + inherit reformDebianPackages; + kernelSource = src; + }; + } + ]; structuredExtraConfig = with lib.kernel; { # configuration options from https://source.mnt.re/reform/reform-debian-packages/-/blob/7f31ba3a6742d60d8d502c1d86e63ef5df3916bf/linux/config diff --git a/pine64/star64/linux-5.15.nix b/pine64/star64/linux-5.15.nix index 39d8cedc..0eb664bc 100644 --- a/pine64/star64/linux-5.15.nix +++ b/pine64/star64/linux-5.15.nix @@ -32,6 +32,7 @@ let defconfig = "pine64_star64_defconfig"; kernelPatches = [ { + name = "keys-dh-fix"; patch = fetchpatch { url = "https://github.com/torvalds/linux/commit/215bebc8c6ac438c382a6a56bd2764a2d4e1da72.diff"; hash = "sha256-1ZqmVOkgcDBRkHvVRPH8I5G1STIS1R/l/63PzQQ0z0I="; @@ -39,12 +40,16 @@ let }; } { + name = "starfive-vin-sensor-fix"; patch = fetchpatch { url = "https://github.com/starfive-tech/linux/pull/108/commits/9ae8cb751c4d1fd2146b279a8e67887590e9d07a.diff"; hash = "sha256-EY0lno+HkY5mradBUPII3qqu0xh+BVQRzveCQcaht0M="; }; } - { patch = ./irq-desc-to-data.patch; } + { + name = "irq-desc-to-data"; + patch = ./irq-desc-to-data.patch; + } ] ++ kernelPatches; diff --git a/purism/librem/5r4/u-boot/default.nix b/purism/librem/5r4/u-boot/default.nix index 43dcee43..9cb4d4c4 100644 --- a/purism/librem/5r4/u-boot/default.nix +++ b/purism/librem/5r4/u-boot/default.nix @@ -1,6 +1,5 @@ { stdenv, - gcc11Stdenv, buildUBoot, fetchurl, fetchFromGitLab, @@ -28,7 +27,7 @@ let meta.license = lib.licenses.unfree; }); - arm-trusted-firmware-imx8mq = gcc11Stdenv.mkDerivation (_fa: { + arm-trusted-firmware-imx8mq = stdenv.mkDerivation (_fa: { pname = "arm-trusted-firmware-bl31"; version = "unstable-2020-07-08"; src = fetchFromGitLab { @@ -40,6 +39,7 @@ let }; enableParallelBuilding = true; hardeningDisable = [ "all" ]; + NIX_CFLAGS_COMPILE = "-Wno-error=array-bounds"; NIX_LDFLAGS = "--no-warn-rwx-segments"; buildFlags = [ "PLAT=imx8mq" @@ -53,14 +53,14 @@ let }); ubootLibrem5 = buildUBoot { - version = "unstable-2022-12-15"; + version = "unstable-2025-03-25"; defconfig = "librem5_defconfig"; src = fetchFromGitLab { domain = "source.puri.sm"; owner = "Librem5"; repo = "uboot-imx"; - rev = "956aa590c93977992743b41c45d3c7ee5a024915"; # this is the latest commit on the upstream/librem5 branch - hash = "sha256-MsIIlarN+WFFEzc0ptLAgS7BwJ6Cosy42xo0EwPn1AU="; + rev = "72fcd4ee36e0874daac734c1195263cd9ce9d981"; # this is the latest commit on the upstream/librem5 branch + hash = "sha256-ymqZPuyyZoFTaCMQIJnuNs1fV0uVwJhyQdnGwv9m9lE="; }; patches = [ ]; BL31 = "${arm-trusted-firmware-imx8mq}/bl31.bin"; diff --git a/raspberry-pi/4/default.nix b/raspberry-pi/4/default.nix index d862a2e7..d390a330 100644 --- a/raspberry-pi/4/default.nix +++ b/raspberry-pi/4/default.nix @@ -35,7 +35,8 @@ "vc4" "pcie_brcmstb" # required for the pcie bus to work "reset-raspberrypi" # required for vl805 firmware to load - ]; + ] + ++ lib.optional config.boot.initrd.network.enable "genet"; # Allow building kernel initrd.systemd.tpm2.enable = false; @@ -55,6 +56,5 @@ } ]; - # Required for the Wireless firmware - hardware.enableRedistributableFirmware = true; + hardware.firmware = [ pkgs.raspberrypiWirelessFirmware ]; } diff --git a/tests/flake.lock b/tests/flake.lock index da5ee417..558576bc 100644 --- a/tests/flake.lock +++ b/tests/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixos-stable": { "locked": { - "lastModified": 1755274400, - "narHash": "sha256-rTInmnp/xYrfcMZyFMH3kc8oko5zYfxsowaLv1LVobY=", + "lastModified": 1761597516, + "narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad7196ae55c295f53a7d1ec39e4a06d922f3b899", + "rev": "daf6dc47aa4b44791372d6139ab7b25269184d55", "type": "github" }, "original": { @@ -18,11 +18,11 @@ }, "nixos-unstable-small": { "locked": { - "lastModified": 1755375481, - "narHash": "sha256-43PgCQFgFD1nM/7dncytV0c5heNHe/gXrEud18ZWcZU=", + "lastModified": 1761789293, + "narHash": "sha256-zwQKLaUgHSpY6SvB/MDgPYRPomWAmbkS3Xfo6JvFVOA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "35f1742e4f1470817ff8203185e2ce0359947f12", + "rev": "8d42228a0de7c23b012e2f7dd963425a372e1b0e", "type": "github" }, "original": { @@ -46,11 +46,11 @@ ] }, "locked": { - "lastModified": 1750931469, - "narHash": "sha256-0IEdQB1nS+uViQw4k3VGUXntjkDp7aAlqcxdewb/hAc=", + "lastModified": 1761311587, + "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "ac8e6f32e11e9c7f153823abc3ab007f2a65d3e1", + "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc", "type": "github" }, "original": { diff --git a/tests/run.py b/tests/run.py index 786e99bd..477a3735 100755 --- a/tests/run.py +++ b/tests/run.py @@ -69,6 +69,7 @@ def run_eval_test(gcroot_dir: Path, jobs: int) -> list[str]: failed_profiles = [] cmd = [ "nix-eval-jobs", + "--no-instantiate", "--extra-experimental-features", "flakes", "--option", "eval-cache", "false", "--gc-roots-dir",