nixcfg/hosts/focalor/vfio.nix
2025-06-15 05:57:32 -04:00

61 lines
No EOL
1.7 KiB
Nix
Executable file

{ config, lib, system, pkgs, modulesPath, inputs, ... }:
{
programs.virt-manager.enable = true;
virtualisation.spiceUSBRedirection.enable = true;
virtualisation.libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
runAsRoot = true;
swtpm.enable = true;
ovmf = {
enable = true;
packages = [(pkgs.OVMF.override {
secureBoot = true;
tpmSupport = true;
}).fd];
};
};
hooks.qemu = {
"win11" = ./scripts/vm-win11-hook.sh;
};
};
systemd.services.libvirtd = {
path = let
env = pkgs.buildEnv {
name = "qemu-hook-env";
paths = with pkgs; [
bash
libvirt
kmod
systemd
ripgrep
sd
];
};
in
[ env ];
/*preStart =
''
mkdir -p /var/lib/libvirt/hooks
mkdir -p /var/lib/libvirt/hooks/qemu.d/win10/prepare/begin
mkdir -p /var/lib/libvirt/hooks/qemu.d/win10/release/end
mkdir -p /var/lib/libvirt/vgabios
ln -sf /home/regent/symlinks/qemu /var/lib/libvirt/hooks/qemu
ln -sf /home/regent/symlinks/kvm.conf /var/lib/libvirt/hooks/kvm.conf
ln -sf /home/regent/symlinks/start.sh /var/lib/libvirt/hooks/qemu.d/win11/prepare/begin/start.sh
ln -sf /home/regent/symlinks/stop.sh /var/lib/libvirt/hooks/qemu.d/win11/release/end/stop.sh
chmod +x /var/lib/libvirt/hooks/qemu
chmod +x /var/lib/libvirt/hooks/kvm.conf
chmod +x /var/lib/libvirt/hooks/qemu.d/win11/prepare/begin/start.sh
chmod +x /var/lib/libvirt/hooks/qemu.d/win11/release/end/stop.sh
'';*/
};
users.extraUsers.regent.extraGroups = [ "libvirtd" ];
}