Can only use one display on HP xw9300 and xw9400 with third party Nvidia Drivers on Red Hat Enterprise Linux 5
Environment
- Red Hat Enterprise Linux 5
- Kernels after 2.6.18-129.el5.
- Hardware HP xw9300 and xw9400 workstations
- Dual Nvidia Quadro FX 4800 graphics cards installed
- Using 3rd party Nvidia proprietary graphics driver.
- Attempting to configure dual-head graphics card configuration.
- lspci shows 2 graphics cards, but X -scanpci shows only 1 card detected:
# lspci | grep VGA 0000:18:00.0 VGA compatible controller: nVidia Corporation GT200GL [Quadro FX 4800] (rev a1) 0001:58:00.0 VGA compatible controller: nVidia Corporation GT200GL [Quadro FX 4800] (rev a1) # X :1 -scanpci -v 5 ... (24:0:0) unknown card (0x10de/0x0594) using an unknown chip (DeviceId 0x05fe) from nVidia Corporation ...
Issue
-
Machine has 2 display card(NVIDIA FX 4800) attached. Trying to configure X using dual display failed and X -probeonly and X -scanpci shows only 1 display card detected even though lspci shows 2 cards:
# lspci | grep VGA 0000:18:00.0 VGA compatible controller: nVidia Corporation GT200GL [Quadro FX 4800] (rev a1) 0001:58:00.0 VGA compatible controller: nVidia Corporation GT200GL [Quadro FX 4800] (rev a1) # X :1 -scanpci -v 5 ... (24:0:0) unknown card (0x10de/0x0594) using an unknown chip (DeviceId 0x05fe) from nVidia Corporation ...- Here is what i have tried on the same machine:
- RHEL 4.8 (2.6.9-89.EL) with 3rd party Nvidia driver and Red Hat driver - works
- RHEL 5.3 (2.6.18-128.el5) with 3rd party Nvidia driver and Red Hat driver - works
- RHEL 5.6 (2.6.18-238.el5) with 3rd party Nvidia driver and Red Hat driver - not working
- I have tried using system-config-display, nvidia-settings, using old config from rhel 5u3, using older driver, installed xorg server that comes with rhel5u3. All failed to see and activate the second video card
- Here is what i have tried on the same machine:
Resolution
- A workaround includes booting with pci=noseg on the kernel command line. It can be added to /boot/grub/grub.conf in the following fashion and is loaded on reboot:
title Red Hat Enterprise Linux Server (2.6.18-238.5.1.el5) root (hd0,0) kernel /vmlinuz-2.6.18-238.5.1.el5 ro root=/dev/vgroot/rootvol pci=noseg initrd /initrd-2.6.18-238.5.1.el5.img - The correct fix would be to patch the xorg server with the following upstream patch:
http://pkgs.fedoraproject.org/gitweb/?p=xorg-x11-server.git;a=commitdiff;h=ab1324774d2bcdca0042c3fd5ed682a7ec4fd5fa
- Unfortunately, the backport is less than straight forward. It builds on output from pci_device_cfg_read_u16(), but that call is not made in the version of xorg-server that is in RHEL5.
- Red Hat are still considering options to resolve this issue in Red Hat Enterprise Linux 5, including reverting the removal of the blacklist that was committed in Red Hat Bugzilla #474891.
Root Cause
- Regression was introduced by patch from Red Hat Bugzilla #474891.
- [x86] pci domain: re-enable support on blacklisted boxes (Prarit Bhargava ) [474891]- The HP xw9300 and xw9400 workstations require multi-domain support to allow them to boot. As RHEL5 prior to 5.3 did not support multi-domain, an exception for these two hosts was added to the kernel.
- With Bugzilla #474891, the exception for HP xw9300 and xw9400 workstations was removed because multi-domain support was added so the exception was no longer required.
- It appears that the exception allowed HP xw9300 and xw9400 hosts to detect the second graphics card, and with native multi-domain support we are unable to detect the graphics card.
Diagnostic Steps
- Ensure your hardware is either HP xw9300 workstation or HP xw9400 workstation.
- Determine if you are running a vulnerable kernel:
- Any kernel between 2.6.18-164.el5 (RHEL5.4) and the most recent RHEL5 kernel (2.6.18-274.el5 as shipped with RHEL5.7).
- Check if two graphics cards can be detected in the output of lspci:
# lspci | grep VGA 0000:18:00.0 VGA compatible controller: nVidia Corporation GT200GL [Quadro FX 4800] (rev a1) 0001:58:00.0 VGA compatible controller: nVidia Corporation GT200GL [Quadro FX 4800] (rev a1) - Check how many graphics cards can be detected from X -scanpci output (look for lines that talk about "card" and "chip":
# X :1 -scanpci -v 5 ... (24:0:0) unknown card (0x10de/0x0594) using an unknown chip (DeviceId 0x05fe) from nVidia Corporation ... - Try installing kernel 2.6.18-128.el5 or earlier kernels, or RHEL4 or RHEL6 and determine if both graphics cards can be seen.
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
