Sometimes after an upgrade, your system might not bring you to the desktop after logging in. If you try logging in and you just see a black screen, or Pop!_OS brings you back to the login screen, you’re experiencing a login loop. There are several causes for login loops:
Each cause has a different solution, and certain items (such as NVIDIA) might not be applicable to your system. In most cases, you can switch to a full-screen terminal (called a TTY) to log in and fix the issue.
At the login screen, press Ctrl+Alt+F5 to switch to a TTY. You’ll be prompted to enter a login. At the
login prompt, enter your username and press Enter. You’ll then be prompted for your password. You will not see your password as you are typing it; just type it and press “Enter.”
If you’re not able to log in, the reason could be:
The easiest way to confirm your username is by booting into recovery mode, entering a chroot, and running
ls in the
/home directory, as outlined in the Password Reset article. If your username and password are both correct, then something else is blocking the login. This is a difficult issue to troubleshoot, and you might want to consider backing up your files from a live disk and Reinstalling Pop!_OS or contacting Support for more assistance.
After logging in, you’ll be presented with a prompt showing your username, hostname, and a tilde (~) representing your home directory.
Note that you can always return to the graphical login screen by pressing Ctrl+Alt+F1, or by typing
sudo systemctl restart gdm.
To determine whether configuration in your home directory is causing the issue, you can create a new user account for testing purposes:
sudo adduser test sudo systemctl reboot
If you’re able to log in with the test user, the issue is somewhere in your regular user’s home folder. Log into the full-screen terminal with your regular user again, and move some of the common configuration files out of the way:
mv ~/.config ~/.config.old mv ~/.local ~/.local.old mv ~/.cache ~/.cache.old mv ~/.nvidia-settings-rc ~/.nvidia-settings-rc.old mv ~/.nv ~/.nv.old sudo systemctl reboot
After moving those files and rebooting, try logging in again. (There may be files you need to move other than the common ones listed above.)
You can reinstall GNOME Display Manager (which handles the login screen), along with the desktop environment. On Pop!_OS:
sudo apt install --reinstall gdm3 pop-desktop gnome-shell sudo systemctl reboot
Or on Ubuntu:
sudo apt install --reinstall gdm3 ubuntu-desktop gnome-shell sudo systemctl reboot
After reinstalling those packages and rebooting, try logging in again.
If your system is equipped with NVIDIA graphics, a recent update might be causing the login issues. (Usually, NVIDIA driver issues will prevent the login screen from loading at all; however, it’s still worth reinstalling if you are unable to log in after the above steps.) Refer to the table below to determine if your system contains NVIDIA graphics:
|Oryx Pro||Wild Dog Pro||Lemur|
|Bonobo WS||Thelio||Galago Pro|
|Leopard WS||Thelio Major||Darter Pro|
|Silverback WS||Thelio Massive|
To remove the NVIDIA driver, run the following:
sudo apt purge ~nnvidia sudo apt autoremove sudo apt clean
After the NVIDIA driver has been removed, add it back using the following commands:
sudo apt update sudo apt full-upgrade sudo apt install system76-driver-nvidia
After the installation has completed, type
sudo systemctl reboot and try logging in again.
If you are using an AMD graphics card, the radeon driver might be causing issues as it does not support newer versions of Ubuntu. The amdgpu driver that comes with the kernel does however. To blacklist the radeon driver and ensure amdgpu is loaded:
/etc/modprobe.d/blacklist.conf for editing and add
blacklist radeon to the file. Then run:
sudo update-initramfs -c -k all sudo shutdown -r now
Contact Support! We have a few more things to try. There are a significant number of processes and files required for your graphical desktop environment to be loaded, and much fewer for the terminal login. As such, you can usually recover your desktop using the command line interface!