nixos-demo/os/virtualization.nix

35 lines
1.4 KiB
Nix
Raw Normal View History

2025-07-12 00:28:21 +02:00
{
config,
lib,
pkgs,
...
}:
{
boot.initrd = {
availableKernelModules = [
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_net")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_mmio")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_pci")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_blk")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_scsi")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "9p")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "9pnet_virtio")
];
kernelModules = [
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_balloon")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_console")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_rng")
(lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") "virtio_gpu")
];
};
services.qemuGuest.enable = lib.mkIf (config.beancloud.hardware.virtualmachine.type == "kvm") true;
virtualisation.libvirtd.enable = lib.mkIf config.beancloud.software.virtualisation true;
environment.systemPackages = with pkgs; [
(lib.mkIf (
config.beancloud.software.virtualisation || config.beancloud.software.virt-manager
) virt-manager)
];
}