I've just installed NVIDIA proprietary drivers (nvidia-driver-460 from additional drivers). After reboot, I get a black screen with a cursor blinking. After a few seconds, I've moved to a tty using Ctl + Alt + F2, and without giving me time to login, the graphical interface started.
I rebooted a few times, and this behavior seems to continue: it will give me a black screen with a cursor blinking until I move to a different tty, and then X starts and asks me for normal login.
Is there any way to fix this?
Best Answer
I am using nvidia-driver-460 version 460.39-0ubuntu0.20.04.1.
The GDM screen would only appear after typing Ctrl+Alt+F2 followed by Ctrl+Alt+F1.
Please comment and let me know if the following resolves the problem for you? Also, please mark yourself as affected by Bug #1811023 in Launchpad so this issue gets fixed.
Solution
The following seems to have fixed the issue for me, and the GDM screen now appears without having to resort to the above "trick".
Edit the file
/lib/udev/rules.d/61-gdm.rules
.The original file looks like this:
Comment all of the lines as shown:
Type Ctrl+X to exit, then Y, and then Enter to save the file.
Ensure that the Wayland is not disabled in GDM.
Comment the "WaylandEnable" line, if it is not already commented, as shown:
Type Ctrl+X to exit. If you made changes, type Y, and then Enter to save the file.
Finally, reboot.
Explanation
The
/lib/udev/rules.d/61-gdm.rules
file is supposed to prevent GDM from displaying the Wayland session option when the NVIDIA proprietary drivers are installed, since NVIDIA does not support Wayland.However, in Ubuntu 20.04, there seems to be another redundant mechanism or rule that also prevents GDM from displaying the Wayland session option. I suspect this, because even after making the above change, the Wayland session option is still not displayed in GDM. (Setting
WaylandEnable=true
in/etc/gdm3/custom.conf
has no effect).Therefore, I have a hunch that there are two conflicting rules, and disabling one of the rules (i.e.
/lib/udev/rules.d/61-gdm.rules
) seems to remove the conflict.Here is the
journalctl
boot log before making the above changes. You can see there is an error loading the "fb" module.Here is the
journalctl
boot log after making the above changes. You can see the "fb" module loads successfully.