diff --git a/framework/13-inch/11th-gen-intel/default.nix b/framework/13-inch/11th-gen-intel/default.nix index 2ea339690..3e93c89e1 100644 --- a/framework/13-inch/11th-gen-intel/default.nix +++ b/framework/13-inch/11th-gen-intel/default.nix @@ -2,6 +2,7 @@ imports = [ ../common ../common/intel.nix + ../common/intel-legacy.nix ]; # Requires at least 5.16 for working wi-fi and bluetooth. @@ -9,4 +10,6 @@ boot.kernelPackages = lib.mkIf (lib.versionOlder pkgs.linux.version "5.16") (lib.mkDefault pkgs.linuxPackages_latest); hardware.framework.laptop13.audioEnhancement.rawDeviceName = lib.mkDefault "alsa_output.pci-0000_00_1f.3.analog-stereo"; + + } diff --git a/framework/13-inch/12th-gen-intel/default.nix b/framework/13-inch/12th-gen-intel/default.nix index 4cce4446a..6e5b18f4f 100644 --- a/framework/13-inch/12th-gen-intel/default.nix +++ b/framework/13-inch/12th-gen-intel/default.nix @@ -3,6 +3,7 @@ imports = [ ../common ../common/intel.nix + ../common/intel-legacy.nix ]; config = lib.mkMerge [ diff --git a/framework/13-inch/common/intel-legacy.nix b/framework/13-inch/common/intel-legacy.nix new file mode 100644 index 000000000..15c69be40 --- /dev/null +++ b/framework/13-inch/common/intel-legacy.nix @@ -0,0 +1,8 @@ +{ config, lib, ... }: { + # on intel 11-13th gen, enable kmod by default if + # - kernel >= 6.10 + # - nixos >= 24.05 + hardware.framework.enableKmod = + lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10" && + lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.05"; +} diff --git a/framework/kmod.nix b/framework/kmod.nix index 6ed05b9af..5723815aa 100644 --- a/framework/kmod.nix +++ b/framework/kmod.nix @@ -1,17 +1,17 @@ { config, lib, pkgs, ... }: let kernel_version_compatible = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.10"; -in { - options.hardware.framework.enableKmod = (lib.mkEnableOption - "Enable the community created Framework kernel module that allows interacting with the embedded controller from sysfs." - ) // { - # enable by default on NixOS >= 24.05 and kernel >= 6.10 - default = lib.and - (lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.05") - kernel_version_compatible; - defaultText = "enabled by default on NixOS >= 24.05 and kernel >= 6.10"; - }; - +in +{ + options.hardware.framework.enableKmod = + (lib.mkEnableOption "Enable the community created Framework kernel module that allows interacting with the embedded controller from sysfs.") + // { + # enable by default on NixOS >= 24.05 and 6.10 <= kernel <= 6.12 + default = lib.versionAtLeast (lib.versions.majorMinor lib.version) "24.05" && + kernel_version_compatible && + !lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.12"; + defaultText = "enabled by default on NixOS >= 24.05 and kernel >= 6.10"; + }; config.boot = lib.mkIf config.hardware.framework.enableKmod { extraModulePackages = with config.boot.kernelPackages; [