Login screen not showing on startup

Recently, after attempting to boot my machine I was hit with a really concerning screen. All I see is my mouse cursor, but my screen remains black (I think this means X started, but the GDM greeter maybe didn’t?). I can switch TTYs and log in to those successfully, but despite all my poking and prodding, I’ve been unable to get to my login screen.

I’ve tried both Kernel 5.4 and 5.8, and even tried the ‘fallback initramfs’ boot options, to no avail.

I’ve run sudo pacman -Syu from one of those other TTYs, and even tried jumping on the unstable branch to see if this was some recently introduced bug that had already been fixed, no luck.

I updated my BIOS to include ‘AMD AGESA Combo-AM4 V2’, from Asrock’s website (their version 3.40 BIOS). No change.

I tried to log in via a LiveUSB with Manjaro Gnome 20.0.3 (Kernel 5.6), and Ubuntu 20.04.1 Desktop, both of which exhibit the same problem, which is the part that I find most unusual. I even tried Manjaro Gnome 19.0.2, with no luck. I can’t imagine there’s a code reason that different Live CDs over time would exhibit this behaviour. If I use different distros (tried NixOS [KDE] and Xubuntu [XFCE]) then I’m shown a GUI, as expected. I’m thinking this means I might have suffered a hardware failure, but not sure how to isolate which hardware is faulty, and not sure what Gnome in particular could be doing to reliably hit this problem. Tried both RAM sticks in isolation, no change. Moved the GPU to a different PCI slot, no change. Different Displayport slot, no change.

Here’s some info about my system;

System:    Kernel: 5.8.1-3-MANJARO x86_64 bits: 64 compiler: N/A Console: tty 6 DM: GDM 3.36.3 Distro: Manjaro Linux 
Machine:   Type: Desktop Mobo: ASRock model: X570 Taichi serial: <filter> BIOS: American Megatrends v: P3.20 date: 06/12/2020 
CPU:       Topology: 12-Core model: AMD Ryzen 9 3900X bits: 64 type: MT MCP arch: Zen 2 L2 cache: 6144 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 182489 
           Speed: 3611 MHz min/max: 2200/3800 MHz boost: enabled Core speeds (MHz): 1: 3610 2: 2058 3: 2198 4: 2200 5: 3599 
           6: 2051 7: 2048 8: 2193 9: 2200 10: 2196 11: 2196 12: 2199 13: 2057 14: 2200 15: 2193 16: 2192 17: 2198 18: 2200 
           19: 2200 20: 2199 21: 2194 22: 2200 23: 2200 24: 2198 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] vendor: XFX Pine 
           driver: amdgpu v: kernel bus ID: 0f:00.0 chip ID: 1002:731f 
           Display: server: X.org 1.20.8 compositor: gnome-shell driver: amdgpu,ati unloaded: modesetting,radeon 
           alternate: fbdev,vesa tty: 240x67 
           Message: Advanced graphics data unavailable in console. Try -G --display 
Audio:     Device-1: Advanced Micro Devices [AMD/ATI] Navi 10 HDMI Audio driver: snd_hda_intel v: kernel bus ID: 0f:00.1 
           chip ID: 1002:ab38 
           Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio vendor: ASRock driver: snd_hda_intel v: kernel 
           bus ID: 11:00.4 chip ID: 1022:1487 
           Sound Server: ALSA v: k5.8.1-3-MANJARO 
Network:   Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel bus ID: 06:00.0 chip ID: 8086:2723 
           IF: wlp6s0 state: up mac: <filter> 
           Device-2: Intel I211 Gigabit Network vendor: ASRock driver: igb v: 5.6.0-k port: f000 bus ID: 08:00.0 
           chip ID: 8086:1539 
           IF: enp8s0 state: down mac: <filter> 
Drives:    Local Storage: total: 9.56 TiB used: 726.70 GiB (7.4%) 
           ID-1: /dev/nvme0n1 vendor: Corsair model: Force MP600 size: 931.51 GiB speed: 63.2 Gb/s lanes: 4 serial: <filter> 
           rev: EGFM11.1 scheme: MBR 
           ID-2: /dev/sda vendor: Western Digital model: WD10EALX-009BA0 size: 931.51 GiB speed: 6.0 Gb/s serial: <filter> 
           rev: 1H15 scheme: MBR 
           ID-3: /dev/sdb vendor: Crucial model: CT512M550SSD1 size: 476.94 GiB speed: 6.0 Gb/s serial: <filter> rev: MU01 
           scheme: GPT 
           ID-4: /dev/sdc vendor: Seagate model: ST8000VN0022-2EL112 size: 7.28 TiB speed: 6.0 Gb/s rotation: 7200 rpm 
           serial: <filter> rev: SC61 scheme: GPT 
