feat: Disable nvidia driver for dgpu passthrough

This commit is contained in:
ulic-youthlic 2026-05-22 06:03:40 +08:00
parent 06b908a2e4
commit bfef1951a3
Signed by: youthlic
GPG key ID: 63E86C3C14A0D721
4 changed files with 57 additions and 28 deletions

View file

@ -10,7 +10,7 @@
(with inputs.nixos-hardware.nixosModules; [
common-hidpi
common-cpu-intel
common-gpu-nvidia
# common-gpu-nvidia
common-pc-laptop
common-pc-laptop-ssd
asus-battery

View file

@ -12,7 +12,7 @@
enable = true;
enableUdevRules = true;
};
xserver.videoDrivers = ["nvidia"];
# xserver.videoDrivers = ["nvidia"];
};
nix = {
settings = {
@ -29,26 +29,50 @@
driver = "xe";
vaapiDriver = "intel-media-driver";
};
nvidia = {
# Fix Nvidia API Change, See <https://github.com/NixOS/nixpkgs/issues/467814/>
package = config.boot.kernelPackages.nvidiaPackages.beta;
modesetting.enable = true;
open = true;
prime = {
reverseSync.enable = lib.mkDefault false;
offload.enable = lib.mkDefault true;
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
};
# nvidia = {
# # Fix Nvidia API Change, See <https://github.com/NixOS/nixpkgs/issues/467814/>
# package = config.boot.kernelPackages.nvidiaPackages.beta;
# modesetting.enable = true;
# open = true;
# prime = {
# reverseSync.enable = lib.mkDefault false;
# offload.enable = lib.mkDefault true;
# intelBusId = "PCI:0:2:0";
# nvidiaBusId = "PCI:1:0:0";
# };
# };
};
boot = {
extraModulePackages = with config.boot.kernelPackages; [ddcci-driver];
kernelParams = [
"intel_iommu=on"
"iommu=pt"
];
kernelModules = [
"ddcci"
"ddcci-backlight"
"i2c-dev"
"vfio-pci.ids=10de:2520,10de:228e"
];
initrd.kernelModules = [
"vfio_pci"
"vfio"
"vfio_iommu_type1"
];
blacklistedKernelModules = [
"nouveau"
"nvidia"
"nvidia_drm"
"nvidia_modeset"
"nvidia_uvm"
];
extraModprobeConfig = ''
options vfio-pci ids=10de:2520,10de:228e
softdep nvidia pre: vfio-pci
softdep nouveau pre: vfio-pci
softdep nvidia_drm pre: vfio-pci
softdep nvidia_modeset pre: vfio-pci
'';
binfmt = {
emulatedSystems = [
"aarch64-linux"

View file

@ -1,15 +1,15 @@
{inputs, ...}: {
config.specialisation.niri-dgpu = {
inheritParentConfig = true;
configuration = {
disabledModules = [
inputs.nixos-hardware.nixosModules.common-gpu-nvidia
];
imports = [inputs.nixos-hardware.nixosModules.common-gpu-nvidia-nonprime];
hardware.nvidia.prime = {
reverseSync.enable = true;
offload.enable = false;
};
};
};
# config.specialisation.niri-dgpu = {
# inheritParentConfig = true;
# configuration = {
# disabledModules = [
# inputs.nixos-hardware.nixosModules.common-gpu-nvidia
# ];
# imports = [inputs.nixos-hardware.nixosModules.common-gpu-nvidia-nonprime];
# hardware.nvidia.prime = {
# reverseSync.enable = true;
# offload.enable = false;
# };
# };
# };
}

View file

@ -23,10 +23,15 @@ in {
enable = true;
};
users.groups.libvirtd.members = [cfg.unixName];
users.groups.kvm.members = [cfg.unixName];
virtualisation = {
libvirtd = {
enable = true;
qemu.vhostUserPackages = with pkgs; [virtiofsd];
qemu = {
runAsRoot = true;
swtpm.enable = true;
vhostUserPackages = with pkgs; [virtiofsd];
};
};
spiceUSBRedirection = {
enable = true;