Rpmfusion nvidia driver fails to find monitors attached to external gpu

I did a clean install from live f33 usb stick, upgraded to latest versions, installed rpm-fusion free and nonfree and corresponding update repos. I am connected to a GA1-10-Accelerator
box via thunderbolt with an NVIDIA GTX-2060 GPU. Other hardware details: lenovo 480
inxi
CPU: Quad Core Intel Core i5-8350U (-MT MCP-) speed/min/max: 742/400/3600 MHz
Kernel: 5.13.12-100.fc33.x86_64 x86_64 Up: 2h 42m Mem: 3582.6/7686.5 MiB (46.6%) Storage: 536.57 GiB (33.4% used)
Procs: 314 Shell: Bash inxi: 3.3.06
When I installed the akmod-nvidia-470.63.01-1.fc33.x86_64.rpm driver and rebooted the gpu-attached monitors are not recognized by the display settings and remain black. Only the laptop screen was recognized.

Immediately prior to this akmod installation all displays were active with the nouveau driver.

I found that on booting the kernel menu was not displayed so I could not access the line to remove the blacklist commands, so I recovered by removing the akmod-nvidia with dnf.
I then edited /etc/default/grub to remove the blacklist parameters and used grub2-editev unset menu-autohide to get access to the boot menu. I am now able to boot - presumably with the nouveau driver?
However I see the following oddities: there are still nvidia modules available
ls /lib/modules/5.13.12-100.fc33.x86_64/extra/nvidia/
nvidia-drm.ko nvidia.ko nvidia-modeset.ko nvidia-peermem.ko nvidia-uvm.ko
and
modinfo -F version nvidia
470.63.01

Another confound: I was previously running on an f33 system that had been upgraded several times from f28 and f31. On that f33 system I was running the same kernel, the previous nvidia driver and cuda with all monitors supported. In that case I had an /etc/X11/xorg.conf.d/xorg.nvidia file which is now lost. I am also learning to navigate journalctl to find the log files which have disappeared and particularly are missing Xorg.0.log.
Appreciate information on the state of my system and how to get the nvidia driver to recognize my screen. This will allow to install cuda for my apps.

When you installed the akmod.nvidia package did you also install the associated xorg.x11.drv.nvidia* packages? If you did then with nvidia driver active you already have the cuda and opencl drivers that have been tweaked for the nvidia card.

I have seen problems with installing both cuda and the packages from rpmfusion so I recommend uninstalling cuda first before you install the ones from rpmfusion.

what I have done to manually install the nvidia driver from rpmfusion and have it just work for me with both cuda and opencl was to do

dnf install akmod-nvidia nvidia*470* nvidia-persistenced nvidia-settings xorg.x11.drv.nvidia*470* 

and it picks all the appropriate dependencies and does the install.

After the install above there will be a sample nvidia.conf file in /usr/share/X11/xorg.conf.d/nvidia.conf that you can copy to /etc/X11/xorg.conf.d/ . Then edit the copy you just made and add, in both stanzas, the line
Option “Primary” “yes”
After you reboot this should make the nvidia card primary instead of the IGP and should make the nvidia GPU drive all the outputs.

Great to hear from you, JV, and as usual your advice is spot on. Thanks for responding so quickly!
I had installed the nvidia driver without cuda first - one change at a time principle -and dnf info cuda shows nothing installed, so I’m OK there likely. But the xorg-x11 stuff did not show up in the dependencies and was not installed.

After correcting the minor typo in your installation line my system reboots with all monitors.

Blockquote
dnf install akmod-nvidia-470.63.01-1.fc33.x86_64 nvidia-persistenced nvidia-settings xorg-x11-drv-nvidia*470*

Blockquote
This installed correctly. and all monitors were active when I rebooted. However I noted that the boot params lacked the “rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1” params. When I add them to /etc/default/grub and grug2-mkconfig it boots with only the laptop screen.
With the addition of the modified nvidia.conf file the laptop screen lights up but fails to show the graphical login or even recognise alt-ctl-F2 to get a console login.
Rebooting after removing the nouveau blacklist but leaving the nvidia.conf in place I do boot up and recover the monitors. Probably in nouveau though I did not see the “reverting to nouveau” message. nvidia-settings -q all responds ERROR: Unable to find display on any available system likely confirming this? The observation that nvidia.conf does something is contrary evidence. How to test?
Before my clean install I was successfully running the nvidia 455 drivers and the 5.13.12-100 kernel.

Stymied for now and would welcome further advice! Could this be reportable as a bug?

I did not ask, but did you do the install of the nvidia drivers from rpmfusion? These are all the nvidia packages I have installed from rpmfusion and hopefully yours are about the same.

# dnf list installed '*nvidia*'
Installed Packages
akmod-nvidia.x86_64                                              3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
kmod-nvidia-5.13.10-200.fc34.x86_64.x86_64                       3:470.57.02-1.fc34                       @@commandline             
kmod-nvidia-5.13.12-200.fc34.x86_64.x86_64                       3:470.63.01-1.fc34                       @@commandline             
kmod-nvidia-5.13.9-200.fc34.x86_64.x86_64                        3:470.63.01-1.fc34                       @@commandline             
nvidia-modprobe.x86_64                                           3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
nvidia-persistenced.x86_64                                       3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
nvidia-settings.x86_64                                           3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
nvidia-xconfig.x86_64                                            3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia.x86_64                                       3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-cuda.x86_64                                  3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-cuda-libs.i686                               3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-cuda-libs.x86_64                             3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-devel.i686                                   3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-devel.x86_64                                 3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-kmodsrc.x86_64                               3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-libs.i686                                    3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates
xorg-x11-drv-nvidia-libs.x86_64                                  3:470.63.01-1.fc34                       @rpmfusion-nonfree-updates

