Fedora 31 + Nvidia Prime laptop - Gnome display settings and xrandr fails to detect external monitor, but Nvidia settings can see it

My 2 laptops running either Bumblebee or more recently Nvidia Prime in X from rpm Fusion were able to detect and display external monitors fine through either the VGA or HDMI ports. Since upgrading to Fedora 31 both laptops cannot detect an external display within Gnome display settings or xrandr. The Nvidia settings page correctly identifies the screen connected, typically on HDMI-0, but xrandr and Gnome display settings show nothing. xrandr only sees HDMI-1 with nothing on it. When the computers are booting up or shutting down, the display is mirrored onto the external monitors properly.

Reading around on this issue, people seem to think it is a problem with nvida-drm.modeset=1 and gdm.

I have tried updating /etc/default/grub and with nvida-drm.modeset=0 and remaking the grub config and rebooting, but that doesn’t work. I have also tried using Light display manager (lightdm)instead of gdm but that doesn’t work with either nvida-drm.modeset=0 or nvida-drm.modeset=1. I also have Wayland disabled by default but this doesn’t seem to help either.

Has anyone been able to get an external monitor detected by Gnome display settings in Fedora 31, who is running Nvidia drivers in X? If so what did you do? This is the only issue I am facing since upgrading, and it is a deal breaker for me using Gnome as plugging a laptop into an external monitor and it working is a pretty important feature. The external monitors work fine in KDE and LXQT live Fedora USBs.

Hi,

Similar problem here on my Dell Inspiron G3 3579. It’s not possible anymore to use HDMI monitor after upgrade to Fedora 31. nvidia-settings shows monitor as connected but the menu for setting screen layout is not available. Same in gnome settings. I have tried to set nvidia-drm.modeset=0 but no success. The only difference i can see is that after disabling modeset i can see message in logs when i plug monitor in/out:

==> /var/log/Xorg.1.log <==
[    85.713] (--) NVIDIA(GPU-0): DFP-0: disconnected
[    85.713] (--) NVIDIA(GPU-0): DFP-0: Internal TMDS
[    85.713] (--) NVIDIA(GPU-0): DFP-0: 600.0 MHz maximum pixel clock
[    85.713] (--) NVIDIA(GPU-0): 
----
[   100.271] (--) NVIDIA(GPU-0): Idek Iiyama PLE2483H (DFP-0): connected
[   100.271] (--) NVIDIA(GPU-0): Idek Iiyama PLE2483H (DFP-0): Internal TMDS
[   100.271] (--) NVIDIA(GPU-0): Idek Iiyama PLE2483H (DFP-0): 600.0 MHz maximum pixel clock
[   100.271] (--) NVIDIA(GPU-0):

My nvidia driver is installed from rpmfusion:

nvidia-settings-440.31-1.fc31.x86_64
xorg-x11-drv-nvidia-440.31-1.fc31.x86_64
nvidia-texture-tools-2.0.8-21.fc31.x86_64
kmod-nvidia-440.31-1.fc31.x86_64
xorg-x11-drv-nvidia-cuda-libs-440.31-1.fc31.x86_64
xorg-x11-drv-nvidia-libs-440.31-1.fc31.x86_64
kmod-nvidia-5.3.11-300.fc31.x86_64-440.31-1.fc31.x86_64
xorg-x11-drv-nvidia-kmodsrc-440.31-1.fc31.x86_64
akmod-nvidia-440.31-1.fc31.x86_64

I do also have wayland disabled by default but this does not make it better. On the other side i am sure HW is working correctly since another operating system does not have any HDMI monitor problem.

PS. Is it a right place for asking a question concerning rpmfusion packages?

Regards,
Bart

1 Like

I have managed to get both displays working by using this config (from bumbelbee faq):

$ cat  /etc/X11/xorg.conf.d/brtest.conf 
Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID  "PCI:1:0:0"
#   Option              "DPI" "96 x 96"  # Uncoment to fix the size of fonts
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    # Uncomment this line if your computer has no display devices connected to
    # the NVIDIA GPU.  Leave it commented if you have display devices
    # connected to the NVIDIA GPU that you would like to use.
    # Option "UseDisplayDevice" "none"
EndSection

Section "Device"
    Identifier "intel"
    Driver "intel"
#    Option      "AccelMethod"  "uxa"
    BusID "PCI:0:2:0"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

PS. I decided to keep nvidia-drm.modeset=1

Regards,
Bart

3 Likes

Similar problem here with Fedora 30 after upgrading to 440.31, so not just limited to 31. I had made some progress in creating working xorg.conf files but hadn’t yet combined them so that both work using the same file.

1 Like

Thanks so much for this Bart, this fixes my problem. I can display onto multiple monitors again via HDMI. It does break my 120Hz laptop screen, now it only runs at 60Hz, but that is another problem to solve, quite possibly by tweaking this same file. I’ll go down the next rabbit hole :slight_smile:

Similar issues here and this config saved the day. Thanks!

Lenovo
version: ThinkPad P51
xorg-x11-drv-nvidia-3:440.36-1.fc30.x86_64

Looks like this is a known issue for laptop Nvidia cards with Optimus technology (fallback display and power-saving via Intel graphics). From RPM Fusion’s documentation for Optimus, in the External Monitors detection section:

You have to set the PrimaryGPU option in the Xorg configurations. They recommend doing this by copying the full default config file…

sudo cp -p /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf

And then editing the /etc/ copy of the file to include Option "PrimaryGPU" "yes" in the "OutputClass" section.

So, as of December 2019, /etc/X11/xorg.conf.d/nvidia.conf now looks like this for me:

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

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

Using this Xorg config has the benefit of not interfering with Intel graphics, if you want or need to use those at some point.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.