final: prev: let inherit (final) lib; in { linuxPackages = final.linuxPackagesFor ( prev.linuxPackages.kernel.override { # turn this off for testing to view errors ignoreConfigErrors = true; structuredExtraConfig = with lib.kernel; { # optimisation for ryzen 7 # https://wiki.gentoo.org/wiki/Ryzen SMP = yes; X86_X2APIC = yes; X86_AMD_PLATFORM_DEVICE = yes; PROCESSOR_SELECT = yes; CPU_SUP_AMD = yes; SCHED_MC = yes; X86_MCE = yes; X86_MCE_AMD = yes; PERF_EVENTS_INTEL_RAPL = yes; X86_AMD_PSTATE = yes; X86_POWERNOW_K8 = no; # # not available # CPU_FREQ_DEFAULT_GOV_ONDEMAND = yes; # # a suboption for ONDEMAND governor # X86_AMD_FREQ_SENSITIVITY = yes; # skipping firmware loading section since it's handled by other parts of nixos options SENSORS_K10TEMP = yes; IOMMU_SUPPORT = yes; AMD_IOMMU = yes; # additional chipset drivers I2C_PIIX4 = yes; PINCTRL = yes; PINCTRL_AMD = yes; CRYPTO = yes; CRYPTO_HW = yes; CRYPTO_DEV_CCP = yes; CRYPTO_DEV_SP_CCP = yes; CRYPTO_DEV_CCP_CRYPTO = yes; CRYPTO_DEV_CCP_DD = yes; CRYPTO_DEV_SP_PSP = yes; # Power management controller X86_PLATFORM_DEVICES = yes; AMD_PMC = yes; # My config DRM_AMDGPU = yes; # Recent AMD GPU HYPERVISOR_GUEST = lib.mkForce no; }; } ); }