Clean 15.6 install, NVIDIA open kernel module, wrong monitor resolution

Hi. I just did a clean install of 15.6 with internet connection, so have kernel 6.4.0-150600.23.38-default, with nvidia-open-driver-G06-signed-kmp-default (570.86.16_k6.4.0_150600.23.33-150600.3.34.1) installed. The installation of the nvidia-open-driver is new to me, as it’s usually the nouveau driver installed as default.

Typically, for me, I would disable the nouveau driver and install an NVIDIA driver the “hard way” via script. However, I would like to adopt any new methods available.

The nvidia-open-driver isn’t quite working for my setup. It’s only seeing a single monitor at 1920 x 1080 77Hz, instead of the native 1920 x 1200, and second monitor of 2560 x 1440. Even with the NVIDIA proprietary driver, I needed a special /etc/X11/xorg_conf file to handle the second monitor, as it’s through a KVM, which prevents the system from reading the monitor HID.

  1. Is there a way to get the system to probe the monitor with the nvidia-open-driver so that 1920 x 1200 is available? Any chance the nvidia-open-driver will eventually work with two monitors, with some of the things I had to do in xorg_conf below?

  2. Below is the xorg_conf file I was using with the NVIDIA script install. Do I need to install nvidia-drivers-G06 to have it work (as nvidia-open-driver doesn’t use xorg_conf?)? And is it better to keep this /etc/X11/xorg_conf file or split up the contents between /etc/X11/xorg.conf.d/ 50-device.conf, 50-monitor.conf, and 50-screen.conf?

  3. nvidia-settings is in nvidia-utils-G06, once nvidia-drivers-G06 is installed?

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 550.107.02

Section "ServerLayout"
    Identifier     "Layout"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"

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

Section "InputDevice"

    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL U2415"
    HorizSync       30.0 - 83.0
    VertRefresh     49.0 - 61.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "modesetting"
    Driver         "modesetting"
    Option         "PreferCloneMode" "true"
    Option         "AccelMethod" "none"
EndSection

Section "Device"
    Identifier     "fbdev"
    Driver         "fbdev"
EndSection

Section "Device"
    Identifier     "vesa"
    Driver         "vesa"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA T600"
EndSection

Section "Screen"
    Identifier     "modesetting"
    Device         "modesetting"
    Monitor        "Monitor0"
EndSection

Section "Screen"
    Identifier     "fbdev"
    Device         "fbdev"
    Monitor        "Monitor0"
EndSection

Section "Screen"
    Identifier     "vesa"
    Device         "vesa"
    Monitor        "Monitor0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    #keep displays active, two or three displays
    Option         "ConnectedMonitor" "DFP-0, DFP-2"
    #Option         "ConnectedMonitor" "DFP-0, DFP-2, DFP-7"
    #no checks
    Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeChe
ck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DP-2"
    #two or three displays
    Option         "metamodes" "DP-2: 1920x1200 +2560+0, DP-0: 2560x1440 +0+0"
    #Option         "metamodes" "DP-2: 1920x1200 +2560+0, DP-0: 2560x1440 +0+0, 
DP-7: 1920x1080 +2560+1200"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

I think it must be named xorg.conf not xorg_conf.

ls -al /etc/X11/| grep -i 'xorg.conf'
-rw-r--r--   1 root root  1916 13. Feb 18:47 xorg.conf
-rw-r--r--   1 root root  1782 13. Feb 18:33 xorg.conf.backup
drwxr-xr-x   2 root root  4096 22. Jan 10:55 xorg.conf.d
-rw-r--r--   1 root root   604  4. Mai 2024  xorg.conf.install


My xorg.conf with 3 Monitors but on one Graphic Card

cat /etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 570.86.16


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

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

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS VS228"
    HorizSync       24.0 - 83.0
    VertRefresh     50.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce RTX 3050"
EndSection

Section "Screen"

# Removed Option "metamodes" "HDMI-0: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +5760+0, DP-1: nvidia-auto-select +1920+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "HDMI-0"
    Option         "metamodes" "HDMI-0: nvidia-auto-select +0+360, DVI-D-0: nvidia-auto-select +4480+360, DP-1: 2560x1440 +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

