Here’s a confirmed working /etc/X11/xorg.conf that uses the iGPU as primary display ( intel in this case ) and then forces one of the Nvidia cards to use an EDID from file to activate the driver/GPU to be loaded by X, therefore for all 4 Nvidia GPU. You’ll have one display with a working X desktop, no spanning multi desktop and be able to use the nvidia utilities and programs on the non dektop GPUs. Set your BusID for each Device !
Configuration -
Linux Hostname 5.8.0-53-generic #60~20.04.1-Ubuntu SMP Thu May 6 09:52:46 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
XServer 1.20.9 ( i915 using modesetting )
Intel Celeron iGPU
4 x Nvidia RTX 3070
You’ll see on the main iGPU I use an EDID file from a small 3" display in case I have it disconnected.
On the Nvidia GPU I use the EDID file from a DELL-S2330MX which is a 1920x1080 monitor. You can also add that to the rest of the GPUs if needed.
( NOTE: you can use nvidia-settings to dump your own EDID files if the monitor is currently connected to an nvidia card or other methods posted online )
In order to use the EDID files, you must know what port the card uses for a monitor output. In this case you’ll see HDMI-2 and DFP-5 are used. You can find that in /var/log/ in the X.org log files
I will attached the text version of the EDID ( This site wont allow me to attached BIN or txt files ) I haven’t tested the text version method. maybe you can use ‘edid-decode’ to convert them.
Note: on ubuntu disable gpu-manager:
sudo systemctl disable gpu-manager
otherwise it will continually overwrite your x configs
==== xorg.conf start ==========
Section “ServerFlags”
Option “BlankTime” “0”
Option “StandbyTime” “0”
Option “SuspendTime” “0”
Option “OffTime” “0”
EndSection
Section “ServerLayout”
Identifier “Layout0”
Screen 0 “Screen0” 0 0
Screen 1 “Screen1”
Screen 2 “Screen2”
Screen 3 “Screen3”
Screen 4 “Screen4”
InputDevice “Mouse0” “CorePointer”
EndSection
Section “Files”
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 “Device”
Identifier “Device0”
Driver “modesetting”
BusID “PCI:0:2:0”
Option “AllowEmptyInitialConfiguration” “True”
Option “ConnectedMonitor” “HDMI-2”
Option “CustomEDID” “HDMI-2:/etc/X11/RTK-32V3H-edid.bin”
Option “IgnoreEDID” “false”
Option “UseEDID” “true”
EndSection
Section “Monitor”
Identifier “Monitor0”
Vendorname “Unknown”
ModelName “Unknown”
EndSection
Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
SubSection “Display”
Depth 24
EndSubSection
EndSection
Section “Device”
Identifier “Device1”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce RTX 3070”
BusID “PCI:1:0:0”
Option “ConnectedMonitor” “DFP-5”
Option “CustomEDID” “DFP-5:/etc/X11/Dell-S2330MX-edid.bin”
Option “IgnoreEDID” “false”
Option “UseEDID” “true”
Option “NoLogo” “true”
Option “ModeValidation” “NoVesaModes, NoXserverModes”
EndSection
Section “Screen”
Identifier “Screen1”
Device “Device1”
Monitor “Monitor1”
DefaultDepth 24
Option “BaseMosaic” “False”
Option “AllowEmptyInitialConfiguration” “True”
Option “Stereo” “0”
Option “MultiGPU” “Off”
Option “SLI” “Off”
Option “MetaModes” “nvidia - auto - select + 0 + 0”
Option “nvidiaXineramaInfoOrder” “DFP”
Option “Coolbits” “31”
SubSection “Display”
Depth 24
EndSubSection
EndSection
Section “Monitor”
Identifier “Monitor1”
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option “NODPMS”
EndSection
Section “Device”
Identifier “Device2”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce RTX 3070”
BusID “PCI:3:0:0”
EndSection
Section “Screen”
Identifier “Screen2”
Device “Device2”
Monitor “Monitor2”
DefaultDepth 24
Option “BaseMosaic” “False”
Option “AllowEmptyInitialConfiguration” “True”
Option “Stereo” “0”
Option “MultiGPU” “Off”
Option “SLI” “Off”
Option “MetaModes” “nvidia - auto - select + 0 + 0”
Option “nvidiaXineramaInfoOrder” “DFP”
Option “Coolbits” “31”
SubSection “Display”
Depth 24
EndSubSection
EndSection
Section “Monitor”
Identifier “Monitor2”
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option “NODPMS”
EndSection
Section “Device”
Identifier “Device3”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce RTX 3070”
BusID “PCI:4:0:0”
EndSection
Section “Screen”
Identifier “Screen3”
Device “Device3”
Monitor “Monitor3”
DefaultDepth 24
Option “BaseMosaic” “False”
Option “AllowEmptyInitialConfiguration” “True”
Option “Stereo” “0”
Option “MultiGPU” “Off”
Option “SLI” “Off”
Option “MetaModes” “nvidia - auto - select + 0 + 0”
Option “nvidiaXineramaInfoOrder” “DFP”
Option “Coolbits” “31”
SubSection “Display”
Depth 24
EndSubSection
EndSection
Section “Monitor”
Identifier “Monitor3”
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option “NODPMS”
EndSection
Section “Device”
Identifier “Device4”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce RTX 3070”
BusID “PCI:7:0:0”
EndSection
Section “Screen”
Identifier “Screen4”
Device “Device4”
Monitor “Monitor4”
DefaultDepth 24
Option “BaseMosaic” “False”
Option “AllowEmptyInitialConfiguration” “True”
Option “Stereo” “0”
Option “MultiGPU” “Off”
Option “SLI” “Off”
Option “MetaModes” “nvidia - auto - select + 0 + 0”
Option “nvidiaXineramaInfoOrder” “DFP”
Option “Coolbits” “31”
SubSection “Display”
Depth 24
EndSubSection
EndSection
Section “Monitor”
Identifier “Monitor4”
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option “NODPMS”
EndSection
======= end of xorg conf ============
==== Dell-S2330MX-edid.txt start =====
00 ff ff ff ff ff ff 00 10 ac 4a d0 54 4a 37 30 13 16 01 03 80 33 1d 78 ea 77 c5 a3 54 4f 9f 27 11 50 54 a5 4b 00 71 4f 81 80 d1 c0 01 01 01 01 01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c 45 00 fd 1e 11 00 00 1e 00 00 00 ff 00 56 57 58 46 47 32 35 41 30 37 4a 54 0a 00 00 00 fc 00 44 45 4c 4c 20 53 32 33 33 30 4d 58 0a 00 00 00 fd 00 38 4c 1e 53 11 00 0a 20 20 20 20 20 20 00 6a
==== Dell-S2330MX-edid.txt end =====
======= RTK-32V3H-edid.txt start =====
00 ff ff ff ff ff ff 00 4a 8b 54 4c 01 00 00 00 0c 11 01 03 81 46 27 78 8a a5 8e a6 54 4a 9c 26 12 45 46 af cf 00 95 00 95 0f 95 19 01 01 01 01 01 01 01 01 01 01 01 1d 00 72 51 d0 1e 20 6e 28 55 00 b9 88 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 b9 88 21 00 00 18 00 00 00 fd 00 32 4b 18 3c 0b 00 0a 20 20 20 20 20 20 00 00 00 fc 00 33 32 56 33 48 2d 48 36 41 0a 20 20 20 01 29 02 03 21 71 4e 06 07 02 03 15 96 11 12 13 04 14 05 1f 90 23 09 07 07 83 01 00 00 65 03 0c 00 10 00 8c 0a d0 90 20 40 31 20 0c 40 55 00 b9 88 21 00 00 18 01 1d 80 18 71 1c 16 20 58 2c 25 00 b9 88 21 00 00 9e 01 1d 80 d0 72 1c 16 20 10 2c 25 80 b9 88 21 00 00 9e 01 1d 00 bc 52 d0 1e 20 b8 28 55 40 b9 88 21 00 00 1e 02 3a 80 d0 72 38 2d 40 10 2c 45 80 b9 88 21 00 00 1e 00 00 00 00 d0
======= RTK-32V3H-edid.txt end =====