nixos/hosts/desk/kvm.nix

44 lines
1.2 KiB
Nix
Raw Normal View History

2025-06-20 11:59:24 -07:00
{ config, lib, pkgs, ... }: {
environment.systemPackages = with pkgs; [ virt-manager ];
virtualisation.libvirtd = {
enable = true;
qemu.ovmf.enable = true;
qemu.runAsRoot = false;
onBoot = "ignore";
onShutdown = "shutdown";
qemu.vhostUserPackages = with pkgs; [ virtiofsd ];
hooks.qemu."qemu-hooks" = pkgs.writeShellScript "qemu-hooks" ''
export PATH="${lib.makeBinPath [
pkgs.bash
pkgs.xorg.xset
pkgs.coreutils
pkgs.util-linux
pkgs.i3
pkgs.xorg.xrandr
pkgs.ddcutil
]}:''$PATH"
${builtins.readFile ../../dotfiles/qemu/qemu-hooks }
'';
};
virtualisation.spiceUSBRedirection.enable = true;
programs.virt-manager.enable = true;
users.groups.libvirtd.members = [ "${config.user}" ];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.kernelParams = [ "amd_iommu=on" "pcie_aspm=off" ];
boot.kernelModules = [ "kvm-amd" ];
boot.initrd.availableKernelModules = [ "amdgpu" "vfio-pci" ];
boot.initrd.preDeviceCommands = ''
DEVS="0000:06:00.0 0000:06:00.1"
for DEV in $DEVS; do
echo "vfio-pci" > /sys/bus/pci/devices/$DEV/driver_override
done
modprobe -i vfio-pci
'';
}