2025-09-03 11:45:12 +02:00
|
|
|
{
|
|
|
|
|
config,
|
|
|
|
|
lib,
|
|
|
|
|
pkgs,
|
|
|
|
|
...
|
|
|
|
|
}:
|
|
|
|
|
with lib; let
|
|
|
|
|
cfg = config.mySystem.dev.qemu;
|
|
|
|
|
in {
|
2025-11-01 18:22:04 +01:00
|
|
|
options.mySystem.dev.qemu = {
|
|
|
|
|
enable = mkEnableOption "Enable QEMU";
|
|
|
|
|
users = mkOption {
|
|
|
|
|
type = types.listOf types.str;
|
|
|
|
|
default = ["phundrak"];
|
|
|
|
|
example = ["user1" "user2"];
|
|
|
|
|
};
|
|
|
|
|
};
|
2025-09-03 11:45:12 +02:00
|
|
|
config = mkIf cfg.enable {
|
2025-11-01 18:22:04 +01:00
|
|
|
programs.virt-manager.enable = true;
|
|
|
|
|
users.groups.libvirtd.members = cfg.users;
|
|
|
|
|
virtualisation = {
|
|
|
|
|
libvirtd.enable = true;
|
|
|
|
|
spiceUSBRedirection.enable = true;
|
|
|
|
|
};
|
2025-09-03 11:45:12 +02:00
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
|
qemu
|
2025-11-01 18:22:04 +01:00
|
|
|
quickemu
|
|
|
|
|
swtpm
|
2025-09-03 11:45:12 +02:00
|
|
|
];
|
2025-09-03 11:45:12 +02:00
|
|
|
systemd.tmpfiles.rules = ["L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"];
|
|
|
|
|
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
2025-09-03 11:45:12 +02:00
|
|
|
};
|
|
|
|
|
}
|