mirror of
https://github.com/NixOS/nixos-hardware
synced 2025-01-12 11:59:46 +01:00
4c0d42b582
Changes several aspects of framework-laptop-kmod support: - default value has been changed to true when NixOS >= 24.05 and linux kernel >=6.10, and false otherwise - adds required patch for framework AMD enablement when kernel <6.10 - add README section describing usage
42 lines
1.5 KiB
Nix
42 lines
1.5 KiB
Nix
{ 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;
|
|
};
|
|
|
|
|
|
config.boot = lib.mkIf config.hardware.framework.enableKmod {
|
|
extraModulePackages = with config.boot.kernelPackages; [
|
|
framework-laptop-kmod
|
|
];
|
|
|
|
# https://github.com/DHowett/framework-laptop-kmod?tab=readme-ov-file#usage
|
|
kernelModules = [ "cros_ec" "cros_ec_lpcs" ];
|
|
|
|
# add required patch if enabled on kernel <6.10
|
|
kernelPatches = lib.mkIf (!kernel_version_compatible) [
|
|
rec {
|
|
name = "platform/chrome: cros_ec_lpc: add support for AMD Framework Laptops";
|
|
msgid = "20240403004713.130365-1-dustin@howett.net";
|
|
version = "3";
|
|
hash = "sha256-aQSyys8CMzlj9EdNhg8vtp76fg1qEwUVeJL0E+8w5HU=";
|
|
patch = pkgs.runCommandLocal "patch-${msgid}" {
|
|
nativeBuildInputs = with pkgs; [ b4 git cacert ];
|
|
SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
|
|
|
|
outputHash = hash;
|
|
} ''
|
|
export HOME="$TMP"
|
|
PYTHONHASHSEED=0 ${pkgs.b4}/bin/b4 -n am -C -T -v ${version} -o- "${msgid}" > "$out"
|
|
'';
|
|
}
|
|
];
|
|
};
|
|
}
|