Last active
November 14, 2025 16:09
-
-
Save Alistair1231/94a0a9b85d7133e47b1729d1ea5852d4 to your computer and use it in GitHub Desktop.
Nvidia-open driver on arch linux with dracut
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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