37 lines
766 B
Nix
37 lines
766 B
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
cfg = config.myConfig.qemu;
|
|
in {
|
|
options.myConfig.qemu = {
|
|
enable = lib.mkEnableOption "qemu";
|
|
kvm = lib.mkEnableOption "kvm for faster emulation of x86";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
virtualisation.
|
|
libvirtd = {
|
|
enable = true;
|
|
qemu = {
|
|
package =
|
|
if cfg.kvm
|
|
then pkgs.qemu_kvm
|
|
else config.virtualisation.libvirtd.qemu.package;
|
|
runAsRoot = true;
|
|
swtpm.enable = true;
|
|
ovmf = {
|
|
enable = true;
|
|
packages = [
|
|
pkgs.OVMFFull.fd
|
|
];
|
|
};
|
|
};
|
|
};
|
|
# boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
|
users.users.${config.myConfig.user}.extraGroups = ["libvirtd"];
|
|
};
|
|
}
|