Partition: ID-1: / size: 882.01 GiB used: 178.82 GiB (20.3%) fs: ext4 dev: /dev/dm-0 
Swap:      ID-1: swap-1 type: partition size: 34.42 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/dm-1 
Sensors:   System Temperatures: cpu: 41.8 C mobo: N/A gpu: amdgpu temp: 46 C 
           Fan Speeds (RPM): N/A gpu: amdgpu fan: 0 
Info:      Processes: 441 Uptime: 15m Memory: 31.29 GiB used: 1.11 GiB (3.6%) Init: systemd v: 246 Compilers: gcc: 10.2.0 
           Packages: 1283 pacman: 1278 snap: 5 Shell: Zsh v: 5.8 running in: tty 6 inxi: 3.1.05 

I spent some time over the last few nights attempting to reduce the number of errors and warnings I was seeing on boot, from my searching most seemed to be quite innocuous, but I resolved them anyway. At this point, I’m just at a complete loss.

I managed to get to the desktop with the Ubuntu live USB by selecting the ‘Safe Graphics Mode’ option. Adding nomodeset to my boot options didn’t seem to do anything for my actual install however.

Here’s a repo (Projects · Michael Hudson / linux-logs · GitLab) with some recent logs, including from my nomodeset boot. Any advice on how to debug further?

I should add that I am able to boot in to Windows just fine on this machine, play games, etc. It’s only trying to get in to Gnome that seems to be having problems.

Oh now I’ve really messed up. sudo pacman -R gdm and sudo pacman -S gdm was not a good idea at all. Can’t even switch to the other TTYs now. Getting in to the machine by appending a 3 to the end of the linux line in GRUB gets me in, but without it, seems like I’ve really cooked Gnome now.

I installed XFCE4, strangely I got a greeter, but once I put in my password I was greeted to a black screen. Reinstalled Gnome, and when I ran startx I was again shown a black screen with a mouse cursor (it matches the Adwaita theme though). I have Guake installed, and noticed when I hit Ctrl+~ my cursor changed when I was toward the top of the screen. I ran touch ~/beanssss and sure enough, could verify the file was created within another TTY.

So I’m getting to the desktop somehow, I just can’t see anything.

Reinstalled XFCE, something that used to bite me a lot when I was running NixOS and switched environments a lot was I wouldn’t select the right session at my greeter, if I select my XFCE session, then lightdm gets me to a desktop, so that’s progress.

So, multiple distros fail to start gdm on your system, but lightdm works okay? Are you perhaps using wayland?

This is a known issue with gnome and amd gpu linux driver, there is a similar thread for the same and it is same for all the linux distros, not just manjaro.
Workaround is to switch to TTY2 and switch back to TTY1 solves the issue but this is manual on everytime it is stuck on black screen.

Just press Ctrl + Alt + F2 and then switch back to TTY 1 Ctrl + Alt + F1 will fix take you back to tty1 and login screen will appear.

If we find a fix for this then we will announce it in release post.


I don’t think so, GDM’s custom.conf has it listed as disabled, and when I enabled it I had to mount my boot drive from a live USB in order to reset the setting.

This hasn’t solved the issue for me, I’ve been switching between TTYs fairly regularly and GDM never showed anything.

What happens if you run from tty

systemctl restart gdm

Ok so it is something else for you. Can you check the status of gdm?

Please share output ok
systemctl status gdm

journalctl | grep gdm

Without the logs we won’t know what’s going in inside your device.

I get taken back to TTY1, but I’m still staring at a black screen with a mouse cursor.

