Quick note: This post deals with two Quadro 600s running two monitors - one each with driver versions 300 to mid-400 and RHEL 6.4 and 6.9
I am aware that these are all very outdated and unsupported
No, I cannot update any of these and I will never be able to
No, I cannot just throw my hands up and say “it’s too difficult” - the only way I get out of this is quitting my job, and that’s not something I’m planning to do
I will not say why any of these are the case
To the issue at hand!
We have a RHEL 6.4 workstation with two Quadro 600s in it (not p, not k, etc - just plain 600) and each card is connected via DVI to one monitor running driver version ~380-ish I believe. We just updated the workstation to RHEL 6.9 and have lost the second display. Unfortunately we can’t install the exact previous driver version due to various reasons, so we have to upgrade to another version we have. Thankfully, we have a few driver versions all ranging from the high-300 to mid-400.
I’ve dug through the old x configuration, tried various iterations of it, tried installing different drivers, tried re-initing and rebooting, tried running NVIDIA’s built-in xorg generator tool, etc etc etc. The most I can get is a non-functional second display (usually labeled as “disabled” in nvidia-settings) but normally shutdowns or startups just completely hang and I have to go into single-user mode to fix or revert the xorg configuration to get it to boot normally again.
The Quadro 600 (Fermi) is still supported, the legacy driver v390 is the correct version to use. So no need to swap.
How do you install the driver (runfile/repo)?
Please run nvidia-bug-report.sh as root and attach the resulting nvidia-bug-report.log.gz file to your post.
Please post the output of
So it looks like the driver versions I have available are 384.90, 340.108, 375.66, and 331.89. I might be able to find more, but that’s all I have for now. Would any of those work?
We’re installing using runfiles, though we do have a precompiled version for an older kernel (which obviously won’t work here, but hey)
I did run the nvidia-bug-report.sh but the file is large enough that it would take a long time to review. Is there any section in particular that you would like to see? I can probably post sections of it.
There’s also no /sys/module/nvidia_drm/parameters directory. The driver version I’m seeing on the box right now is 384.90
I’d need a dmesg output after a fresh boot, Xorg logs, Xorg config files
and the output of
sudo lspci -k -d 10de:*
for starters.
If the nvidia-bug-report.log is very big, this points to problems flooding the log.
Any of those mentioned drivers should work on rhel 6.
Driver archive: https://http.download.nvidia.com/XFree86/Linux-x86_64/
The nvidia-bug-report.log is 30136 lines ling and 1.8M large, but I can’t reasonably go through 30k lines to be able to post the log here.
The output of dmesg would be similar, and same with Xorg logs. Is there specific sections you’d need? I could probably hand-jam the Xorg config we’re using.
The xorg log doesn’t match the xorg.conf. Xorg config defines two screens running on the two nvidia gpus. The xorg log uses a config file with only one screen defined but with many options set not in the config you attached.
In general, what’s your desired setup? Two separate screens or one desktop spanning both gpus?
Odd, we tried a few different xorg configs and that one, I believe, was generated by xrandr. We had one we tried previously which worked on 6.4 but when we copied it over to the box after the 6.9 upgrade it stopped working.
The desired setup is two monitors with each monitor plugged into the DVI port of each card (ie. monitor 1 plugged into card 1 and monitor 2 plugged into card 2). The desktop should be stretched between the two monitors (side-by-side, a “usual” multi-monitor setup. Not stretched.) and windows should be able to be dragged around between them. From what I understand, that should involve the use of xinerama.
Additionally the command
xrandr -q :d :0
returns the following, with the desired hardware setup (two monitors, two cards, both DVI)
Screen 0: minimum 8 x 8, current 1920 x 1200, maximum 16384 x 16384
DVI-I-0 disconnected primary (normal left inverted right x axis y axis)
DVI-I-1 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 519mm x 325mm
1920x1200 59.95*+
1680x1050 59.95
1600x1200 60.00
1440x900 59.89
1280x960 60.00
1280x720 60.00
1152x864 75.00
1024x768 85.00 75.03 70.07 60.00
800x600 85.06 75.00 72.19 60.32
640x480 75.00 72.81 59.84
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
It looks like /sys/module/nvidia_drm/parameters doesn’t exist.
The nvidia_drm directory contains
holders/
initstate
notes/
refcnt
sections/
srcversion
version
Is there any way we might be able to figure this out or move on from it? I’ve found similar fixes on this forum and around the internet but since I don’t have that sys directory I can’t verify functionality or guarantee that what I’m seeing on my end is correct.
If it doesn’t exist, it’s as good as ‘N’, disabled. It just shouldn’t return ‘Y’, enabled.
Please create a new nvidia-bug-report.log with the xorg.conf from my post in place.
the nvidia-bug-report.log is too many lines to manually review again, but I can still post the Xorg.0.log and dmesg logs for the new xorg config if you’d like.
After looking at the nvidia-settings and going over to look at the monitors it seems like both screens are functional.
What does BaseMosaic do that xinerama doesn’t? Or, specifically, what’s the difference between the config you posted and the ones we’ve been using? What have we been doing wrong?
Thank you so much for the input!
Edit: If you’ve got a venmo or paypal or something the entire team is happy to buy you a coffee or a beer or several.
Edit edit: I’ve been told from my team lead to post the logs so I’ll try to get them downloaded today if possible.
BaseMosaic is the nvidia proprietary counterpart to xinerama for quadros without the downsides of xinerama (compositing, glx).
I guess the Xorg log is sufficient.