anchor.diff:  
     vgpuOptions = {
       uuid = mkOption {
  -      type = types.str;
  -      description = "UUID of VGPU device. You can generate one with <package>libossp_uuid</package>.";
  +      type = with types; listOf str;
  +      description = "UUID(s) of VGPU device. You can generate one with <package>libossp_uuid</package>.";
       };
     };
   
  
positive.code:           and find info about device via <command>cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description</command>
          '';
          example = {
            i915-GVTg_V5_8.uuid = "a297db4a-f4c2-11e6-90f6-d3b88d6c9525";
          };
        };
      };
  
negative.code:     boot.kernelModules = [ "kvmgt" ];
      boot.kernelParams = [ "i915.enable_gvt=1" ];
  
      services.udev.extraRules = ''
        SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"
      '';
  
      systemd = let
        vgpus = listToAttrs (flatten (mapAttrsToList
          (mdev: opt: map (id: nameValuePair "kvmgt-${id}" { inherit mdev; uuid = id; }) opt.uuid)
          cfg.vgpus));
      in {
        paths = mapAttrs (_: opt:
          {
            description = "KVMGT VGPU ${opt.uuid} path";
            wantedBy = [ "multi-user.target" ];
            pathConfig = {
              PathExists = "/sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${opt.mdev}/create";
            };
          }) vgpus;
  
        services = mapAttrs (_: opt:
          {
            description = "KVMGT VGPU ${opt.uuid}";
            serviceConfig = {
              Type = "oneshot";
              RemainAfterExit = true;
              ExecStart = "${pkgs.runtimeShell} -c 'echo ${opt.uuid} > /sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${opt.mdev}/create'";
              ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/bus/pci/devices/${cfg.device}/${opt.uuid}/remove'";
            };
          }) vgpus;
      };
    };
  
    meta.maintainers = with maintainers; [ gnidorah ];
  