The kmod-nvidia packages are of course built by akmod-nvidia and a new one is built with each kernel or driver update.

I would suggest you try to go back to the start and reinstall the drivers again.

dnf erase *nvidia*

remove the bold part of the linux command line from the /etc/default/grub file,
GRUB_CMDLINE_LINUX=“rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 rd.lvm.lv=fedora/root rhgb quiet”
then run "grub2-mkconfig -o /etc/grub-efi.cfg " to rebuild the grub.cfg file.
reboot
then reinstall as you did above and reboot again.

Hopefully this will fully solve the issue. If not then there are some other threads I have seen here but do not have in front of me about your issue. Maybe one of them has more info.

Here’s my list:

  • akmod-nvidia.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    kmod-nvidia-5.13.12-100.fc33.x86_64.x86_64
    3:470.63.01-1.fc33 @@commandline
    nvidia-persistenced.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    nvidia-settings.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    nvidia-xconfig.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    xorg-x11-drv-nvidia.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    xorg-x11-drv-nvidia-cuda.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    xorg-x11-drv-nvidia-cuda-libs.x86_64
    3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    xorg-x11-drv-nvidia-devel.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    xorg-x11-drv-nvidia-kmodsrc.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates
    xorg-x11-drv-nvidia-libs.x86_64 3:470.63.01-1.fc33 @rpmfusion-nonfree-updates*

Small differences in the installed packages. I’m missing nvidia-xconfig and the .i686 which I’m sure don-t matter. I installed the missing package - no change to the results.
When I remove rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 from the grub menu it does recognise all the screens but I figure I am on the nouveau driver then!
Could be that the difference is that I’m still on f33.
Is your gpu also external?
Taking a break from this for the day!

I am not sure if the .i686 packages make a difference or not.
Both are libraries so it might, although I suspect not.

To know exactly which driver is in use the easiest way is to do “inxi -Gxx” (you might need to install inxi) and the output tells you the details about both the GPU and the graphics in use (wayland or xorg). With the nouveau driver the system normally uses wayland, and with nvidia it uses xorg. Another way to tell is to use “lsmod | grep nvidia” or “lsmod | grep nouveau” and the response will clearly tell you which drivers are loaded.

When using fedora 33 the nvidia driver forces the use of xorg. Recently they are working on adjustments so wayland can work with nvidia, and they claim that when fedora 35 is released nvidia will be able to run with wayland. The problem may be the nvidia driver or it may be the difference between xorg and wayland.

I believe when you do not have the nvidia driver installed that you also have graphics run by wayland. That may be what is required at present for your 3 monitors.

Inxi may tell you what works and what does not. The nvidia driver may be interference instead of help for you at this time.

Thanks, that’s the diagnostic I needed. Without the blacklist I get nvidia and one screen, and nouveau as expected and all screens with the blacklist:
with blacklist removed on single monitor

Blockquote

inxi -Gxx
Graphics:
Device-1: Intel UHD Graphics 620 vendor: Lenovo driver: i915 v: kernel
bus-ID: 00:02.0 chip-ID: 8086:5917
Device-2: NVIDIA GP107 [GeForce GTX 1050] vendor: Gigabyte driver: nvidia
v: 470.63.01 bus-ID: 09:00.0 chip-ID: 10de:1c81
Device-3: IMC Networks Integrated Camera type: USB driver: uvcvideo
bus-ID: 1-8:3 chip-ID: 13d3:56a6
Display: x11 server: Fedora Project X.org 1.20.11 compositor: gnome-shell
driver: loaded: modesetting unloaded: fbdev,nouveau,vesa failed: nvidia
alternate: nv resolution: 1920x1080~60Hz s-dpi: 96
OpenGL: renderer: Mesa Intel UHD Graphics 620 (KBL GT2) v: 4.6 Mesa 20.3.5
direct render: Yes

Blockquote
So I think everything is installed correctly. I vaguely remember something additional to the
Option “AllowNVIDIAGPUScreens” in the nvidia.conf needed, which might well be in my old setup. I’ll look into that before starting over.
Yes, Option “AllowExternalGpus” was added to theoutput class section of the nvidia.conf file and all screens are operational. I picked this up from a message in the journal file.

Thanks again for the expert guidance.

Just for reference, this is the content of my /etc/X11/xorg.conf.d/nvidia.conf file

$ cat /etc/X11/xorg.conf.d/nvidia.conf 
#This file is provided by xorg-x11-drv-nvidia
#Do not edit

Section "OutputClass"
	Identifier "nvidia"
	MatchDriver "nvidia-drm"
	Driver "nvidia"
	Option "AllowEmptyInitialConfiguration"
	Option "SLI" "Auto"
	Option "BaseMosaic" "on"
	Option "Primary" "yes"
EndSection

Section "ServerLayout"
	Identifier "layout"
	Option "AllowNVIDIAGPUScreens"
	Option "Primary" "yes"
EndSection

The Option "Primary" "yes" line sets it so the nvidia gpu is always used and the IGP is not.

Thanks. I was leery of this because I want the laptop to work independently of the GPU when it is not plugged in. Then only the IGP is available. The nvidia Xserver app shows the external monitors attached to the GPU are controlled by it, so there is little to gain.

The only differences I find are:

  1. A little more power used and slightly less battery life. (negative)
  2. Better quality video output. (plus)

To me it is worth the sacrifice of battery life to avoid switching drivers and losing quality.

See also this point in the documentation: Howto/Optimus - RPM Fusion

Maybe that things go back further … HP Omen Accelerator GA1-10 has problems as unsupported on Windows needing specific app, firmware, … nothing to do with Fedora or Nvidia software for Linux … explore HP Community for information …