Skip to content

Instantly share code, notes, and snippets.

@hypothermic
Last active November 13, 2025 19:27
Show Gist options
  • Save hypothermic/8d666dc9e03e2312be1681733ea0f468 to your computer and use it in GitHub Desktop.
Save hypothermic/8d666dc9e03e2312be1681733ea0f468 to your computer and use it in GitHub Desktop.
NVIDIA vGPU driver installation Arch Linux
git clone -b 550.90 --recursive https://github.com/VGPU-Community-Drivers/vGPU-Unlock-patcher/
cd vGPU-Unlock-patcher
cp ../Host_Drivers/NVIDIA-Linux-x86_64-550.90.05-vgpu-kvm.run .
cp ../Guest_Drivers/NVIDIA-Linux-x86_64-550.90.07-grid.run .
cp ~/Downloads/NVIDIA-Linux-x86_64-550.90.07.run .
./patch.sh general-merge
cd NVIDIA-Linux-x86_64-550.90.07-merged-vgpu-kvm-patched
## I'm booted into an installation medium right now, so using outdated kernel (6.10.2 instead of 6.10.4 on my system)
## Specify your target system kernel version! (not from `uname -r` because that's of the installation medium)
./nvidia-installer --dkms -k 6.10.4-arch2-1 -m kernel
# MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
# HOOKS=(... kms ...)
nvim /etc/mkinitcpio.conf
## Make sure that nvidia-installer blacklisted nouveau module with:
## - /usr/lib/modprobe.d/nvidia-installer-disable.nouveau.conf OR
## - /etc/modprobe.d/nvidia-installer-disable-nouveau.conf
## otherwise just run `echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf`
mkinitcpio -P
# GRUB_CMDLINE_LINUX="... nvidia-drm.modeset=1 nvidia.vup_swrlwar=1 ..."
nvim /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
## Now reboot into OS and hope your DE works :)
nvidia-smi vgpu # should return list of vGPU's if this procedure worked
UUID=$(uuidgen)
mdevctl start -u $UUID -p 0000:01:00.0 -t nvidia-333 #
mdevctl define -a -u $UUID # autostart
mdevctl list # should list newly created vGPU
## Install virtualization tools if u haven't already
pacman -S libvirt qemu-desktop qemu-tools edk2-ovmf virt-manager dmidecode dnsmasq
usermod -aG libvirt,qemu $(whoami)
systemctl enable libvirtd
systemctl start libvirtd
systemctl start virtlogd
## Now follow VM setup procedure in libvirt. See Archlinux wiki PCI passthrough chapter 4.2
## Install guest OS using standard QXL display. Make sure it boots fine and then shutdown.
## Add the following
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment