75 lines
1.9 KiB
Nix
75 lines
1.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.custom.hardware.amdLaptop;
|
|
in
|
|
{
|
|
options.custom.hardware.amdLaptop.enable = lib.mkEnableOption "AMD laptop hardware configuration";
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs; [ zenmonitor ];
|
|
|
|
services = {
|
|
xserver = lib.mkIf config.services.xserver.enable {
|
|
videoDrivers = [ "modesetting" ];
|
|
deviceSection = ''
|
|
Option "DRI" "2"
|
|
Option "TearFree" "true"
|
|
'';
|
|
};
|
|
|
|
tlp = {
|
|
enable = true;
|
|
settings = {
|
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
|
|
|
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
|
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
|
|
|
|
CPU_MIN_PERF_ON_AC = 0;
|
|
CPU_MAX_PERF_ON_AC = 100;
|
|
CPU_MIN_PERF_ON_BAT = 0;
|
|
CPU_MAX_PERF_ON_BAT = 40;
|
|
|
|
#Optional helps save long term battery health
|
|
START_CHARGE_THRESH_BAT0 = 60; # 60 and bellow it starts to charge
|
|
STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging
|
|
|
|
};
|
|
};
|
|
};
|
|
|
|
boot = {
|
|
initrd = {
|
|
availableKernelModules = [
|
|
"nvme"
|
|
"xhci_pci"
|
|
"usbhid"
|
|
"usb_storage"
|
|
"sd_mod"
|
|
];
|
|
kernelModules = [ ];
|
|
};
|
|
kernelModules = [ "kvm-amd" ];
|
|
extraModulePackages = [ ];
|
|
};
|
|
networking.useDHCP = lib.mkDefault true;
|
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
hardware = {
|
|
enableRedistributableFirmware = lib.mkDefault true;
|
|
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
|
|
graphics = {
|
|
enable = true;
|
|
enable32Bit = true;
|
|
extraPackages = with pkgs; [ rocmPackages.clr.icd ];
|
|
};
|
|
amdgpu.initrd.enable = true;
|
|
};
|
|
};
|
|
}
|