HDMI-connected dual monitors not working

This is my first post, so apologies if I not followed the forum’s etiquette.

I am trying to switch to Rocky 9.4 from CentOS 7 on my ten-year-old server
with its twin identical monitors and a GeForce 750 graphics card, but have
failed.

Under CentOS, the monitors are connected via the server’s two HDMI ports to
each monitor’s DVI socket, and the dual display works fine. However, if I
boot with Rocky 9.4 from an external SSD, nothing appears on the monitors
after the boot has completed. I can only see a display and login if I
connect the server’s sole VGA port to one of the terminals, and nothing is
seen on the second monitor. Indeed xrandr --listactivemonitors only
regards that one VGA monitor is active, whereas under CentOS two HDMI
monitors are active.

First I tried installing the latest version of the Nvidia drivers, both
from Nvidia and from RPM Fusion, and the 470 version from RPM Fusion,
all without success in enabling both monitors. I wanted to try 390, as this
seems to be the version recommended for GTX 750 by Nvidia (although
nvidia-detect responds kmod-nvidia), but the install finds no match for
xorg-x11-drv-nvidia-390xx. This was after updating my system to
5.14.0-503.23.2.el9.x86_64. The window manager is MATE. There is no
secure boot.

Is there some configuration file that needs editing, or some command that
enables Rocky to recognise the HDMI-connected monitors? Is the HDMI->DVI
not supported by the newer Nvidia drivers or Rocky, and hence should I buy
a VGA splitter?

I fear that after lots of attempts I may have some hybrid set of nvidia
packages installed. What’s the recommended way to clear out the nvidia
packages, to start afresh?

Many thanks for any answers to my questions, or suggestions on how proceed.

I don’t think anybody provides this anymore, if you didn’t find it in rpmfusion, another place to search would be elrepo, but I’ve checked that as well, and they no longer have the nvidia driver for 390. It is recommended for that card now to just use the nouveau driver that comes with Linux. If that doesn’t work, you would have to try and use the rpm packages directly from NVidia for the 390 - assuming you can find them. I have a laptop which requires NVidia 470xx drivers, and newer drivers do not work for it. I also know that these will disappear at somepoint in the future, and will then also have to just use nouveau if I cannot find the 470xx ones when they are deprecated.

This page seems to suggest version 334 for your card: Driver Details | NVIDIA but then when I fill in all the details doing a manual search: Download The Latest Official GeForce Drivers I get results as below:

if those results are correct, then some variant of the 5xx drivers should work.

Unfortunately, old hardware stops being supported after a certain amount of time.

It should work with HDMI. I would be tempted though to remove the NVidia drivers you’ve installed so far, and just try the default nouveau driver and see what happens? If it works and performs enough for your needs with just the nouveau driver, maybe that would be enough? Sure, it may not have the full 3D performance like the Nvidia ones, but if it’s just normal PC usage it may be enough?

I agree that it should work, hence I wondered if there was some configuration needed.

Well I do occasionally make some 3-d rendering of scientific data, but I’ll see what happens if
I remove the NVidia drivers.

1 Like

The proprietary NVidia drivers should include documentation, both as README.txt and html pages. This is definitely true for RPM’s from NVidia’s CUDA repo and ELRepo.
(I did rpm -qda \*nvidia\* to seek such files.)

Docs in driver version 570.86.15 have:

Current NVIDIA GPUs

NVIDIA GPU product Device PCI ID VDPAU features
NVIDIA GeForce GTX 750 Ti 1380 E
NVIDIA GeForce GTX 750 1381 E
NVIDIA GeForce GTX 860M 1392 E
NVIDIA GeForce GPU 1392 1028 066A E
NVIDIA GeForce GTX 750 Ti 1392 1043 861E E
NVIDIA GeForce GTX 750 Ti 1392 1043 86D9 E
NVIDIA GeForce GTX 750 Ti 139B 1025 107A E
NVIDIA GeForce GTX 860M 139B 1028 06A3 E
NVIDIA GeForce GTX 960A 139B 103C 2B4C E
NVIDIA GeForce GTX 750Ti 139B 17AA 3649 E
NVIDIA GeForce GTX 960A 139B 17AA 36BF E
NVIDIA GeForce GTX 750 Ti 139B 19DA C248 E
NVIDIA GeForce GTX 750Ti 139B 1AFA 8A75 E
NVIDIA GeForce GTX 750 Ti 139D E

