monolith: extract amdgpu config
This commit is contained in:
		
							parent
							
								
									0b7bb0a69b
								
							
						
					
					
						commit
						26993eadbc
					
				
					 3 changed files with 39 additions and 36 deletions
				
			
		
							
								
								
									
										37
									
								
								hosts/monolith/amdgpu.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								hosts/monolith/amdgpu.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
  undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
 | 
			
		||||
    set -xe
 | 
			
		||||
    cd $1
 | 
			
		||||
    echo "manual" > power_dpm_force_performance_level
 | 
			
		||||
    echo "1" > pp_power_profile_mode
 | 
			
		||||
    test -e pp_od_clk_voltage
 | 
			
		||||
    echo "vo -120" > pp_od_clk_voltage
 | 
			
		||||
    echo "c" > pp_od_clk_voltage
 | 
			
		||||
  '';
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  boot.initrd.kernelModules = [ "amdgpu" ];
 | 
			
		||||
  boot.kernelParams = [
 | 
			
		||||
    "amdgpu.dcdebugmask=0x10" # amdgpu undervolting bug
 | 
			
		||||
    "video=DP-1:1920x1080@144"
 | 
			
		||||
    "amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  hardware.opengl.driSupport = true;
 | 
			
		||||
  # # For 32 bit applications
 | 
			
		||||
  hardware.opengl.driSupport32Bit = true;
 | 
			
		||||
 | 
			
		||||
  hardware.opengl.extraPackages = with pkgs; [
 | 
			
		||||
    libva
 | 
			
		||||
    libvdpau
 | 
			
		||||
    vaapiVdpau
 | 
			
		||||
    rocm-opencl-icd
 | 
			
		||||
    rocm-opencl-runtime
 | 
			
		||||
    rocmPackages.rocm-smi
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  services.udev.extraRules = ''
 | 
			
		||||
    ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device"
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -23,7 +23,7 @@ in
 | 
			
		|||
  imports = [
 | 
			
		||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ./partition.nix
 | 
			
		||||
    ./undervolt.nix
 | 
			
		||||
    ./amdgpu.nix
 | 
			
		||||
  ];
 | 
			
		||||
  boot.initrd.availableKernelModules = [
 | 
			
		||||
    "nvme"
 | 
			
		||||
| 
						 | 
				
			
			@ -52,28 +52,12 @@ in
 | 
			
		|||
    "amdgpu"
 | 
			
		||||
    "zenpower"
 | 
			
		||||
  ];
 | 
			
		||||
  boot.kernelParams = [
 | 
			
		||||
    "amdgpu.dcdebugmask=0x10" # amdgpu undervolting bug
 | 
			
		||||
    "video=DP-1:1920x1080@144"
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  systemd.sleep.extraConfig = ''
 | 
			
		||||
    HibernateDelaySec=30s
 | 
			
		||||
    SuspendState=mem
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  hardware.opengl.driSupport = true;
 | 
			
		||||
  # # For 32 bit applications
 | 
			
		||||
  hardware.opengl.driSupport32Bit = true;
 | 
			
		||||
 | 
			
		||||
  hardware.opengl.extraPackages = with pkgs; [
 | 
			
		||||
    libva
 | 
			
		||||
    libvdpau
 | 
			
		||||
    vaapiVdpau
 | 
			
		||||
    rocm-opencl-icd
 | 
			
		||||
    rocm-opencl-runtime
 | 
			
		||||
    rocmPackages.rocm-smi
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/mnt/old" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BTRFS_ROOT";
 | 
			
		||||
    fsType = "btrfs";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
  undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
 | 
			
		||||
    set -xe
 | 
			
		||||
    cd $1
 | 
			
		||||
    echo "manual" > power_dpm_force_performance_level
 | 
			
		||||
    echo "1" > pp_power_profile_mode
 | 
			
		||||
    test -e pp_od_clk_voltage
 | 
			
		||||
    echo "vo -120" > pp_od_clk_voltage
 | 
			
		||||
    echo "c" > pp_od_clk_voltage
 | 
			
		||||
  '';
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  boot.kernelParams = [ "amdgpu.ppfeaturemask=0xfffd7fff" ];
 | 
			
		||||
  services.udev.extraRules = ''
 | 
			
		||||
    ACTION=="add", SUBSYSTEM=="hwmon", ATTR{name}=="amdgpu", ATTR{power1_cap}="186000000", RUN+="${undervoltGpu} %S%p/device"
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue