Having issue with no display on login greeter or tty

Ok so I tried using mhwd to install 570xx like you described, it went smoothly, 570 is installed, however it did not fix my issue unfortunately. Is it possible to go back to 550xx, or would that be likely to break things?

It looks like only 570xx, 575xx (and greater) drivers will support the GeForce RTX 4070, so 550xx is out of the proverbial ball park.


I note that your BIOS has updates available.

While an update may not magically fix the current issue, it’s nonetheless a consideration that might improve something related. The choice is yours.

The latest (non-Beta) BIOS for the Z370 AORUS Gaming 5 (rev. 1.0) appears to be F15. Search the Gigabyte site for instructions on how to apply it.

How can that be? I bought my 4070 about a week after it was released and the most current driver series was 515xx at the time. I was running 550xx until a few months ago when I started noticing this problem

Remember, these are the proprietary drivers from Nvidia, the only difference is that they are repackaged for Linux.

These are what I found on the Nvidia site that support the GeForce RTX 4070; there are no versions below 570.124.04 listed.

If what you say is accurate (and I have no reason to doubt it) then perhaps I’m wrong about that; Nvidia might have removed 550.xxx from their search results.


You haven’t responded regarding possibly updating the BIOS.


You claim the same issue arises with 580xx and now 570xx:

Here I see the 550xx mentioned and that a timeshift restore apparently ā€œresolved the issueā€. I suspect this may only be coincidence, however, you could arguably test that theory by following the same procedure used to install 570xx.

However…

Based on your comments I mentioned earlier that I suspect graphics might not be the issue;

If you manage to login and ā€œeverything is fineā€ then graphics are by definition fine too. That being the case, the issue must then be elsewhere – perhaps related to the LightDM or Greeter configurations – and these are things I’ve not toyed with in a long time.

Basically, you might be barking up the wrong tree, but of course, this is only conjecture until evidence either way can be found.

My guess then is they removed 550xx from the list because maybe they no longer officially provide support for it, but I most definitely did have the 4070 running on 550 and previous versions back to at least 515.

I am willing to give it a shot, but I have to apologize as I have been very busy lately, I just got married and I’m in the middle of a move so my life has been chaos. I’m trying to make as much time as I can to chip away at this problem but it’s been a challenge. I just need to find some time to update the bios and I’ll let you know how that goes. I do appreciate you taking the time to help me with this.

I suppose it may not technically be the graphics itself that is causing the issue but rather how the computer handles the output signals. During my diagnostics with Chat GPT it originally thought the issue was that lightDM was still trying to output the display to the second monitor which no longer exists. It believed the config file was corrupted and I tried deleting it and letting it rebuild but that did not fix the problem.

At one point during the troubleshooting I ran timeshift and the display was back to working order, the catch was all my applications were out of date. After doing sudo pacman -Syu the display problem returned. I do believe I was on 550xx before the update and 580xx after (and kernel 5.15, then 6.1 I believe), but I can’t say for a certainty. This led me to believe it was a driver update that was causing the problem.

I asked Chat GPT to write a brief summary of what it believes the problem is based on the troubleshooting that I did, I’m hoping this will be helpful information for you:

ChatGPT generated content

The Most Probable Root Cause

The login-screen display issue (no signal until you log in blindly) is almost certainly caused by a GPU mode-setting conflict between the NVIDIA driver and the display manager (LightDM/SDDM) during early X server initialization.

In plain terms:

When LightDM or SDDM starts, it asks the NVIDIA driver to set up a display output.
Your GPU does initialize, but the screen goes dark because the signal timing or mode chosen by the greeter doesn’t match what your monitor expects.
Once you log in and your desktop environment (Cinnamon) starts, a new X session is created that re-initializes the display correctly — which is why the desktop works fine after login.

Why This Happens Specifically on Your System

Several interacting factors make this problem persist:

  1. NVIDIA 580.xx driver series regression

These drivers (and several prior ones) have known bugs on certain HDMI 4K displays — they mis-detect refresh rate or color depth when LightDM initializes before full GPU power management is ready.

That’s why your xrandr logs show correct modes later, but nothing displays during greeter startup.

  1. LightDM/SDDM start timing

The greeter launches before the GPU and display kernel modules are fully ready.

Adding logind-check-graphical=true helped some users because it delays greeter startup until the kernel reports a connected display, but in your case the driver still mis-modesets.

  1. TTY/console black-screen linkage

The same framebuffer handoff issue that blanks the greeter also kills text TTYs, because both rely on kernel console output on the NVIDIA DRM device.

This explains why TTYs give ā€œno signalā€ but wake-from-sleep (where the driver re-programs the mode) displays correctly.

  1. Persistence across kernels (6.6, 6.12, etc.)

The kernel updates didn’t fix it because the real culprit is in the user-space driver (nvidia-utils / lib32-nvidia-utils / nvidia-settings) not aligning with the X server’s startup order.

Supporting Clues

xrandr logs confirm that HDMI-0 is recognized with correct resolutions and refresh rates after X starts — meaning the physical link is fine.

