Nvidia-390xx Xorg driver issue on AlmaLinux 9.8

Hello,

due to KDE Plasma ending X11 support soon, I am trying to migrate a machine with old NVIDIA GPU from openSUSE Tumbleweed to AlmaLinux 9.8. After a minimal installation of AlmaLinux itself, I installed the appropriate NVIDIA driver (akmod-nvidia390xx and xorg-x11-drv-nvidia-390xx) from RPM fusion, and KDE Plasma from EPEL as documented. Unfortunately there is the strange issue that the appropriate Xorg driver does not load.

The kernel driver is loaded (and appears to work, as the screen resolution is switched):

$ lspci -k
[...]
01:00.0 VGA compatible controller: NVIDIA Corporation GF116 [GeForce GT 640 OEM] (rev a1)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device 231b
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
[...]

nvidia-smi (from xorg-x11-drv-nvidia-390xx) also detects the card:

Tue Oct  6 13:33:48 2026       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.157                Driver Version: 390.157                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GT 640      Off  | 00000000:01:00.0 N/A |                  N/A |
| 20%   47C   P12    N/A /  N/A |      9MiB /  2998MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0                    Not Supported                                       |
+-----------------------------------------------------------------------------+

But Xorg attempts to use the modesetting driver instead of nvidia:

[    29.377] (--) Log file renamed from "/var/log/Xorg.pid-1046.log" to "/var/log/Xorg.0.log"
[    29.446] 
X.Org X Server 1.20.11
X Protocol Version 11, Revision 0
[    29.446] Build Operating System:  5.14.0-570.12.1.el9_6.x86_64 
[    29.446] Current Operating System: Linux localhost.localdomain 5.14.0-687.53.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Sep 30 11:17:58 EDT 2026 x86_64
[    29.447] Kernel command line: BOOT_IMAGE=(hd0,gpt7)/boot/vmlinuz-5.14.0-687.53.1.el9_8.x86_64 root=UUID=a6fe1a30-ba60-4849-906b-c64c69df9a88 ro crashkernel=1G-2G:192M,2G-64G:256M,64G-:512M resume=UUID=e889c229-566f-410d-b98d-982c85bf2619 nouveau.modeset=0 video=vesa:off rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core nvidia-drm.modeset=1
[    29.447] Build Date: 10 July 2026  12:00:00AM
[    29.447] Build ID: xorg-x11-server 1.20.11-34.el9_8.3 
[    29.447] Current version of pixman: 0.40.0
[    29.447] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[    29.447] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    29.447] (==) Log file: "/var/log/Xorg.0.log", Time: Tue Oct  6 11:57:40 2026
[    29.492] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    29.492] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    29.585] (==) No Layout section.  Using the first Screen section.
[    29.585] (==) No screen section available. Using defaults.
[    29.585] (**) |-->Screen "Default Screen Section" (0)
[    29.585] (**) |   |-->Monitor "<default monitor>"
[    29.585] (==) No monitor specified for screen "Default Screen Section".
	Using a default monitor configuration.
[    29.585] (==) Automatically adding devices
[    29.585] (==) Automatically enabling devices
[    29.586] (==) Automatically adding GPU devices
[    29.586] (==) Automatically binding GPU devices
[    29.586] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    29.586] (==) FontPath set to:
	catalogue:/etc/X11/fontpath.d,
	built-ins
[    29.586] (==) ModulePath set to "/usr/lib64/xorg/modules"
[    29.586] (II) The server relies on udev to provide the list of input devices.
	If no devices become available, reconfigure udev or disable AutoAddDevices.
[    29.586] (II) Loader magic: 0x55ceb6be7d40
[    29.586] (II) Module ABI versions:
[    29.586] 	X.Org ANSI C Emulation: 0.4
[    29.586] 	X.Org Video Driver: 24.1
[    29.586] 	X.Org XInput driver : 24.1
[    29.586] 	X.Org Server Extension : 10.0
[    29.586] (++) using VT number 2

