44 lines
1.2 KiB
Nix
44 lines
1.2 KiB
Nix
![]() |
{ 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
|
||
|
'';
|
||
|
}
|
||
|
|