diff --git a/home/cfg/arrpc.nix b/home/cfg/arrpc.nix new file mode 100644 index 0000000..d91f8cd --- /dev/null +++ b/home/cfg/arrpc.nix @@ -0,0 +1,5 @@ +{ + services.arrpc = { + enable = true; + }; +} diff --git a/home/cfg/git.nix b/home/cfg/git.nix index a2ed322..1d45b0f 100644 --- a/home/cfg/git.nix +++ b/home/cfg/git.nix @@ -7,5 +7,8 @@ email = "k3t@k3t.dev"; }; }; + lfs = { + enable = true; + }; }; -} \ No newline at end of file +} diff --git a/home/cfg/gtk.nix b/home/cfg/gtk.nix index 9d0fe3e..e212e75 100644 --- a/home/cfg/gtk.nix +++ b/home/cfg/gtk.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }: { gtk = { - enable = true; + enable = false; colorScheme = "dark"; cursorTheme = { name = "WhiteSur-cursors"; @@ -20,4 +20,4 @@ theme = config.gtk.theme; }; }; -} \ No newline at end of file +} diff --git a/home/desktop.nix b/home/desktop.nix index 2ad7891..1ab2f72 100644 --- a/home/desktop.nix +++ b/home/desktop.nix @@ -1,9 +1,26 @@ +{pkgs, ...}: + { imports = [ ./common.nix + ./cfg/arrpc.nix ./cfg/keepassxc.nix ./cfg/kitty.nix - ./cfg/gtk.nix + #./cfg/gtk.nix + # excluded since there are issues with kde ./cfg/qbz.nix ]; + + home.packages = with pkgs; [ + (deadbeef-with-plugins.override { + plugins = [ + deadbeefPlugins.mpris2 + deadbeefPlugins.lyricbar + deadbeefPlugins.statusnotifier + deadbeefPlugins.waveform-seekbar + deadbeefPlugins.vgmstream + deadbeefPlugins.headerbar-gtk3 + ]; + }) + ]; } diff --git a/hosts/TheBlackBox/amdgpu-cap_sys_nice_begone.patch b/hosts/TheBlackBox/amdgpu-cap_sys_nice_begone.patch new file mode 100644 index 0000000..c1457fd --- /dev/null +++ b/hosts/TheBlackBox/amdgpu-cap_sys_nice_begone.patch @@ -0,0 +1,26 @@ +From fe059b4c373639fc5d69067e62de3f2a0e44a037 Mon Sep 17 00:00:00 2001 +From: Sefa Eyeoglu +Date: Fri, 17 Mar 2023 16:50:57 +0100 +Subject: [PATCH] amdgpu: allow any ctx priority + +Signed-off-by: Sefa Eyeoglu +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +index d2139ac12159..c7f1d36329c8 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +@@ -107,7 +107,7 @@ static int amdgpu_ctx_priority_permit(struct drm_file *filp, + if (drm_is_current_master(filp)) + return 0; + +- return -EACCES; ++ return 0; + } + + static enum amdgpu_gfx_pipe_priority amdgpu_ctx_prio_to_gfx_pipe_prio(int32_t prio) +-- +2.39.2 + diff --git a/hosts/TheBlackBox/amdgpu-kernel-module.nix b/hosts/TheBlackBox/amdgpu-kernel-module.nix new file mode 100644 index 0000000..08d7dd4 --- /dev/null +++ b/hosts/TheBlackBox/amdgpu-kernel-module.nix @@ -0,0 +1,38 @@ +{ 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; + }; +} diff --git a/hosts/TheBlackBox/configuration.nix b/hosts/TheBlackBox/configuration.nix index 8ed65b7..5810019 100644 --- a/hosts/TheBlackBox/configuration.nix +++ b/hosts/TheBlackBox/configuration.nix @@ -4,6 +4,13 @@ { config, pkgs, ... }: +let + amdgpu-kernel-module = pkgs.callPackage ./amdgpu-kernel-module.nix { + # Make sure the module targets the same kernel as your system is using. + kernel = config.boot.kernelPackages.kernel; + }; +in + { imports = [ # Include the results of the hardware scan. @@ -12,6 +19,36 @@ networking.hostName = "TheBlackBox"; + # Linux and VR... nightmare below + boot.extraModulePackages = [ + (amdgpu-kernel-module.overrideAttrs (_: { + patches = [ ./amdgpu-cap_sys_nice_begone.patch ]; + })) + ]; + + services.wivrn = { + enable = true; + openFirewall = true; + + # Run WiVRn as a systemd service on startup + autoStart = true; + }; + + programs.alvr = { + enable = true; + openFirewall = true; + }; + + services.monado = { + enable = true; + defaultRuntime = true; # Register as default OpenXR runtime + }; + + systemd.user.services.monado.environment = { + STEAMVR_LH_ENABLE = "1"; + XRT_COMPOSITOR_COMPUTE = "1"; + }; + users.users.k3t = { packages = with pkgs; [ virt-viewer diff --git a/modules/sys/hw/gpu/amd.nix b/modules/sys/hw/gpu/amd.nix index 4647657..24e96e9 100644 --- a/modules/sys/hw/gpu/amd.nix +++ b/modules/sys/hw/gpu/amd.nix @@ -1,12 +1,20 @@ { pkgs, ... }: { - # Graphics - hardware.enableRedistributableFirmware = true; - hardware.graphics = { - enable = true; - enable32Bit = true; - extraPackages = with pkgs; [ - vkbasalt - ]; + services.lact.enable = true; + + nixpkgs.config.rocmSupport = true; + hardware = { + amdgpu = { + opencl.enable = true; + initrd.enable = true; + }; + enableRedistributableFirmware = true; + graphics = { + enable = true; + enable32Bit = true; + extraPackages = with pkgs; [ + vkbasalt + ]; + }; }; -} \ No newline at end of file +}