● gdm.service - GNOME Display Manager
     Loaded: loaded (/usr/lib/systemd/system/gdm.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2020-08-29 15:51:40 PDT; 2min 38s ago
   Main PID: 2251 (gdm)
      Tasks: 3 (limit: 38420)
     Memory: 3.7M
     CGroup: /system.slice/gdm.service
             └─2251 /usr/bin/gdm

I’ve got a repo on GitLab where I’m uploading anything interesting. Here are the debug GDM logs from my latest boot.

So, gdm is running happily, but xorg can’t find the display. It tries to load vesa, but that is not installed.

Ideas to try:

  • enable wayland in in gdm custom.conf. Since xorg is bugging and you have a suitable graphics card for the wayland, that could theoretically help?

It seems that service ‘org.freedesktop.systemd1’ is the one giving most errors. Googling the errors you got, it seems to be linked to the display drivers.

When I do this I can’t do anything with my computer when it’s started in graphical mode, including switching to other TTYs. I tried it again, and have uploaded the logs from that boot to the repo

That seems like it would make sense, but I can’t get mhwd to install anything newer than the version of video-linux I’ve already got (using sudo mhwd -a pci nonfree 0300 -f). I can only assume that the VERSION shown in mhwd -l is when the driver was compiled, which for me is 2018.05.04, which is before my GPU was released.

Interestingly, I’m now getting a much different (read: ‘worse’) error (full logs here).

Aug 29 21:55:31 Altair /usr/lib/gdm-x-session[1737]: Fatal server error:
Aug 29 21:55:31 Altair /usr/lib/gdm-x-session[1737]: (EE) no screens found(EE)
Aug 29 21:55:32 Altair gdm-x-session[1735]: X server did not write display string
Aug 29 21:55:32 Altair /usr/lib/gdm-x-session[1735]: Unable to run X server
Aug 29 21:55:32 Altair gdm-launch-environment][1382]: GdmSessionWorker: child (pid:1735) done (status:70)
Aug 29 21:55:32 Altair gdm-launch-environment][1382]: GdmSessionWorker: uninitializing PAM
Aug 29 21:55:32 Altair audit[1382]: USER_END pid=1382 uid=0 auid=120 ses=1 subj==unconfined msg='op=PAM:session_close grantors=pam_loginuid,pam_keyinit,pam_succeed_if,pam_permit,pam_systemd,pam_env acct="gdm" exe="/usr/lib/gdm-session-worker" hostname=Altair addr=? terminal=/dev/tty1 res=success'
Aug 29 21:55:32 Altair audit[1382]: CRED_DISP pid=1382 uid=0 auid=120 ses=1 subj==unconfined msg='op=PAM:setcred grantors=pam_permit acct="gdm" exe="/usr/lib/gdm-session-worker" hostname=Altair addr=? terminal=/dev/tty1 res=success'
Aug 29 21:55:32 Altair gdm-launch-environment][1382]: GdmSessionWorker: state NONE
Aug 29 21:55:32 Altair gdm[1252]: GdmSession: Emitting 'session-exited' signal with exit code '70'
Aug 29 21:55:32 Altair gdm[1252]: GdmSession: stopping conversation gdm-launch-environment
Aug 29 21:55:32 Altair gdm[1252]: GdmSessionWorkerJob: Stopping job pid:1382
Aug 29 21:55:32 Altair gdm[1252]: GdmCommon: sending signal 15 to process 1382
Aug 29 21:55:32 Altair gdm[1252]: GdmDisplay: Greeter exited: 70
Aug 29 21:55:32 Altair gdm[1252]: GdmLocalDisplayFactory: display status changed: 4
Aug 29 21:55:32 Altair gdm[1252]: GdmDisplay: finish display
Aug 29 21:55:32 Altair gdm-launch-environment][1382]: Worker finished
Aug 29 21:55:32 Altair gdm[1252]: GdmDisplayStore: Unreffing display: 0x5587ea7301e0
Aug 29 21:55:32 Altair gdm[1252]: GdmDisplay: Disposing display
Aug 29 21:55:32 Altair gdm[1252]: GdmCommon: sending signal 15 to process -1735
Aug 29 21:55:32 Altair gdm[1252]: Child process -1735 was already dead.
Aug 29 21:55:32 Altair gdm[1252]: GdmSession: Closing session
Aug 29 21:55:32 Altair gdm[1252]: GdmSession: Stopping all conversations
Aug 29 21:55:32 Altair systemd[1]: session-1.scope: Succeeded.
Aug 29 21:55:32 Altair systemd-logind[1209]: Session 1 logged out. Waiting for processes to exit.
Aug 29 21:55:32 Altair systemd-logind[1209]: Removed session 1.
Aug 29 21:55:32 Altair systemd-coredump[1749]: Process 1737 (Xorg) of user 120 dumped core.
                                               Stack trace of thread 1737:
                                               #0  0x00007f4c34054615 raise (libc.so.6 + 0x3d615)
                                               #1  0x00007f4c3403d862 abort (libc.so.6 + 0x26862)
                                               #2  0x0000556c9936f24a OsAbort (Xorg + 0x14a24a)
                                               #3  0x0000556c99370d11 FatalError (Xorg + 0x14bd11)
                                               #4  0x0000556c9925f559 n/a (Xorg + 0x3a559)
                                               #5  0x00007f4c3403f152 __libc_start_main (libc.so.6 + 0x28152)
                                               #6  0x0000556c9925f5de _start (Xorg + 0x3a5de)

Do you have pacui installed? If so, you could browse your pacman history with the downgrade option and downgrade the relevant packages that got updated?

