First I tried running the script from the nvidia thread as is: setpci -s 01:00.0 0x488.l=0x2000000:0x2000000 rmmod nvidia-drm nvidia-modeset nvidia echo 1 > /sys/bus/pci/devices/0000:01:00.0/remove echo 1 > /sys/bus/pci/devices/0000:00:01.0/rescan modprobe nvidia-drm xinit -- -retro it didn't work. then I ran lspci -t and found my gpu's address was at 02:00 so I edited the script above and ran it from the command line (ctrl alt f1): sudo setpci -s 02:00.0 0x488.l=0x2000000:0x2000000 sudo rmmod nvidia-drm nvidia-modeset nvidia sudo sh -c 'echo 1 > /sys/bus/pci/devices/0000:02:00.0/remove' sudo sh -c 'echo 1 > /sys/bus/pci/devices/0000:00:02.0/rescan' sudo modprobe nvidia-drm it gave me this error (and the command lines seems stuck in a loop, no way to stop it, even ctrl c): rmod: ERROR: module nvidia_drm is in use rmod: ERROR: module nvidia_modeset is in use by: nvidia_drm rmod: ERROR: module nvidia is in use by: nvidia_uvm nvidia_modset I tried to run the script before login (system settings/startup and shutdown/auto start) and it does nothing.