{ 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) ]; }