stephan@linux64:~> 

Otherwise the layout of my monitors (ledt 1920, middle 2560, right 9120) will switch to an unused one when restarting.

Oh yes, sorry! xorg.conf was what I was using.

Are you using the proprietary NVIDIA driver? Or nvidia-open-driver? When I drop my xorg.conf file in, which I used successfully with proprietary, it worked fine, but with nvidia-open-driver, the system boots to command line, which makes me think nvidia-open-driver doesn’t use xorg.conf?

And did you get nvidia-settings from nvidia-utils?

Thanks!

Yes from the Repo:

nvidia-settings -v

nvidia-settings:  version 570.86.16
  The NVIDIA Settings tool.

  This program is used to configure the NVIDIA Linux graphics driver.
  For more detail, please see the nvidia-settings(1) man page.

But I do not use a switch, my monitors are directly to my Card.

Do you see anything with:

xrandr

Ah, I do see it as something separate to install. I’ll try that later, to see if it works with nvidia-open-driver, but ultimately, it seems like I need the proprietary driver.

This, of course, is with nvidia-open-driver, not the proprietary driver…

% xrandr
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
default connected 1920x1080+0+0 0mm x 0mm
   1920x1080     77.00*

@linuxvinh What desktop environment?

Can you show the output from inxi -GSaz these days an Xorg.conf shouldn’t be needed as the system settings (monitors.xml) should detect it’s presence and adjust as required.

% inxi -GSaz
System:
  Kernel: 6.4.0-150600.23.38-default arch: x86_64 bits: 64 compiler: gcc
    v: 7.5.0 parameters: BOOT_IMAGE=/boot/vmlinuz-6.4.0-150600.23.38-default
    root=UUID=bda3f786-7aeb-41e3-aee2-4d574c20233c splash=silent preempt=full
    mitigations=auto quiet security=apparmor
  Desktop: KDE Plasma v: 5.27.11 tk: Qt v: 5.15.12 wm: kwin_x11 vt: 2
    dm: SDDM Distro: openSUSE Leap 15.6
