Multi GPU and Multi monitor setup not working

The best resource i know of is Multihead - ArchWiki - start from there and also check the dedicated one for nvidia. Just keep in mind that xorg.conf file should be in your case the /etc/X11/mhwd.d/nvidia.conf

The problem is that I cannot enable properly any other monitors since when using xrandr --listmonitors
it only detects 1 monitor (which is on my 1080) and when trying to use these instructions :
https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-manjaro-linux
I only get a black screen on boot and nothing else…

Avoid using xrandr and also avoid the drivers from Nvidia Site and use the ones from our repos and install them via MHWD.

To enable the monitors, start with the System Settings and then make use of Nvidia X Server to make a fixed layout that match on both Settings. otherwise the ~/.local/share/kscreen will create you more issues than necessary and you will have to delete that folder over and over again.

I dont think I understood you correctly (Literally try and explain things to me as if Im five, since again Im new to GNU/Linux) but whenever I try to apply these settings, I only get a blank screen.And again, X Server complains that “The current settings cannot be completely applied” and when I press Apply What is possible, nothing changes. I used these instructions to install the drivers :

https://wiki.manjaro.org/index.php/Configure_NVIDIA_(non-free)_settings_and_load_them_on_Startup
https://paste.pics/399f3d7b8e4299bcc0d12106f2f7ade7
https://paste.pics/d6fbeb0d2d82dc5304f89cf073ef3245

Bring your parents please. I will explain to them.

On System Settings all 3 monitors are enabled. That is what i see from the screenshot. Now you set the Layout in Nvidia X Server Settings with both GPU’s and the 3 Monitors and you append the config information that is new - click on Save X to Configuration but without saving it you click on Preview and copy it and paste the correct part into to the /etc/X11/mhwd.d/nvidia.conf and then you reboot the system.

If unsure, share the content of the current /etc/X11/mhwd.d/nvidia.con and also the information you get from Preview once you set the Layout in Nvidia X Server Settings.

Nice, real funny.
The reason that I have a tick in the Enabled box is that otherwise I have no other way to properly set the layout.
Im not sure but if it will add any duplication into the nvidia.con
Nvidia Preview :

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

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 1920 0
    Screen      1  "Screen1" RightOf "Screen0"
    Screen      2  "Screen2" LeftOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    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      "BenQ ZOWIE XL LCD"
    HorizSync       30.0 - 160.0
    VertRefresh     56.0 - 144.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Samsung LU28R55"
    HorizSync       30.0 - 135.0
    VertRefresh     40.0 - 60.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "Samsung C24F390"
    HorizSync       30.0 - 82.0
    VertRefresh     48.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1080"
    BusID          "PCI:10:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 960"
    BusID          "PCI:8:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 960"
    BusID          "PCI:8:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-2"
    Option         "metamodes" "1920x1080_144 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "DVI-I-1-1: nvidia-auto-select +0+0 {AllowGSYNC=Off}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-1-0: nvidia-auto-select +0+0 {AllowGSYNC=Off}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

And full nvidia.conf

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 525.60.11

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
    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/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

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

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
	Option "NoLogo" "1"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "COMPOSITE" "Enable"
EndSection

 
Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

++++

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

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 1920 0
    Screen      1  "Screen1" RightOf "Screen0"
    Screen      2  "Screen2" LeftOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    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      "BenQ ZOWIE XL LCD"
    HorizSync       30.0 - 160.0
    VertRefresh     56.0 - 144.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Samsung LU28R55"
    HorizSync       30.0 - 135.0
    VertRefresh     40.0 - 60.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "Samsung C24F390"
    HorizSync       30.0 - 82.0
    VertRefresh     48.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1080"
    BusID          "PCI:10:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 960"
    BusID          "PCI:8:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 960"
    BusID          "PCI:8:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-2"
    Option         "metamodes" "1920x1080_144 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "DVI-I-1-1: nvidia-auto-select +0+0 {AllowGSYNC=Off}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "HDMI-1-0: nvidia-auto-select +0+0 {AllowGSYNC=Off}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

moderator edit - please use code tags next time

I also rebooted the system after all the instruction you gave me and it only gave me a blank screen with the mouse cursor and thats it…

Here is some base ground for the config to work. Is all in the wiki, but indeed is not as digestible as cookies with milk.

It seems you already added what you had in Preview to the nvidia.conf but without replacing the entries with the new ones, but rather adding them at the bottom.

  1. The config can’t have the
Section "ServerLayout"
    Identifier     "Layout0"

twice … Xorg does not make the difference and hence will choke.

  1. In your case you have 2 GPU’s but you managed to make 3 from them. Your GeForce GTX 960 is "Device1" and "Device2" at the same time … Will not work that way.

  2. When using Screen0 and Screen1 there will be no way to move application windows from one to another, unless TwinView is used via "Xinerama" "1" instead of the default "Xinerama" "0"

  3. When using metamodes with fixed/absolute position for one Monitor, then do it for all instead of nvidia-auto-select +0+0