In other words, even the very latest NVidia drivers should support some “GeForce 750” chips.
Note though that NVidia’s CUDA repo has two driver 570 versions: open and dkms. The open does not support pre-Turing chips; only the “closed” dkms version does.


As a new/recent thing, the 570-dkms allows Wayland, which still has issues on NVidia. One might have to explicitly disable Wayland, unless MATE does that. (This might affect Nouveau behaviour too.)


I have had machines (HP/Dell?) with both older and recent NVidia (latest was Ada Lovelace), where Nouveau of the installer fails to use the discrete card, so the install had to use IGP (or VNC, etc). I’ve also had machines, where (either Nouveau or proprietary) cannot show any virtual consoles – even though the (X11) GUI is ok.


I usually dnf rm \*nvidia\*, and possibly dnf module reset nvidia-driver (if CUDA repo was used), and check:

/etc/kernel/cmdline
/etc/default/grub
/boot/loader/entries/*.conf

for what kernel cmdline-options linger therein.

1 Like

A belated thank you for your detailed reply. I needed my machine back for a while, and
I have only been able to continue the investigation in the last couple of days,

I believe that I installed the driver with the dkms version.

I too had found that the 570 driver should be fine with the GeForce GTX 750, hence
I wondered if it was the /etc/X11/xorg.conf that was preventing the HDMI access, as
it only had one each of Monitor, Device, and Screen sections. I substituted a slightly
modified CentOS 7 version and that seemed to pass muster (checked
/var/log/Xorg.0.log), but Lightdm failed and thus no graphical login appeared. The log
reports “(EE) No devices detected…(EE) no screens found,” immediately after stating
that it was using the NVIDIA 570.124.06 driver. The Device entries in xorg,conf have
the driver set to “nvidia”. The nouveau option is disabled in the grub,

I’d like to post the configuration file and log, in case somebody can a spot a flaw or
suggest why no devices are detected, but I’ve yet to find the compose control to
permit that or verbatim pasting.

I can certainly try the Nouveau, although its far from ideal.

Given that the NVidia driver that the CentOS 7 system has installed does the job,
perhaps I should see if that driver version is available to install instead of 570. Are there
likely to be conflicts with later kernels/libraries?

You can post the config by copying/pasting into the reply box here, using the formatting tools, eg:

my nvidia config here

that will show it correctly formatted and make it easier for people to read. The tools above the reply box shows an icon </> which is the code formatting tool (which I’ve used in my example above).

Thank you for the translation of Preformatted text".

Here’s my xorg.conf

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    Screen      1  "Screen1"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "BENQ"
    ModelName      "BL2411"
    HorizSync       30.0 - 33.0
    VertRefresh     50.0 - 62.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "BENQ"
    ModelName      "BL2411"
    HorizSync       30.0 - 33.0
    VertRefresh     50.0 - 62.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 750"
    BusID          "PCI:02:00:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 750"
    BusID          "PCI:02:00:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    SubSection     "Display"
        Depth       24
        Modes      "1920x1200" "1280x1024" "1152x870" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    SubSection     "Display"
        Depth       24
        Modes      "1920x1200" "1280x1024" "1152x870" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

and the Xorg.0.log

X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[    14.434] Build Operating System:  5.10.219-208.866.amzn2.x86_64 
[    14.434] Current Operating System: Linux <computer name> 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 3 12:12:16 UTC 2025 x86_64
[    14.434] Kernel command line: BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.14.0-503.35.1.el9_5.x86_64 root=/dev/mapper/rl-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=acc38a2d-4951-4d96-8b50-6a27af33f0c4 rd.lv
m.lv=rl/root rhgb quiet rd.driver.blacklist=nouveau nouveau.modeset=0
[    14.434] Build Date: 10 April 2024  12:00:00AM
[    14.434] Build ID: xorg-x11-server 1.20.11-26.el9 
[    14.434] Current version of pixman: 0.40.0
[    14.434]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    14.434] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    14.434] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Apr  7 01:16:59 2025
[    14.434] (==) Using config file: "/etc/X11/xorg.conf"
[    14.434] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    14.434] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    14.434] (==) ServerLayout "Layout0"
[    14.434] (**) |-->Screen "Screen0" (0)
[    14.434] (**) |   |-->Monitor "Monitor0"
[    14.434] (**) |   |-->Device "Device0"
[    14.434] (**) |-->Screen "Screen1" (1)
[    14.434] (**) |   |-->Monitor "Monitor1"
[    14.434] (**) |   |-->Device "Device1"
[    14.434] (**) |-->Input Device "Keyboard0"
[    14.434] (**) |-->Input Device "Mouse0"
[    14.434] (==) Automatically adding devices
[    14.434] (==) Automatically enabling devices
[    14.434] (==) Automatically adding GPU devices
[    14.434] (==) Automatically binding GPU devices
[    14.434] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    14.435] (==) FontPath set to:
        catalogue:/etc/X11/fontpath.d,
        built-ins
[    14.435] (==) ModulePath set to "/usr/lib64/xorg/modules"
[    14.435] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[    14.435] (WW) Disabling Keyboard0
[    14.435] (WW) Disabling Mouse0
[    14.435] (II) Loader magic: 0x55878dc4bd40
[    14.435] (II) Module ABI versions:
[    14.435]    X.Org ANSI C Emulation: 0.4
[    14.435]    X.Org Video Driver: 24.1
[    14.435]    X.Org XInput driver : 24.1
[    14.435]    X.Org Server Extension : 10.0
[    14.435] (++) using VT number 1

[    14.435] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    14.435] (II) xfree86: Adding drm device (/dev/dri/card0)
[    14.493] (--) PCI: (2@0:0:0) 10de:1381:1458:3658 rev 162, Mem @ 0xfa000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
[    14.493] (--) PCI:*(7@0:0:0) 1a03:2000:15d9:0728 rev 48, Mem @ 0xf8000000/16777216, 0xf9000000/131072, I/O @ 0x0000b000/128, BIOS @ 0x????????/131072
[    14.493] (II) LoadModule: "glx"
[    14.493] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
[    14.495] (II) Module glx: vendor="X.Org Foundation"
[    14.495]    compiled for 1.20.11, module version = 1.0.0
[    14.495]    ABI class: X.Org Server Extension, version 10.0
[    14.495] (II) LoadModule: "nvidia"
[    14.495] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[    14.495] (II) Module nvidia: vendor="NVIDIA Corporation"
[    14.495]    compiled for 1.6.99.901, module version = 1.0.0
[    14.495]    Module class: X.Org Video Driver
[    14.495] (II) NVIDIA dlloader X Driver  570.124.06  Wed Feb 26 01:44:32 UTC 2025
[    14.495] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[    14.495] (EE) No devices detected.
[    14.495] (EE) 
Fatal server error:
[    14.495] (EE) no screens found(EE) 
[    14.495] (EE) 
Please consult the The X.Org Foundation support 
         at http://wiki.x.org
 for help. 
[    14.495] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    14.495] (EE) 
[    14.646] (EE) Server terminated with error (1). Closing log file.

Please, are there further files that I should report in order to diagnose the error?

Thank you,

Can you also try by renaming xorg.conf to xorg.conf.backup - nowadays an xorg.conf shouldn’t be needed. After renaming it, restart the computer and check the Xorg.0.log after this.

This is very true. I don’t have /etc/X11/xorg.conf at all.
However, I do have three files in /etc/X11/xorg.conf.d/:

00-keyboard.conf  01-mouse.conf  10-nvidia.conf

Two are from RPM packages and the third I wrote myself to switch buttons on my mouse:

# cat /etc/X11/xorg.conf.d/01-mouse.conf
Section "InputClass"
 Identifier "Mouse Remap"
 MatchIsPointer "true"
 MatchDevicePath "/dev/input/event*"
 Option "ButtonMapping" "3 2 1 4 5 6 7 2 2"
EndSection

Early in ‘Xorg.0.log’:

[    13.339] (==) Using config file: "/etc/X11/xorg.conf"
[    13.339] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    13.339] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    13.340] (==) No Layout section.  Using the first Screen section.
[    13.340] (==) No screen section available. Using defaults.
[    13.340] (**) |-->Screen "Default Screen Section" (0)
[    13.340] (**) |   |-->Monitor "<default monitor>"
[    13.340] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    13.340] (**) |   |-->Device "Videocard0"
[    13.340] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    13.340] (==) Automatically adding devices
[    13.340] (==) Automatically enabling devices
[    13.340] (==) Automatically adding GPU devices
[    13.340] (==) Automatically binding GPU devices

The above system has two identical Dell monitors connected on one NVidia GPU card.


On another system I have two custom files there:

# cat 10-disable-composite.conf
Section "Extensions"
        Option "COMPOSITE" "Disable"
EndSection

# cat 10-stereo.conf
Section "Device"
        Identifier  "Videocard0"
        Option      "Stereo" "10"
EndSection

These are to show that one can override just parts of the config and the rest the Xorg fills in from defaults.

Thank you for the suggestion. I tried this awhile back and again today, but the
result is the same—only one screen is active. On my CentOS system once
the ghostly 7 logo appears on the right screen, which is connected via DVI, the
login graphic appears on the left screen, and the right screen goes blank until I
disconnect its DVI cable. A simple reboot without connecting the DVI cable works,
but nothing appears on either display until the login prompt. I only connect the
DVI cable when I need to interact with the boot process.

The system administrator, now retired, who helped set this up ca. 2017 was puzzled
too by this quirky behaviour. My feeling, if not a strong recollection, is that he made
some configuration change to permit display to both screens once the reboot
completes, which is missing from my Rocky 9 installation. IIRC this unusual screen
behaviour started after some nightly upgrade, that probably included a kernel
change.

Perhaps this machine needs to be cleanly installed, rather than upgraded from CentOS 7 which is unsupported anyway? Also, we don’t even know if the problem is introduced due to strange config files from CentOS 7. Even more so since the machine will have gone from Rocky 8 to Rocky 9 during the upgrade process. Or do I misunderstand you, in that you dualboot between CentOS 7 and Rocky 9?

Can you try different monitors? Perhaps ones that have HDMI ports instead of DVI ones, instead of converting/switching between HDMI/DVI connections?

Furthermore, the NVidia driver does write to /var/log/Xorg.0.log its enumeration of ports on the card and what monitors it saw on them. If it sees displays, then why it does not draw / draws funky?

If you can still run the CentOS 7, then how its Xorg.0.log differs?


An another thing is that there are GDM, Gnome, and X11/Wayland.
One definitely can give X11 instructions about displays, but one can also override setup in Gnome – per user – and even copy that to GDM (for all users). That is two systems for some operations – Xorg and GDM/Gnome – and I had hard time to find whom to blame. In other words, that “clean slate” could really help.


The 570 series driver packages from NVidia’s repo allow Wayland. Previously, GDM did disable Wayland with NVidia drivers. One can still do that by uncommenting line

#WaylandEnable=false

from /etc/gdm/custom.conf
That could make a difference on what the GDM does/tries to show before anyone logs in.


Did you do already the elementary “boot with only first monitor connected, boot with only test monitor connected” to show that each monitor&cable is fine alone?

How about a switch to virtual console (i.e. Ctrl-Alt-F2, Ctrl-Alt-F3, …)?


With GDM the login dialog is probably on the “primary” display.
(With LightDM the login dialog seems to show on the display that does have the mouse – i.e. follows the mouse, but that is an another story.)

There was no upgrade. That was my original attempt, and none of the upgrade tools
completed successfully. So I setup a new SSD with a boot partition, swap space and
an LVM with three logical volumes, the first of which is where I installed Rocky 9.
There’s no dual booting. It boots Rocky 9 from the external SSD if that’s powered,
otherwise it boots CentOS 7 from the internal SSD.

I’ll check to see if I copied any other files besides xorg.conf from CentOS 7 /etc to the
Rocky 9 equivalent. The problem with the displays was present before I did that. The
copy was an attempt to overcome the matter.

Those are the only two monitors that I have. :slightly_frowning_face: