This guide was created for EndeavourOs Endeavour Release which if using the Online installer, as of July 2024, will provide Plasma 6.1 and Nvidia 555 drivers. This guide shows using Grub but will work with systemd-boot as well if you follow steps for kernel params.
- Create file /etc/modprobe.d/nvidia.conf with the following contents
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
options nvidia NVreg_EnableGpuFirmware=0
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/var/tmp
Warning
Ensure /var/tmp has enough space to store your temporary file (total VRAM of all cards + 5% margin)
- Edit
/etc/default/gruband add the following lines inside lineGRUB_CMDLINE_LINUX_DEFAULTas followed:
nvidia.NVreg_PreserveVideoMemoryAllocations=1 nvidia.NVreg_EnableGpuFirmware=0
so for example it should look something like this:
GRUB_CMDLINE_LINUX_DEFAULT="nowatchdog quiet nvidia.NVreg_PreserveVideoMemoryAllocations=1 nvidia.NVreg_EnableGpuFirmware=0 nvme_load=YES nvidia_drm.modeset=1 loglevel=3 nvidia-drm.modeset=1"
then run sudo grub-mkconfig -o /boot/grub/grub.cfg to update grub
- Enable services as followed:
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service- Reboot and you should be good to go!
This was tested against a Ryzen system with an RTX 4070.
Step 2 is redundant with the last two module parameters in step 1. One or the other could be removed. All the kernel argument is doing is setting the
NVreg_PreserveVideoMemoryAllocationsandNVreg_EnableGpuFirmwaremodule parameter for thenvidiamodule which is exactly what the modprobe config is doing.