The way you created the config is quite convoluted and i can’t decipher what intentions are behind your choices from there. Replace everything inside the /etc/X11/mhwd.d/nvidia.conf with this:

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

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "BenQ ZOWIE XL LCD"
    HorizSync       30.0 - 160.0
    VertRefresh     56.0 - 144.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Samsung LU28R55"
    HorizSync       30.0 - 135.0
    VertRefresh     40.0 - 60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 1080"
    BusID          "PCI:10:0:0"
    Option         "TripleBuffer"  "On"
    Option  "ConnectToAcpid"    "Off"
    Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "NVIDIA GeForce GTX 960"
    BusID          "PCI:8:0:0"
    Option         "TripleBuffer"  "On"
    Option  "ConnectToAcpid"    "Off"
    Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option         "COMPOSITE" "Enable"
EndSection

 
Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
 

Is more generic and semi dynamic layout instead of a fixed one, but at least you should have a better starting point, once you reboot the system and no black screen, if my assessment was correct … but sometimes i’m not spot on things …

1 Like

I replaced everything but when I Enable the monitors, I just get a blank screen up with the mouse cursor untill the changes revert back.

And when you have that mouse cursor, if you switch TTY with Ctrl+Alt+F2 and then back to TTY1 with Ctrl+Alt+F1 … can you see the desktop ?

Maybe your system needs to enable early KMS. See here:

When I press Ctrl+Alt+F1 I dont see the desktop, only again blank screen with the mouse cursor and after 3-4 seconds the changes revert, disabling the other 2 monitors. I tried enabling early KMS using the link you gave, but it made no difference.

This worked for me! I could not get 2 virtual displays Linux on Linux, until I saw this:

The thing is that Im not running Manjaro in a VM…I have it dual booted with windows.

Welp…I guess im just F’ed am I?

I do use xfce with nouveau, have 2 different nvidia cards, and 2 monitors.

BUT i do use multiseat, and i do not play, but use it as a workhorse.

I don’t have any conf-files (xorg.conf, nvidia …) and it works !

Multi-monitor did work out of the box. multiseat is a bit more difficult.

But I do use KDE instead of xfce…

For years I struggled with the nvidia driver and the different configuration files.
Updates kept destroying my working multiseat system.
Each time it was a struggle with the configuration files. Sometimes my fault, sometimes some XORG changes

XORG (at least with the nouveau driver) has been able to auto-configure for some time. And that works amazingly well. In order for this to become active, NONE of the usual configuration files must be present. I believe that is also explained in the arch-wiki.

https://wiki.archlinux.org/title/xorg

Note: Arch supplies default configuration files in /usr/share/X11/xorg.conf.d/, and no extra configuration is necessary for most setups.

Do try. save your configuration files and try without. :footprints:

Autokonfigure means:

  • Detect all GPUs
  • Detect all connected Monitors
  • Detect all keyboards
  • Detect all mice
  • Detect an appropriate modus for your monitor

https://man.archlinux.org/man/Xorg.1

search for “auto” !

And wonder why everyone does it manually :wink:

Xorg supports several mechanisms for supplying/obtaining configuration and run-time parameters: command line options, environment variables, the xorg.conf(5) configuration files, auto-detection, and fallback defaults. 

From this manual:

Xorg has a mechanism for automatically generating a built-in configuration at run-time when no xorg.conf file or xorg.conf.d files are present. The current version of this automatic configuration mechanism works in two ways.

The first is via enhancements that have made many components of the xorg.conf file optional. This means that information that can be probed or reasonably deduced doesn’t need to be specified explicitly, greatly reducing the amount of built-in configuration information that needs to be generated at run-time.

The second is to have “safe” fallbacks for most configuration information. This maximises the likelihood that the Xorg server will start up in some usable configuration even when information about the specific hardware is not available.

The automatic configuration support for Xorg is work in progress. It is currently aimed at the most popular hardware and software platforms supported by Xorg. Enhancements are planned for future releases.

The rest is done in GUI after login:

  • select what monitor will be at what position (screen)
  • select resolutions for every monitor
  • store the setting to be used everyday
    :footprints:

Tip: 1st setup with ONE monitor, when this works, connect 2nd … and reboot.

Right Im sorry but this hasnt given my literally anything…Autokonfigure is nowhere to be found. Xorg auto-configuration is work in progress. And setting the monitors one-by-one, gave 0 results. Whenever I tried to configure them one-by-one I get this weird glitch Screenshot, 2023-01-01 23:18:24 - Paste.Pics

So yeah…literally 0 change since day 1 xD

Yh I guess I can just go F myself…

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