lifetracker/hosts/orion/ga403/default.nix
2025-01-25 13:05:37 -08:00

94 lines
2.2 KiB
Nix

{
config,
pkgs,
lib,
...
}:
let
inherit (lib)
mkDefault
mkForce
;
in
{
imports = [
./common/cpu/amd
./common/cpu/amd/pstate.nix
./common/gpu/amd
./common/pc/laptop
./common/pc/ssd
./common/gpu/nvidia/prime.nix
./common/gpu/nvidia/ada-lovelace
];
config = {
# # Configure basic system settings:
boot = {
# Note: it seems being on the latest kernel is important for CPPC to work, which is required for the amd_pstate
# https://bugzilla.kernel.org/show_bug.cgi?id=218686
kernelPackages = pkgs.linuxPackages_xanmod;
kernelModules = [ "kvm-amd" ];
kernelParams = [
"mem_sleep_default=deep"
"pcie_aspm.policy=powersupersave"
];
};
services = {
asusd = {
enable = mkDefault true;
enableUserService = mkDefault true;
};
supergfxd.enable = mkDefault true;
};
# # Enable the Nvidia card, as well as Prime and Offload: NVIDIA GeForce RTX 4060 Mobile
boot.blacklistedKernelModules = [ "nouveau" ];
services.xserver.videoDrivers = mkForce [
"amdgpu"
"nvidia"
];
hardware = {
amdgpu.initrd.enable = mkDefault true;
nvidia = {
modesetting.enable = true;
nvidiaSettings = mkDefault true;
prime = {
offload = {
enable = mkDefault true;
enableOffloadCmd = mkDefault true;
};
amdgpuBusId = "PCI:65:0:0";
nvidiaBusId = "PCI:1:0:0";
};
powerManagement = {
enable = lib.mkForce true;
finegrained = lib.mkForce true;
};
};
};
# Meditek doesn't seem to be quite sensitive enough on the default roaming settings:
# https://wiki.archlinux.org/title/Wpa_supplicant#Roaming
# https://wiki.archlinux.org/title/Iwd#iwd_keeps_roaming
#
# But NixOS doesn't have the tweaks for IWD, yet.
# networking.wireless.iwd.settings =
# lib.mkIf (config.networking.wireless.iwd.enable && config.networking.wireless.scanOnLowSignal)
# {
# General = {
# RoamThreshold = -75;
# RoamThreshold5G = -80;
# RoamRetryInterval = 20;
# };
# };
};
}