diff options
| author | adikro <adikro@disroot.org> | 2025-12-18 21:04:00 +0100 |
|---|---|---|
| committer | adikro <adikro@disroot.org> | 2025-12-18 21:04:00 +0100 |
| commit | e60410393cea222b16743a1a87f29c06b9b3543b (patch) | |
| tree | 8a574048613f6b13024795bd710b824b40f5db18 /modules/sys/core/drivers.nix | |
| parent | ea3bf9c87ee72d6da5ea2316b229082c7fc9cdf6 (diff) | |
rewrite of system modules, hm modules are next
Diffstat (limited to 'modules/sys/core/drivers.nix')
| -rw-r--r-- | modules/sys/core/drivers.nix | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/sys/core/drivers.nix b/modules/sys/core/drivers.nix new file mode 100644 index 0000000..f12f6ab --- /dev/null +++ b/modules/sys/core/drivers.nix @@ -0,0 +1,56 @@ +{ config, lib, pkgs, ... }: +{ + options.szpont.drivers = { + enable = lib.mkEnableOption "enables hardware drivers"; + + amd.enable = lib.mkEnableOption "AMD specific drivers and microcode"; + + stability = lib.mkOption { + type = lib.types.enum [ "stable" "unstable" ]; + default = "stable"; + }; + }; + + config = lib.mkMerge [ + { + services.smartd.enable = true; + hardware = { + sensor.iio.enable = true; + + enableRedistributableFirmware = true; + graphics = { + enable = true; + enable32Bit = true; + }; + }; + } + + (lib.mkIf config.szpont.drivers.amd.enable (lib.mkMerge [ + { + services.xserver.videoDrivers = [ "amdgpu" ]; + hardware = { + cpu.amd.updateMicrocode = true; + amdgpu = { + initrd.enable = true; + overdrive.enable = true; + }; + }; + } + + (lib.mkIf (config.szpont.drivers.stability == "unstable") { + services.lact.enable = true; + + boot.kernelPackages = pkgs.linuxPackages_cachyos-lto-znver4; + chaotic.mesa-git = { + enable = true; + fallbackSpecialisation = false; + extraPackages = [ pkgs.mesa_git.opencl ]; + }; + }) + + (lib.mkIf (config.szpont.drivers.stability == "stable") { + boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest; + }) + ])) + ]; +} |
