chore(update): remove lix patch, minor waybar changes
This commit is contained in:
41
modules/nixos/services/virtualisation/default.nix
Normal file
41
modules/nixos/services/virtualisation/default.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkIf mkEnableOption;
|
||||
cfg = config.nixos.services.virtualisation;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
nixos.services.virtualisation.enable = mkEnableOption "Enables virtualisation";
|
||||
};
|
||||
imports = [
|
||||
./vfio.nix
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
networking.firewall.trustedInterfaces = [ "virbr0" ];
|
||||
environment.systemPackages = with pkgs; [
|
||||
virt-manager
|
||||
virt-viewer
|
||||
];
|
||||
|
||||
virtualisation = {
|
||||
spiceUSBRedirection.enable = true;
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
onShutdown = "shutdown";
|
||||
qemu = {
|
||||
ovmf = {
|
||||
enable = true;
|
||||
packages = [ pkgs.OVMFFull.fd ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
nixos.services.virtualisation.vfio.enable = true;
|
||||
};
|
||||
}
|
||||
41
modules/nixos/services/virtualisation/vfio.nix
Normal file
41
modules/nixos/services/virtualisation/vfio.nix
Normal file
@@ -0,0 +1,41 @@
|
||||
{ lib, config, ... }:
|
||||
let
|
||||
gpuIDs = [
|
||||
"1002:13c0"
|
||||
"1002:1640"
|
||||
];
|
||||
|
||||
vfioIds = "vfio-pci.ids=" + lib.concatStringsSep "," gpuIDs;
|
||||
baseBootKernelParams = config.boot.kernelParams or [ ];
|
||||
cfg = config.nixos.services.virtualisation.vfio;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
nixos.services.virtualisation.vfio.enable =
|
||||
lib.mkEnableOption "Enable VFIO passthrough for the iGPU";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
boot = {
|
||||
initrd.kernelModules = [
|
||||
"vfio_pci"
|
||||
"vfio"
|
||||
"vfio_iommu_type1"
|
||||
];
|
||||
|
||||
kernelParams = [
|
||||
"amd_iommu=on"
|
||||
"iommu=pt"
|
||||
]
|
||||
++ [ vfioIds ];
|
||||
};
|
||||
|
||||
specialisation.vfio.configuration = {
|
||||
system.nixos.tags = [ "vfio" ];
|
||||
boot = {
|
||||
kernelParams = baseBootKernelParams ++ [ vfioIds ];
|
||||
blacklistedKernelModules = [ "amdgpu:0f:00.0" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user