Skip to content

Instantly share code, notes, and snippets.

@Alistair1231
Last active November 14, 2025 16:09
Show Gist options
  • Select an option

  • Save Alistair1231/94a0a9b85d7133e47b1729d1ea5852d4 to your computer and use it in GitHub Desktop.

Select an option

Save Alistair1231/94a0a9b85d7133e47b1729d1ea5852d4 to your computer and use it in GitHub Desktop.
Nvidia-open driver on arch linux with dracut
#!/usr/bin/env bash
# read thoroughly: https://wiki.archlinux.org/title/NVIDIA
# also of note https://wiki.archlinux.org/title/Dracut
# Install Drivers and dependencies (including dracut becuase i prefer it)
sudo pacman -S nvidia-open-dkms linux linux-lts linux-headers linux-lts-headers nvidia-utils dkms dracut
# with dracut we don't also want mkinitcpio
sudo pacman -R mkinitcpio
# we want to exclude the nouveau driver and force loading of the nvidia ones into our initramfs
cat <<'EOF' | sudo tee -a /etc/dracut.conf.d/nvidia.conf
omit_drivers+=" nouveau "
force_drivers+=" nvidia nvidia_modeset nvidia_uvm nvidia_drm "
EOF
# we don't want nouveau to load, and we do want modeset=1 option for nvidia_drm
cat <<'EOF' | sudo tee -a /etc/modprobe.d/nvidia.conf
blacklist nouveau
options nvidia_drm modeset=1
EOF
# finally generate initramfs, reboot and pray
sudo dracut -vf --regenerate-all
# Check to see if the right modules/drivers are in the initramfs:
lsinitrd /boot/initramfs-6.17.7-arch1-2.img | grep -iE "nouveau|nvidia"
#-rw-r--r-- 1 root root 47 Nov 14 14:25 etc/modprobe.d/nvidia.conf
#drwxr-xr-x 3 root root 0 Nov 14 14:30 usr/lib/firmware/nvidia
#drwxr-xr-x 2 root root 0 Nov 14 14:30 usr/lib/firmware/nvidia/580.105.08
#-rw-r--r-- 1 root root 74856432 Nov 12 19:17 usr/lib/firmware/nvidia/580.105.08/gsp_ga10x.bin
#-rw-r--r-- 1 root root 30327896 Nov 12 19:17 usr/lib/firmware/nvidia/580.105.08/gsp_tu10x.bin
#-rw-r--r-- 1 root root 348 Nov 12 19:17 usr/lib/modprobe.d/nvidia-sleep.conf
#-rw-r--r-- 1 root root 57 Nov 12 19:17 usr/lib/modprobe.d/nvidia-utils.conf
#-rw-r--r-- 1 root root 11393 Nov 12 15:41 usr/lib/modules/6.17.7-arch1-2/kernel/drivers/hid/hid-nvidia-shield.ko.zst
#-rw-r--r-- 1 root root 2300 Nov 12 15:41 usr/lib/modules/6.17.7-arch1-2/kernel/drivers/usb/typec/altmodes/typec_nvidia.ko.zst
#-rw-r--r-- 1 root root 88911 Nov 14 14:02 usr/lib/modules/6.17.7-arch1-2/updates/dkms/nvidia-drm.ko.zst
#-rw-r--r-- 1 root root 10186457 Nov 14 14:02 usr/lib/modules/6.17.7-arch1-2/updates/dkms/nvidia.ko.zst
#-rw-r--r-- 1 root root 1209122 Nov 14 14:02 usr/lib/modules/6.17.7-arch1-2/updates/dkms/nvidia-modeset.ko.zst
#-rw-r--r-- 1 root root 1194810 Nov 14 14:02 usr/lib/modules/6.17.7-arch1-2/updates/dkms/nvidia-uvm.ko.zst
#-rw-r--r-- 1 root root 11 Nov 12 19:17 usr/lib/modules-load.d/nvidia-utils.conf
#rd.driver.pre=nvidia
#rd.driver.pre=nvidia_modeset
#rd.driver.pre=nvidia_uvm
#rd.driver.pre=nvidia_drm
# check to see if modeset and blacklist will work
systemd-analyze cat-config modprobe.d | grep -iE 'nouveau|nvidia'
## /usr/lib/modprobe.d/nvidia-sleep.conf
## https://download.nvidia.com/XFree86/Linux-x86_64/560.35.03/README/powermanagement.html#PreserveAllVide719f0
#options nvidia NVreg_PreserveVideoMemoryAllocations=1
#options nvidia NVreg_TemporaryFilePath=/var/tmp
## /usr/lib/modprobe.d/nvidia-utils.conf
#blacklist nouveau
## /etc/modprobe.d/nvidia.conf
#blacklist nouveau
#options nvidia_drm modeset=1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment