anchor.diff:      boot.kernelModules = [ "kvmgt" ];
       boot.kernelParams = [ "i915.enable_gvt=1" ];
   
  -    systemd.paths = mapAttrs' (name: value:
  -      nameValuePair "kvmgt-${name}" {
  -        description = "KVMGT VGPU ${name} path";
  -        wantedBy = [ "multi-user.target" ];
  -        pathConfig = {
  -          PathExists = "/sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${name}/create";
  -        };
  -      }
  -    ) cfg.vgpus;
  -
       services.udev.extraRules = ''
         SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"
       '';
   
  -    systemd.services = mapAttrs' (name: value:
  -      nameValuePair "kvmgt-${name}" {
  -        description = "KVMGT VGPU ${name}";
  -        serviceConfig = {
  -          Type = "oneshot";
  -          RemainAfterExit = true;
  -          ExecStart = "${pkgs.runtimeShell} -c 'echo ${value.uuid} > /sys/bus/pci/devices/${cfg.device}/mdev_supported_types/${name}/create'";
  -          ExecStop = "${pkgs.runtimeShell} -c 'echo 1 > /sys/bus/pci/devices/${cfg.device}/${value.uuid}/remove'";
  -        };
  -      }
  -    ) cfg.vgpus;
  +    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 ];
  
positive.code: 
    vgpuOptions = {
      uuid = mkOption {
        type = types.str;
        description = "UUID of VGPU device. You can generate one with <package>libossp_uuid</package>.";
      };
    };
  
  
negative.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" ];
          };
        };
      };
  