View previous topic :: View next topic |
Author |
Message |
kenjKage n00b
Joined: 17 Nov 2018 Posts: 2
|
Posted: Sun Nov 18, 2018 5:02 am Post subject: Multi Monitor Setup with NVIDIA |
|
|
I was working on getting a triple monitor setup working the with x11-drivers/nvidia-drivers, but it was not detecting the proper resolution for two of the monitors. I was able to get it working with a bit of hackery, so I wanted to post the details here in case some one else runs into a similar situation.
The problem stemmed from the fact that my graphics card (GTX 970) has an HDMI output, DisplayPort, and two DVI ports. The issue is that only two of these can be in use at once. I just got 3 monitors that I use for work with my work laptop, but they only have a single DP port, so no daisy chaining. My solution was to get a DP splitter. One DisplayPort becomes 4 HDMI ports. The problem seemed to be that, despite spending about $100 on it, the splitter did not work entirely properly, in that it was not passing through the information about the displays (more on this later).
The setup that I was working with was the HDMI connected to the middle display, and two display port passed through to HDMI connected to the left and right monitors. Now that X is working properly and the displays are functioning, I plan on switching the middle monitor to the DP passthrough, and moving the HDMI to a fourth monitor above the main one (this will have stats and logs up when the other three are switched to the work laptop). Thankfully, this initial setup helped me troubleshoot the issue and find a solution.
The core of the issue seems to be that the EDID https://en.wikipedia.org/wiki/Extended_Display_Identification_Data (the "display info" I mentioned earlier) for the passed-through monitors was not available, so X was not able to detect the available settings. The middle monitor, coming over HDMI, did have this available, so I was able to query it with
Code: | xranrd -q --verbose | '
This gives, among many other things, the following EDID information
Code: | EDID:
00ffffffffffff0010acf44053315630
1e1c010380331d78eaebf5a656519c26
105054a54b00714f8180a9c0d1c00101
010101010101023a801871382d40582c
4500fd1e1100001e000000ff0033474a
3231383750305631530a000000fc0044
454c4c205032333137480a20000000fd
00384c1e5311000a20202020202001b6
020317b14c9005040302071601141f12
1365030c001000023a801871382d4058
2c4500fd1e1100001e011d8018711c16
20582c2500fd1e1100009e011d007251
d01e206e285500fd1e1100001e8c0ad0
8a20e02d10103e9600fd1e1100001800
00000000000000000000000000000000
000000000000000000000000000000ed
|
This make things a little easier, since now I could decode this information, and recreate it for the other two displays. It would be possible to plug each display into HDMI port, restart the Xorg server, and then grab the EDID, but my computer is in a rack down two flights of stairs, so I didn't really want to keep running back and forth. Plus this was a fun experiment. If you're running into this issue, give that a try, as it may be easier.
Now that I had this EDID, I pulled up the Wikipedia page above to decode the information. All three monitors are the same model, so I expected the only thing in the EDID that needed to change was the serial number. After parsing out that information I saw the following serial
Looking at the back on my monitor, I saw a similar code
Code: | CN-03GJ21-QDC00-87P-0V1S-A06 |
So it looks like the EDID serial just strips out some of these characters, so all I needed to do was copy the main EDID to two other files, fire up the trusty hexeditor, and replace the serial number with the converted one from the back of the other two monitors.
After creating the new EDID files, I needed to tell Xorg about them, which is easy enough. Nvidia documents this here https://nvidia.custhelp.com/app/answers/detail/a_id/3571/~/managing-a-display-edid-on-linux.
So after adding the following lines to my xorg.conf, and restarting X I had all 3 monitors up and going as full resolution and their full refresh rate.
Code: |
Section "Screen"
...
Option "CustomEDID" "GPU-0.DP-0.1:/home/ken/right_edid.bin"
Option "CustomEDID" "GPU-0.DP-0.2.1:/home/ken/left_edid.bin"
...
EndSection
|
Hope this is helpful, or at least interesting, to someone else out there. |
|
Back to top |
|
|
Hund Apprentice
Joined: 18 Jul 2016 Posts: 218 Location: Sweden
|
Posted: Mon Nov 26, 2018 1:20 pm Post subject: |
|
|
Quote: | The problem stemmed from the fact that my graphics card (GTX 970) has an HDMI output, DisplayPort, and two DVI ports. The issue is that only two of these can be in use at once. |
How come? Did something change i newer cards? I have a GTX780 with 1xHDMI, 2xDVI and 1xDP and I run a triple monitor setup via the HDMI- and DVI-ports and it's just plug and play for me. _________________ Collect memories, not things. |
|
Back to top |
|
|
kenjKage n00b
Joined: 17 Nov 2018 Posts: 2
|
Posted: Sun Dec 02, 2018 1:09 am Post subject: |
|
|
It must have changed. I tried this on a Windows install as well, and only two outputs could be used simultaneously there as well. IIRC the official reference design says the same. |
|
Back to top |
|
|
Anon-E-moose Watchman
Joined: 23 May 2008 Posts: 6148 Location: Dallas area
|
Posted: Sun Dec 02, 2018 11:38 am Post subject: |
|
|
Unless I'm mistaken, running 2 dvi monitors still counts as one output because of the way dvi is designed.
you can only have two distinct outputs from HDMI|DVI|DP _________________ UM780, 6.1 zen kernel, gcc 13, profile 17.0 (custom bare multilib), openrc, wayland |
|
Back to top |
|
|
Hund Apprentice
Joined: 18 Jul 2016 Posts: 218 Location: Sweden
|
Posted: Sun Dec 02, 2018 11:04 pm Post subject: |
|
|
Anon-E-moose wrote: | Unless I'm mistaken, running 2 dvi monitors still counts as one output because of the way dvi is designed.
you can only have two distinct outputs from HDMI|DVI|DP |
It works for me though. I have:
* HDMI-0
* DVI-I-1
* DVI-D-0 _________________ Collect memories, not things. |
|
Back to top |
|
|
Anon-E-moose Watchman
Joined: 23 May 2008 Posts: 6148 Location: Dallas area
|
Posted: Mon Dec 03, 2018 12:10 am Post subject: |
|
|
Hund wrote: | Anon-E-moose wrote: | Unless I'm mistaken, running 2 dvi monitors still counts as one output because of the way dvi is designed.
you can only have two distinct outputs from HDMI|DVI|DP |
It works for me though. I have:
* HDMI-0
* DVI-I-1
* DVI-D-0 |
Yes, that's what I said. 2 outputs, 1 hdmi 1 dvi (dvi drives 2 monitors, but still counts as 1 output) _________________ UM780, 6.1 zen kernel, gcc 13, profile 17.0 (custom bare multilib), openrc, wayland |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|