diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2024-03-17 08:50:15 +0530 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2024-03-17 08:50:15 +0530 |
| commit | ee9a18519222bde2a7aafe1a4b2f0d2cb0313e4d (patch) | |
| tree | d888a6297284ebaebc552aff04db3a2f3b552ac9 /modules | |
| parent | fb7badd79b37f267c3ff5737c05eeb2f0fe1207f (diff) | |
update
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/compromyse.nix | 2 | ||||
| -rw-r--r-- | modules/login.nix | 5 | ||||
| -rw-r--r-- | modules/passthrough.nix | 1 | ||||
| -rw-r--r-- | modules/virtualization.nix | 53 |
4 files changed, 60 insertions, 1 deletions
diff --git a/modules/compromyse.nix b/modules/compromyse.nix index f822b46..a19b643 100644 --- a/modules/compromyse.nix +++ b/modules/compromyse.nix @@ -5,6 +5,6 @@ initialPassword = "changeme"; isNormalUser = true; # openssh.authorizedKeys.keys = []; - extraGroups = [ "wheel" "video" "storage" "input" "plugdev" "libvirtd" "docker" ]; + extraGroups = [ "wheel" "video" "storage" "input" "plugdev" "libvirtd" "docker" "kvm" ]; }; } diff --git a/modules/login.nix b/modules/login.nix index 67cd6d9..58e4ac4 100644 --- a/modules/login.nix +++ b/modules/login.nix @@ -43,4 +43,9 @@ }; programs.dconf.enable = true; + + environment.sessionVariables = { + __EGL_VENDOR_LIBRARY_FILENAMES = "${pkgs.mesa_drivers.outPath}/share/glvnd/egl_vendor.d/50_mesa.json"; + __GLX_VENDOR_LIBRARY_NAME = "mesa"; + }; } diff --git a/modules/passthrough.nix b/modules/passthrough.nix index 28c64f2..3629ef9 100644 --- a/modules/passthrough.nix +++ b/modules/passthrough.nix @@ -3,6 +3,7 @@ { environment.systemPackages = with pkgs; [ supergfxctl + lsof ]; services.supergfxd.enable = true; diff --git a/modules/virtualization.nix b/modules/virtualization.nix index 2d4937e..f3935c2 100644 --- a/modules/virtualization.nix +++ b/modules/virtualization.nix @@ -14,4 +14,57 @@ }; services.spice-vdagentd.enable = true; programs.virt-manager.enable = true; + + systemd.tmpfiles.rules = [ "f /dev/shm/looking-glass 0660 compromyse kvm -" ]; + + environment.systemPackages = [ + pkgs.looking-glass-client + + (pkgs.writeShellScriptBin "bind-vfio" '' + modprobe -r nvidia_drm nvidia_modeset nvidia_uvm i2c_nvidia_gpu nvidia + + modprobe vfio + modprobe vfio_iommu_type1 + modprobe vfio_pci + + systemctl --user -M compromyse@ stop pipewire.service pipewire.socket + + virsh nodedev-detach pci_0000_01_00_0 + virsh nodedev-detach pci_0000_01_00_1 + + systemctl --user -M compromyse@ restart pipewire.service pipewire.socket + '') + + (pkgs.writeShellScriptBin "unbind-vfio" '' + systemctl --user -M compromyse@ stop pipewire.service pipewire.socket + + virsh nodedev-reattach pci_0000_01_00_0 + virsh nodedev-reattach pci_0000_01_00_1 + + systemctl --user -M compromyse@ restart pipewire.service pipewire.socket + + modprobe -r vfio_pci + modprobe -r vfio_iommu_type1 + modprobe -r vfio + + modprobe nvidia_drm nvidia_modeset nvidia_uvm i2c_nvidia_gpu nvidia + '') + + (pkgs.writeShellScriptBin "pin-cpu" '' + if [[ $1 == "" ]]; then + cpus="8-15" + else + cpus=$1 + fi + systemctl set-property --runtime -- user.slice AllowedCPUs="$cpus" + systemctl set-property --runtime -- system.slice AllowedCPUs="$cpus" + systemctl set-property --runtime -- init.scope AllowedCPUs="$cpus" + '') + + (pkgs.writeShellScriptBin "unpin-cpu" '' + systemctl set-property --runtime -- user.slice AllowedCPUs="" + systemctl set-property --runtime -- system.slice AllowedCPUs="" + systemctl set-property --runtime -- init.scope AllowedCPUs="" + '') + ]; } |
