diff --git a/home-manager/vr.nix b/home-manager/vr.nix new file mode 100644 index 0000000..b75e01a --- /dev/null +++ b/home-manager/vr.nix @@ -0,0 +1,22 @@ +{ pkgs, config, ... }: +{ + #xdg.configFile."openvr/openvrpaths.vrpath".text = '' + # { + # "config" : + # [ + # "~/.local/share/Steam/config" + # ], + # "external_drivers" : null, + # "jsonid" : "vrpathreg", + # "log" : + # [ + # "~/.local/share/Steam/logs" + # ], + # "runtime" : + # [ + # "${pkgs.opencomposite}/lib/opencomposite" + # ], + # "version" : 1 + # } + #''; +} diff --git a/modules/hardware/vr.nix b/modules/hardware/vr.nix new file mode 100644 index 0000000..bbfab3c --- /dev/null +++ b/modules/hardware/vr.nix @@ -0,0 +1,80 @@ +{ pkgs, config, ... }: +let + # https://wiki.nixos.org/wiki/VR#Patching_AMDGPU_to_allow_high_priority_queues + amdgpu = + { pkgs + , lib + , kernel ? pkgs.linuxPackages_latest.kernel + }: + + pkgs.stdenv.mkDerivation { + pname = "amdgpu-kernel-module"; + inherit (kernel) src version postPatch nativeBuildInputs; + + kernel_dev = kernel.dev; + kernelVersion = kernel.modDirVersion; + + modulePath = "drivers/gpu/drm/amd/amdgpu"; + + buildPhase = '' + BUILT_KERNEL=$kernel_dev/lib/modules/$kernelVersion/build + + cp $BUILT_KERNEL/Module.symvers . + cp $BUILT_KERNEL/.config . + cp $kernel_dev/vmlinux . + + make "-j$NIX_BUILD_CORES" modules_prepare + make "-j$NIX_BUILD_CORES" M=$modulePath modules + ''; + + installPhase = '' + make \ + INSTALL_MOD_PATH="$out" \ + XZ="xz -T$NIX_BUILD_CORES" \ + M="$modulePath" \ + modules_install + ''; + + meta = { + description = "AMD GPU kernel module"; + license = lib.licenses.gpl3; + }; + }; + amdgpu-kernel-module = pkgs.callPackage amdgpu { + # Make sure the module targets the same kernel as your system is using. + kernel = config.boot.kernelPackages.kernel; + }; +in +{ + #programs.envision = { + # enable = true; + # openFirewall = true; + #}; + #services.monado = { + # enable = true; + # defaultRuntime = true; # Register as default OpenXR runtime + #}; + #environment.systemPackages = with pkgs; [ + # monado + #]; + #systemd.user.services.monado.environment = { + # STEAMVR_LH_ENABLE = "1"; + # XRT_COMPOSITOR_COMPUTE = "1"; + #}; + # programs.git = { + # enable = true; + # lfs.enable = true; + # }; + hardware.steam-hardware.enable = true; + boot.extraModulePackages = [ + (amdgpu-kernel-module.overrideAttrs (_: { + patches = [ + (pkgs.fetchpatch { + name = "cap_sys_nice_begone.patch"; + url = "https://github.com/Frogging-Family/community-patches/raw/master/linux61-tkg/cap_sys_nice_begone.mypatch"; + hash = "sha256-Y3a0+x2xvHsfLax/uwycdJf3xLxvVfkfDVqjkxNaYEo="; + }) + ]; + })) + ]; +} diff --git a/systems/pc/configuration.nix b/systems/pc/configuration.nix index ef3bbee..a1786b9 100644 --- a/systems/pc/configuration.nix +++ b/systems/pc/configuration.nix @@ -18,6 +18,7 @@ ../../modules/misc/faster-boot-time.nix #../../modules/hardware/ryzenmonitor.nix ../../modules/networkmanager.nix + ../../modules/hardware/vr.nix ]; custom = { @@ -170,11 +171,11 @@ # disable until CVE-2024-47176, CVE-2024-47076, CVE-2024-47175, and CVE-2024-47177 is fixed services.printing.enable = false; services.printing.drivers = [ pkgs.brlaser ]; - services.avahi = { - enable = false; - nssmdns4 = true; - openFirewall = true; - }; + #services.avahi = { + # enable = false; + # nssmdns4 = true; + # openFirewall = true; + #}; # Enable automatic login for the user. #services.xserver.displayManager.autoLogin.enable = true; diff --git a/users/kopatz/home.nix b/users/kopatz/home.nix index e1c3532..9b34bde 100644 --- a/users/kopatz/home.nix +++ b/users/kopatz/home.nix @@ -32,6 +32,7 @@ ../../home-manager/stylix.nix ../../home-manager/mpv.nix ../../home-manager/discord-theme.nix + ../../home-manager/vr.nix inputs.nixvim.homeManagerModules.nixvim ];