[    29.586] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    29.587] (II) xfree86: Adding drm device (/dev/dri/card0)
[    29.649] (**) OutputClass "nvidia" ModulePath extended to "/usr/lib64/nvidia-390xx/xorg,/usr/lib64/xorg/modules"
[    29.649] (**) OutputClass "nvidia" setting /dev/dri/card0 as PrimaryGPU
[    29.650] (--) PCI:*(1@0:0:0) 10de:124b:1462:231b rev 161, Mem @ 0xf4000000/33554432, 0xe8000000/134217728, 0xf0000000/67108864, I/O @ 0x0000e000/128, BIOS @ 0x????????/65536
[    29.650] (II) LoadModule: "glx"
[    29.659] (II) Loading /usr/lib64/nvidia-390xx/xorg/libglx.so
[    31.035] (II) Module glx: vendor="NVIDIA Corporation"
[    31.035] 	compiled for 4.0.2, module version = 1.0.0
[    31.035] 	Module class: X.Org Server Extension
[    31.068] (II) NVIDIA GLX Module  390.157  Wed Oct 12 09:19:15 UTC 2022
[    31.085] (II) Applying OutputClass "nvidia" to /dev/dri/card0
[    31.085] 	loading driver: nvidia
[    32.089] (==) Matched nvidia as autoconfigured driver 0
[    32.089] (==) Matched nouveau as autoconfigured driver 1
[    32.089] (==) Matched nv as autoconfigured driver 2
[    32.089] (==) Matched modesetting as autoconfigured driver 3
[    32.089] (==) Matched fbdev as autoconfigured driver 4
[    32.089] (==) Matched vesa as autoconfigured driver 5
[    32.089] (==) Assigned the driver to the xf86ConfigLayout
[    32.089] (II) LoadModule: "nvidia"
[    32.106] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[    32.143] (II) Module nvidia: vendor="NVIDIA Corporation"
[    32.143] 	compiled for 4.0.2, module version = 1.0.0
[    32.143] 	Module class: X.Org Video Driver
[    32.151] (II) LoadModule: "nouveau"
[    32.152] (WW) Warning, couldn't open module nouveau
[    32.152] (EE) Failed to load module "nouveau" (module does not exist, 0)
[    32.152] (II) LoadModule: "nv"
[    32.152] (WW) Warning, couldn't open module nv
[    32.152] (EE) Failed to load module "nv" (module does not exist, 0)
[    32.152] (II) LoadModule: "modesetting"
[    32.152] (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so
[    32.170] (II) Module modesetting: vendor="X.Org Foundation"
[    32.170] 	compiled for 1.20.11, module version = 1.20.11
[    32.170] 	Module class: X.Org Video Driver
[    32.170] 	ABI class: X.Org Video Driver, version 24.1
[    32.170] (II) LoadModule: "fbdev"
[    32.170] (II) Loading /usr/lib64/xorg/modules/drivers/fbdev_drv.so
[    32.186] (II) Module fbdev: vendor="X.Org Foundation"
[    32.186] 	compiled for 1.20.11, module version = 0.5.0
[    32.186] 	Module class: X.Org Video Driver
[    32.186] 	ABI class: X.Org Video Driver, version 24.1
[    32.186] (II) LoadModule: "vesa"
[    32.186] (WW) Warning, couldn't open module vesa
[    32.186] (EE) Failed to load module "vesa" (module does not exist, 0)
[    32.186] (II) NVIDIA dlloader X Driver  390.157  Wed Oct 12 09:21:41 UTC 2022
[    32.186] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[    32.187] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[    32.187] (II) FBDEV: driver for framebuffer: fbdev
[    32.190] (II) modeset(0): using drv /dev/dri/card0
[    32.191] (II) modeset(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[    32.191] (==) modeset(0): Depth 24, (==) framebuffer bpp 32
[    32.191] (II) Applying OutputClass "nvidia" options to /dev/dri/card0
[    32.191] (==) modeset(0): RGB weight 888
[    32.191] (==) modeset(0): Default visual is TrueColor
[    32.191] (II) Loading sub module "glamoregl"
[    32.191] (II) LoadModule: "glamoregl"
[    32.192] (II) Loading /usr/lib64/xorg/modules/libglamoregl.so
[    32.225] (II) Module glamoregl: vendor="X.Org Foundation"
[    32.225] 	compiled for 1.20.11, module version = 1.0.1
[    32.225] 	ABI class: X.Org ANSI C Emulation, version 0.4
[    36.586] (II) modeset(0): Refusing to try glamor on llvmpipe
[    36.600] (EE) modeset(0): glamor initialization failed
[    36.600] (II) modeset(0): ShadowFB: preferred YES, enabled YES
[    36.600] (II) modeset(0): Double-buffered shadow updates: off
[    36.622] (II) modeset(0): Output DVI-I-1 has no monitor section
[    36.623] (II) modeset(0): Output VGA-1 has no monitor section
[    36.623] (II) modeset(0): Output HDMI-1 has no monitor section
[    36.645] (II) modeset(0): EDID for output DVI-I-1
[    36.645] (II) modeset(0): Manufacturer: MED  Model: 3662  Serial#: 16843009
[    36.645] (II) modeset(0): Year: 2011  Week: 0
[    36.645] (II) modeset(0): EDID Version: 1.3
[    36.645] (II) modeset(0): Digital Display Input
[    36.645] (II) modeset(0): DFP 1.x compatible TMDS
[    36.645] (II) modeset(0): Max Image Size [cm]: horiz.: 51  vert.: 29
[    36.645] (II) modeset(0): Gamma: 2.20
[    36.645] (II) modeset(0): DPMS capabilities: Off
[    36.645] (II) modeset(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
[    36.645] (II) modeset(0): First detailed timing is preferred mode
[    36.645] (II) modeset(0): redX: 0.633 redY: 0.340   greenX: 0.320 greenY: 0.622
[    36.645] (II) modeset(0): blueX: 0.155 blueY: 0.042   whiteX: 0.313 whiteY: 0.329
[    36.645] (II) modeset(0): Supported established timings:
[...]

I am really out of ideas why this happens (under openSUSE everything worked fine), so any help would be appreciated.

Thank you.

What issues are you experiencing exactly? If the resolution is set and working, what is it that “is not working”?

Also, did you switch from x11 to wayland or why are you mentioning KDE is “soon to drop x11”? (you installed x11 packages, why not use the dkms package?)
What documentation did you follow?

Here is nvidia’s documentation:

Are you using that for something?
Otherwise, try blacklisting it.

printf 'blacklist nouveau\n' | sudo tee /etc/modprobe.d/nouveau-blacklist.conf

Here is the almalinux documentation:

Xorg does not use the nvidia driver, so there is no acceleration (modesetting driver does not support acceleration on NVIDIA cards) and everything is very slow (even moving the mouse cursor lags). The card is old enough that the required driver only supports X11 so Wayland cannot be used.

For installing the driver, I followed the RPM fusion documentation (Making sure you're not a bot!) and for installing KDE Plasma the AlmaLinux documentation ( AlmaLinux After-Installation Guide | AlmaLinux Wiki ). Nouveau is already blacklisted by the kernel parameter (which was added automatically after installing the driver) and as you can see in the lspci output the kernel driver in use is the correct one (nvidia).