I think I've got a general solution. Add this to the bottom of /usr/lib/udev/rules.d/71-nvidia.rules
ACTION=="add", SUBSYSTEM=="module", KERNEL=="nvidia_drm", TEST=="/sys/devices/platform/simple-framebuffer.0/drm/card0", RUN+="/bin/rm /dev/dri/card0"
Meaning when nvidia-drm is loaded, check if card0 is owned by simpledrm and if so then delete it. This means the device still exists hidden so VTs will keep working. Edit: Actually VTs keep working because they use /dev/fb0
I think I've got a general solution. Add this to the bottom of /usr/lib/ udev/rules. d/71-nvidia. rules
ACTION=="add", SUBSYSTEM= ="module" , KERNEL= ="nvidia_ drm", TEST==" /sys/devices/ platform/ simple- framebuffer. 0/drm/card0" , RUN+="/bin/rm /dev/dri/card0"
Meaning when nvidia-drm is loaded, check if card0 is owned by simpledrm and if so then delete it. This means the device still exists hidden so VTs will keep working. Edit: Actually VTs keep working because they use /dev/fb0