47 lines
864 B
Nix
47 lines
864 B
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.custom.kernel.vfio;
|
|
in
|
|
{
|
|
options.custom.kernel.vfio = {
|
|
enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
};
|
|
};
|
|
config = lib.mkIf cfg.enable {
|
|
boot = {
|
|
extraModulePackages = [ config.boot.kernelPackages.kvmfr ];
|
|
extraModprobeConfig = ''
|
|
options kvmfr static_size_mb=128
|
|
'';
|
|
kernelParams = [
|
|
"vfio-pci.ids=10de:2204,10de:1aef"
|
|
];
|
|
kernelModules = [ "kvmfr" ];
|
|
|
|
initrd.kernelModules = [
|
|
"kvmfr"
|
|
"kvm-amd"
|
|
|
|
"vfio_pci"
|
|
"vfio_iommu_type1"
|
|
"vfio"
|
|
];
|
|
};
|
|
services = {
|
|
udev.extraRules = ''
|
|
SUBSYSTEM=="kvmfr", OWNER="master", GROUP="kvm", MODE="0660"
|
|
'';
|
|
};
|
|
|
|
environment.systemPackages = [
|
|
pkgs.looking-glass-client
|
|
];
|
|
};
|
|
}
|