TTYs and LightDM both fail to display, but waking from sleep restores signal → points to a mode-setting reinitialization fix.

Switching to SDDM produced the same blank-screen result, meaning the issue is not greeter-specific but happens before any theme loads.

Flatpak / kernel / package updates didn’t change behavior → confirms driver timing, not configuration corruption.

In Summary

Component Role in the problem

NVIDIA 580.xx driver Likely introducing display-initialization bug on HDMI 4K displays
LightDM/SDDM timing Starting X too early, before GPU modeset stabilizes
Kernel console/TTY Shares same framebuffer, so when the mode fails, all consoles go black
Workaround effect Logging in triggers a fresh X init → video returns

The most realistic fixes (based on other users’ success)
  1. Force early modeset:
    Add kernel parameter

nvidia-drm.modeset=1

in /etc/default/grub, then run

sudo update-grub

(This enables atomic mode setting for the NVIDIA DRM kernel module.)

  1. Downgrade to driver 550.xx
    Many users reported that reverting from 580.xx to 550.144.03 restores proper LightDM display initialization.

  2. Switch greeter compositor
    Using lightdm-gtk-greeter instead of slick-greeter sometimes avoids the blank screen because it doesn’t use the same GPU compositing path.


Mod edit:- General tidy of ChatGPT generated content.

Please avoid posting AI generated content. If you believe any of it has merit, include it in your own words rather than pasting AI’s board room presentation. :wink:

However, as it was mentioned, please post the output of;

cat /etc/default/grub

Also, output of;

cat /etc/lightdm/lightdm.conf

Look for the greeter being used (indicated in lightdm.conf), and substitute the *-greeter.conf of the next command for that; then paste that command output also.

cat /etc/lightdm/lightdm-gtk-greeter.conf

Perhaps these may be of interest to someone who actually uses Cinnamon.

1 Like

Wow, this is still going.

Try this Package:

āÆ pacman -Q |g nvidia
hip-runtime-nvidia 6.4.3-2
libnvidia-container 1.17.8-2
libva-nvidia-driver 0.0.14-1
linux-firmware-nvidia 20250917-1
nvidia-550xx-dkms 550.163.01-3
nvidia-550xx-utils 550.163.01-3
nvidia-container-toolkit 1.17.8-1
nvidia-prime 1.0-5
opencl-nvidia 580.82.09-1

If I understood what you were asking for, here was the output:

$ pacman -Q | grep -E "nvidia|opencl|libva"
lib32-libva 2.22.0-1
lib32-libva-intel-driver 2.4.1-2
lib32-libva-vdpau-driver 0.7.4-8
lib32-nvidia-570xx-utils 570.190-1
libva 2.22.0-1
libva-intel-driver 2.4.1-5
libva-vdpau-driver 0.7.4-7
linux-firmware-nvidia 20250917-1
linux515-nvidia-570xx-open 570.190-1
linux61-nvidia-570xx-open 570.190-2
linux612-nvidia-570xx-open 570.190-2
mhwd-nvidia 580.82.09-1
mhwd-nvidia-390xx 390.157-21
mhwd-nvidia-470xx 470.256.02-15
mhwd-nvidia-570xx 570.190-3
mhwd-nvidia-575xx 575.64.05-2
nvidia-570xx-settings 570.190-2
nvidia-570xx-utils 570.190-2
nvidia-driver-assistant 0.22.82.07-1
opencl-nvidia 580.82.09-1

$ cat /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor resume=UUID=29eb334c-60e3-439c-a12b-7e0667d31429 udev.log_priority=3"
GRUB_CMDLINE_LINUX=""

# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console

# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'videoinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/share/grub/background.png"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to ensure that the root filesystem is mounted read-only so that
# systemd-fsck can run the check automatically. We use 'fsck' by default, which
# needs 'rw' as boot parameter, to avoid delay in boot-time. 'fsck' needs to be
# removed from 'mkinitcpio.conf' to make 'systemd-fsck' work.
# See also Arch-Wiki: https://wiki.archlinux.org/index.php/Fsck#Boot_time_checking
#GRUB_ROOT_FS_RO=true

$ cat /etc/lightdm/lightdm.conf:

#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
logind-check-graphical=true
#log-directory=/var/log/lightdm
run-directory=/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true

#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-slick-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
#allow-user-switching=true
#allow-guest=true
#guest-session=
session-wrapper=/etc/lightdm/Xsession
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false

#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=

#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8

$ cat /etc/lightdm/slick-greeter.conf:

[Greeter]
background=/usr/share/backgrounds/cinnamon/forest.jpg
theme-name=Matcha-azul
icon-theme-name=Papirus-Light-Maia
activate-numlock=true
show-power=false
only-on-monitor=HDMI-0

Mod edit:- General tidy. No charge.

Your inxi from a month ago shows this for your Monitor:

… disabled?

But your greeter configuration says:

only show the greeter on that disabled monitor?

… which, to me, would mean: you don’t get to see it

Do I interpret this correctly?

I would suggest you comment out that line in the greeter configuration (put a # in front of it)
and see what happens.

4 Likes