diff --git a/flake.lock b/flake.lock index 3a91eef..a6405b8 100644 --- a/flake.lock +++ b/flake.lock @@ -824,6 +824,22 @@ "url": "https://git.vlt81.de/tristan/nixinate.git" } }, + "nixos-hardware": { + "locked": { + "lastModified": 1714465198, + "narHash": "sha256-ySkEJvS0gPz2UhXm0H3P181T8fUxvDVcoUyGn0Kc5AI=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "68d680c1b7c0e67a9b2144d6776583ee83664ef4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixos-hardware", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1714253743, @@ -1132,6 +1148,7 @@ "nix-ld-rs": "nix-ld-rs", "nix-wallpaper": "nix-wallpaper", "nixinate": "nixinate", + "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_5", "nixpkgs-unstable": "nixpkgs-unstable", "nixtheplanet": "nixtheplanet", diff --git a/flake.nix b/flake.nix index 9f2b068..02aa368 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,9 @@ nixpkgs-unstable = { url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; + nixos-hardware = { + url = "github:NixOS/nixos-hardware/master"; + }; nixpkgs = { url = "github:NixOS/nixpkgs/nixos-unstable"; }; @@ -57,6 +60,7 @@ { self , nixpkgs , nixpkgs-unstable + , nixos-hardware , nixtheplanet , nixinate , home-manager diff --git a/os-mods/amdgpu/default.nix b/os-mods/amdgpu/default.nix index 72e8359..bbc8637 100644 --- a/os-mods/amdgpu/default.nix +++ b/os-mods/amdgpu/default.nix @@ -1,50 +1,37 @@ { config , lib , pkgs +, inputs , ... }: { - boot = { - initrd.availableKernelModules = [ "amdgpu" ]; - kernelModules = [ "amdgpu" ]; - # kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" ]; - }; programs.corectrl = { enable = true; gpuOverclock.enable = true; }; - # services.xserver.videoDrivers = [ "amdgpu" ]; - services.xserver.videoDrivers = lib.mkDefault [ "modesetting" ]; - systemd.tmpfiles.rules = [ - "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages_5.clr}" - "L+ /opt/rocm/rocblas - - - - ${pkgs.rocmPackages_5.rocblas}" - "L+ /opt/rocm/hipblas - - - - ${pkgs.rocmPackages_5.hipblas}" - "L+ /opt/rocm/clang - - - - ${pkgs.rocmPackages_5.llvm.clang}" - "L+ /opt/rocm/runtime - - - - ${pkgs.rocmPackages_5.rocm-runtime}" + "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" + "L+ /opt/rocm/rocblas - - - - ${pkgs.rocmPackages.rocblas}" + "L+ /opt/rocm/hipblas - - - - ${pkgs.rocmPackages.hipblas}" + "L+ /opt/rocm/clang - - - - ${pkgs.rocmPackages.llvm.clang}" + "L+ /opt/rocm/runtime - - - - ${pkgs.rocmPackages.rocm-runtime}" ]; - hardware.opengl = { - driSupport = true; - driSupport32Bit = true; - extraPackages = with pkgs; [ - amdvlk - rocmPackages_5.rocm-runtime - rocmPackages_5.llvm.clang - rocm-opencl-icd - rocm-opencl-runtime - vaapiVdpau - libvdpau-va-gl - # libva1 - obs-studio-plugins.obs-vaapi # TODO check if obs is enabled - gst_all_1.gstreamer - gst_all_1.gst-vaapi - ]; - extraPackages32 = with pkgs; [ - driversi686Linux.amdvlk - driversi686Linux.vaapiVdpau - driversi686Linux.libvdpau-va-gl - ]; + + hardware = { + opengl = { + extraPackages = with pkgs; [ + vaapiVdpau + libvdpau-va-gl + obs-studio-plugins.obs-vaapi # TODO check if obs is enabled + gst_all_1.gstreamer + gst_all_1.gst-vaapi + ]; + extraPackages32 = with pkgs; [ + driversi686Linux.vaapiVdpau + driversi686Linux.libvdpau-va-gl + ]; + }; }; # Force radv diff --git a/os-mods/virt/default.nix b/os-mods/virt/default.nix index 7f776f1..c5b4178 100644 --- a/os-mods/virt/default.nix +++ b/os-mods/virt/default.nix @@ -12,6 +12,8 @@ gnome.gnome-boxes ]; + boot.kernelModules = [ "kvm-amd" ]; # TODO check cpu and enable intel kvm if needed + virtualisation.docker = { enable = true; package = pkgs.docker; diff --git a/systems/nixos-desk/default.nix b/systems/nixos-desk/default.nix index 127dff2..8b75eb6 100644 --- a/systems/nixos-desk/default.nix +++ b/systems/nixos-desk/default.nix @@ -8,6 +8,11 @@ }: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") + inputs.nixos-hardware.nixosModules.common-cpu-amd + inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate + inputs.nixos-hardware.nixosModules.common-gpu-amd + inputs.nixos-hardware.nixosModules.common-pc + inputs.nixos-hardware.nixosModules.common-pc-ssd ../../os-mods/amdgpu ../../os-mods/cachix ../../os-mods/common @@ -51,7 +56,6 @@ systemd.enable = true; }; - kernelModules = [ "kvm-amd" ]; extraModulePackages = [ ]; }; @@ -61,9 +65,8 @@ hostName = "nixos-desk"; useDHCP = lib.mkDefault true; }; - hardware = { - cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + enableRedistributableFirmware = true; }; zramSwap.enable = true; diff --git a/systems/nixos-he4/default.nix b/systems/nixos-he4/default.nix index abb2599..6253502 100644 --- a/systems/nixos-he4/default.nix +++ b/systems/nixos-he4/default.nix @@ -8,6 +8,8 @@ }: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") + inputs.nixos-hardware.nixosModules.common-cpu-amd + inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate ../../os-mods/cachix ../../os-mods/common ../../os-mods/netdata @@ -108,7 +110,6 @@ ]; boot = { kernelPackages = pkgs.linuxPackages_latest; - kernelModules = [ "kvm-amd" ]; extraModulePackages = [ ]; kernelParams = [ # "ip=192.168.1.35::192.168.1.1:255.255.255.0:my-server-initrd:eth0:none" @@ -161,7 +162,6 @@ hardware = { enableRedistributableFirmware = true; - cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; }; services.netdata.config = { diff --git a/systems/nixos-pulse/default.nix b/systems/nixos-pulse/default.nix index 7093cd2..5902eca 100644 --- a/systems/nixos-pulse/default.nix +++ b/systems/nixos-pulse/default.nix @@ -8,6 +8,11 @@ }: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") + inputs.nixos-hardware.nixosModules.common-cpu-amd + inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate + inputs.nixos-hardware.nixosModules.common-hidpi + inputs.nixos-hardware.nixosModules.common-pc-laptop-acpi_call + inputs.nixos-hardware.nixosModules.tuxedo-pulse-15-gen2 ../../os-mods/amdgpu ../../os-mods/cachix ../../os-mods/common @@ -22,6 +27,8 @@ ./disko.nix ]; + programs.corectrl.gpuOverclock.enable = lib.mkForce false; + nix.settings.system-features = [ "benchmark" "big-parallel" @@ -35,14 +42,10 @@ kernelPackages = pkgs.pkgsx86_64_v3.linuxPackages_cachyos; kernelPatches = [ ]; kernelParams = [ - "pcie_aspm=force" - "pcie_aspm.policy=powersupersave" - # "amd_pstate.shared_mem=1" - # "amd_pstate=passive" - # "initcall_blacklist=acpi_cpufreq_init" - # "initcall_blacklist=hsmp_plt_init" - # "gpiolib_acpi.ignore_interrupt=AMDI0030:00@9" - "rtc_cmos.use_acpi_alarm=1" # reduce S0 sleep wakeups + # "pcie_aspm=force" + # "pcie_aspm.policy=powersupersave" + # "rtc_cmos.use_acpi_alarm=1" # reduce S0 sleep wakeups + # "gpiolib_acpi.ignore_interrupt=AMDI0030:00@9" # mask IRQ 9 ? ]; loader = { systemd-boot = { @@ -58,7 +61,6 @@ systemd.enable = true; }; - kernelModules = [ "kvm-amd" ]; extraModulePackages = [ ]; };