Files
sydnix/modules/nixos/qemu.nix
2025-03-28 08:36:04 -06:00

43 lines
955 B
Nix

{ config, lib, pkgs, ... }:
with lib;
let cfg = config.sydnix.qemu;
in {
options.sydnix.qemu = {
enable = mkEnableOption "Qemu";
};
config = mkIf cfg.enable
(let
# Necessary for UEFI boot with libvirt.
qemu-uefi = pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
qemu-system-x86_64 \
-bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
"$@"
'';
in {
sydnix.impermanence.directories = [
# Most importantly, stores images and disks.
"/var/lib/libvirt"
];
programs.virt-manager.enable = true;
environment.systemPackages = [
pkgs.virtiofsd
qemu-uefi
];
virtualisation.libvirtd = {
enable = true;
qemu.vhostUserPackages = [ pkgs.virtiofsd ];
};
# Hack to enable UEFI support.
systemd.tmpfiles.rules = [
"L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"
];
});
}