Rolling back to updates made in either June or July didn’t work, assuming I’m doing the rollback correctly.
I’m doing sudo pacui, then 9 for ‘Roll Back System’, Page Downing until I hit an update boundary, then hitting ‘Enter’, followed by a reboot. That ran way too quick so I also tried holding down TAB to select everything until I got far enough in the past that I think I’d have definitely had a successful boot, and committed to the rollback. This did some work, but it didn’t really recover my system.

I’ve now managed to get the machine in a slightly better but still weird state. I can get in to gnome-shell when running lightdm, but this is a pretty subpar experience compared to gdm. I can’t push the resolution past 1280*720, and the desktop is pretty choppy.

I’m not able to get any more information about what could be stopping X from finding displays.

If I were to operate under the assumption this is potentially faulty hardware (still don’t understand why all Gnome based live USBs also fail if I’ve been able to use Gnome just fine for ages), is there a way I could debug this further?

I tried a couple more Live USBs, namely the latest Fedora Workstation and ElementaryOS.

Fedora seemingly stopped booting at the point where it tried to start GDM (screen freezes, maintains text from startup sequence though, can’t switch TTYs).

ElementaryOS also displayed odd behaviour, despite not being Gnome/GDM, namely I couldn’t set the background. I couldn’t see anything interesting in the logs for it though.

@huddo121 I am probably late to the discussion, but have you tried xrandr to check how many displays are detected. I have a very similar problem to you. KDE Plasma with dual setup. I don’t see login screen, but only a cursor. I happened to connect my other display & I could see the login screen which is very strange behaviour. So in my case, If I want to login to Manjaro, I need to have the other display connected. I am using a Laptop & like carry my laptop, but this problem doesn’t allow me to do so, I have to have my other display connected to login.

On my machine I’ve only got the one screen. I’m still not 100% sure what the problem is. One day the problem just disappeared, but then I could only get GDM to run under Wayland. Then the problem came back. I have a sneaking suspicion that it’s possibly an artefact of me dual booting with Windows (it’s on a different drive though). I’ve updated Windows 10 to shutdown differently, to avoid it’s fast booting when I shut down.

@huddo121 @spikerguy I found the fix for this, maybe you can look into this and if this works create a thread or announce in release post.

A user had similar issue and posted on Arch forums and there i found answer.

Although i have Intel iGPU and AMD dGPU, i faced this problem with all kernels (latest released 5.11) except 5.4. The issue is due to display drivers not being loaded before GDM and GDM requires these to display anything. So we have to use early KMS to load drivers during initramfs stage. See Arch Wiki

So Add intel_agp i915 for intel iGPU and/or dGPU and amdgpu for AMD iGPU and/or dGPU in MODULES array in /etc/mkinitcpio.conf

The main thing is that if your PC has iGPU, then iGPU loads the basic things (and not dGPU) so go for iGPU steps. For me, i had intel iGPU and AMD dGPU so when i added only amdgpu in MODULES array the problem still persisted. When i added intel_agp i915 amdgpu in it, only then the issue went away. (added amdgpu just in case)

Then regenerate the initramfs.

So in short, do

  1. sudo nano /etc/mkinitcpio.conf
  2. Add the required module for the video driver to the MODULES array in /etc/mkinitcpio.conf:
  • amdgpu for AMDGPU, or radeon when using the legacy ATI driver.

  • i915 for Intel graphics.

  • nouveau for the open-source Nouveau driver.

  • mgag200 for Matrox graphics.

  • Depending on QEMU graphics in use: virtio-gpu for VirtIO, qxl for QXL, or cirrus for Cirrus.

  • nvidia nvidia_modeset nvidia_uvm nvidia_drm for nvidia driver. See NVIDIA#DRM kernel mode setting for details.

    Note: Intel users may need to add intel_agp before i915 to suppress the ACPI errors (check the output of lsmod on your running system to see if intel_agp is loaded). This may be required for resuming from hibernation to work with a changed display configuration. If you use PRIME GPU with Intel IGP being your primary GPU and AMD as the discrete one, adding intel_agp may lead to troubles when resuming from hibernation (monitor gets no signal). See [1] for details.

  1. sudo mkinitcpio -P

if you have any issues, see the arch wiki


I tried this solution, it seems not working for me.

here is my conf file content:

MODULES="intel_agp i915"

then I generated new image by sudo mkinitcpio -P

Then I reboot my computer, it shows up black screen, I have to switch to TTY2 then back to TTY1

my uname -a

Linux nuc8 5.10.36-2-MANJARO #1 SMP PREEMPT Tue May 11 19:38:44 UTC 2021 x86_64 GNU/Linux