Graphics:
  Device-1: NVIDIA TU117GL [T600] driver: nvidia v: 570.86.16
    alternate: nouveau,nvidia_drm non-free: 530.xx+
    status: current (as of 2023-05) arch: Turing code: TUxxx
    process: TSMC 12nm FF built: 2018-22 pcie: gen: 1 speed: 2.5 GT/s lanes: 4
    link-max: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 0a:00.0
    chip-ID: 10de:1fb1 class-ID: 0300
  Device-2: Logitech Webcam C310 driver: snd-usb-audio,uvcvideo type: USB
    rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 2-2:3 chip-ID: 046d:081b
    class-ID: 0102 serial: <filter>
  Display: x11 server: X.Org v: 1.21.1.11 with: Xwayland v: 24.1.1
    compositor: kwin_x11 driver: X: loaded: N/A unloaded: fbdev,modesetting,vesa
    alternate: nouveau,nv,nvidia gpu: nvidia display-ID: :0 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x286mm (20.00x11.26")
    s-diag: 583mm (22.95")
  Monitor-1: default res: 1920x1080 hz: 77 size: N/A modes: N/A
  API: OpenGL v: 4.5 Mesa 23.3.4 renderer: llvmpipe (LLVM 17.0.6 128 bits)
    direct-render: Yes

At this point, I’d like to know if I should use the nvidia-open-driver or switch to the proprietary one. From a brief reading, it sounds like the nvidia-open-driver is where things are headed.

Currently, the auto detection doesn’t seem to be working with the monitor directly connected. The second monitor, connected through a KVM, isn’t seen at all.

For my previous install, I created an xorg.conf file with both monitors directly connected, then edited the xorg.conf to force monitor/screen resolutions, orientations, and disabled the auto detect , as I wanted the second monitor always active, even though the KVM switch was set to the secondary computer. If I didn’t disable auto detect, the second monitor would disappear, due to auto detect, and when I switch the KVM back to the primary computer, the monitor wouldn’t be available until a reboot was performed.

@linuxvinh Then use nvidia-settings as your user, setup how you want, save the file to your $HOME, then as root user copy this to /etc/X11/xorg.conf.d/10-nvidia.conf

I would also add the following kernel options to grub fbdev=1 nvidia_drm.modeset=1 with YaST Bootloader.

The open driver should work fine since you have a Quadro T600 (Turing)…

I installed nvidia-settings. Upon running it, it doesn’t seem like it’s working. The menu on the left only as two items: Application Profiles and nvidia-settings Configuration. In previous usage, there’s X Server Information, X Server Display Configuration, X Screen 0 and sub items, GPU 0 and sub items, etc.

When I search for nvidia in Yast2, I have the following installed:

kernel-firmware-nvidia
libdrm_nouveau2
nvidia-libXNVCtrl
nvidia-open-driver-G06-signed-kmp-default
nvidia-settings
openSUSE-repos-Leap-NVIDIA

Am I missing something?

I am under the impression that if I installed nvidia-drivers-G06, that would be the proprietary driver?

Just to clarify, I’m still on the nvidia-open-driver with nvidia-settings installed, and not seeing much in nvidia-settings.

What components am I missing? Or should I proceed to install nvidia-drivers-G06?

Please show the output from

zypper se -si nvidia

and

glxinfo | grep 'OpenGL renderer string'

While the proprietary driver has dependencies for the video/X11 packages, the open driver has none, so for instance the following are not installed on the OP’s system (see post 9):

libnvidia-egl-gbm1
libnvidia-egl-x111
nvidia-gl-G06
nvidia-video-G06

I don’t know if any of those is really needed though, no hw supporting the open driver here.

@linuxvinh what about firmware for the open driver kernel-firmware-nvidia-gsp-G06

I’m on Tumbleweed with the open driver installed by the run file, but a) only as Prime Render Offload and b) running Wayland these days… My tests a few days ago with my T400 (display driver) and the RTX4000 where also fine.

@hui

% zypper se -si nvidia
Loading repository data...
Reading installed packages...

S  | Name                                      | Type    | Version                                     | Arch   | Repository
---+-------------------------------------------+---------+---------------------------------------------+--------+-------------------------------------------------------------
i  | kernel-firmware-nvidia                    | package | 20241128-150600.3.9.1                       | noarch | update-sle (15.6)
i  | kernel-firmware-nvidia                    | package | 20241128-150600.3.9.1                       | noarch | Update repository with updates from SUSE Linux Enterprise 15
i  | nvidia-libXNVCtrl                         | package | 570.86.16-lp156.26.1                        | x86_64 | repo-non-free (15.6)
i  | nvidia-open-driver-G06-signed-kmp-default | package | 570.86.16_k6.4.0_150600.23.33-150600.3.34.1 | x86_64 | update-sle (15.6)
i  | nvidia-open-driver-G06-signed-kmp-default | package | 570.86.16_k6.4.0_150600.23.33-150600.3.34.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
i+ | nvidia-settings                           | package | 570.86.16-lp156.26.1                        | x86_64 | repo-non-free (15.6)
i  | openSUSE-repos-Leap-NVIDIA                | package | 20240618.8c4e429-lp156.2.3.1                | x86_64 | update-oss (15.6)
i  | openSUSE-repos-Leap-NVIDIA                | package | 20240618.8c4e429-lp156.2.3.1                | x86_64 | Main Update Repository
% glxinfo | grep 'OpenGL renderer string'
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
glx: failed to create drisw screen
failed to load driver: zink
OpenGL renderer string: llvmpipe (LLVM 17.0.6, 128 bits)

You need at least these additional packages:

nvidia-video-G06
nvidia-gl-G06 

And as pointed out by Malcolm:

kernel-firmware-nvidia-gsp-G06

I did the install via USB stick, with networking switched on, so newer packages would be installed. Only these nvidia ones were installed:

kernel-firmware-nvidia
libdrm_nouveau2
nvidia-open-driver-G06-signed-kmp-default
openSUSE-repos-Leap-NVIDIA

These were added when I installed nvidia-settings:

nvidia-libXNVCtrl
nvidia-settings

Selecting in Yast2 nvidia-video-G06 also adds:

libnvidia-egl-gbm1
libnvidia-egl-gbm1-32bit
nvidia-common-G06
nvidia-gl-G06
nvidia-gl-G06-32bit
nvidia-modprobe
nvidia-video-G06-32bit

Before I commit, what’s the difference between kernel-firmware-nvidia-gsp-G06 and kernel-firmware-nvidia-gspx-G06 and kernel-firmware-nvidia-gspx-G06-cuda? Does it really matter?

Thanks!

Yast2 descriptions:

“This package contains the versioned kernel firmware file “gsp.bin” for the OpenSource NVIDIA kernel module driver G06.”

kernel-firmware-nvidia-gsp-G06 (525.116.04-150500.1) 62.6MiB
kernel-firmware-nvidia-gspx-G06 (550.144.03-lp156.74.1) 59.0 MiB

“This package fetches the versioned kernel firmware file “gsp.bin” for the OpenSource NVIDIA kernel module driver G06 once it’s available.”

kernel-firmware-nvidia-gspx-G06-cuda (570.86.15-150600.3.34.1) nothing shown for size

Complete list of what will be installed after adding nvidia-video-G06

nss-mdns-32bit
libxcb1-32bit
libxcb-randr0-32bit
libwayland-server0-32bit
libvdpau1-32bit
libgbm1-32bit
libffi7-32bit
libdrm2-32bit
samba-client-32bit
libXext6-32bit
libXau6-32bit
libX11-6-32bit
glibc-32bit
plasma5-applet-suse-prime
nvidia-video-G06-32bit
nvidia-modprobe
nvdia-gl-G06
nvidia-gl-G06-32bit
nvidia-common-G06
libnvidia-egl-gbm1-32bit
libnvidia-egl-gbm1

After installing nvidia-video-G06 and other packages listed above, the system booted fine to graphical. nvidia-settings displays the expected information. Primary monitor is 1920 x 1200.

Upon reading more about kernel-firmware-nvidia-gspx-G06-cuda, it looked to be worth installing. It installs gsp.bin. gsp being Graphical System Processor, which can offload some of the work previously done by the CPU onto the GPU, which should improve graphics performance.

Installing kernel-firmware-nvidia-gspx-G06-cuda installed only that. Size is still blank.

After this, I used nvidia-settings to write a new xorg.conf. I patched it with my specific setup lines, which handles my secondary monitor through a KVM. (The secondary monitor, being through a KVM, means the graphics card can’t detect the HID of the monitor. Also, switching away to a second computer with the KVM will also cause the primary computer to lose the secondary monitor, so auto-detect is disabled and all resolutions are preset.)

/etc/X11/xorg.conf

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 570.86.16

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

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

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL U2415"
    HorizSync       30.0 - 83.0
    VertRefresh     49.0 - 61.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA T600"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    #keep displays active, two or three displays
    Option         "ConnectedMonitor" "DFP-0, DFP-2"
    #Option         "ConnectedMonitor" "DFP-0, DFP-2, DFP-7"
    #no checks
    Option         "ModeValidation" "NoDFPNativeResolutionCheck,NoVirtualSizeChe
ck,NoMaxPClkCheck,NoHorizSyncCheck,NoVertRefreshCheck,NoWidthAlignmentCheck"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DP-2"
    #two or three displays
    Option         "metamodes" "DP-2: 1920x1200 +2560+0, DP-0: 2560x1440 +0+0"
    #Option         "metamodes" "DP-2: 1920x1200 +2560+0, DP-0: 2560x1440 +0+0, 
DP-7: 1920x1080 +2560+1200"
    #Option         "metamodes" "nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Everything is working great! Thank you to all (@Sauerland @malcolmlewis @OrsoBruno @hui ) who chimed in!