To install an NVIDIA GRID driver on a RHEL 6.6 virtual machine, you must disable the default NVIDIA driver, download the NVIDIA GRID drivers, and configure the PCI device on the virtual machine.

Prerequisites

Procedure

  1. Disable and blacklist the default NVIDIA Nouveau driver.

    You must take this step before you can install the NVIDIA GRID driver.

    1. Edit the grub.conf file.
      sudo vi /boot/grub/grub.conf
    2. Add the rdblacklist=nouveau line at the end of the kernel options.
    3. Edit the blacklist.conf file.
      sudo vi /etc/modprobe.d/blacklist.conf
    4. Add the following line anywhere in the blacklist.conf file.
      blacklist nouveau
  2. Restart the virtual machine.

    The display has a changed look and feel.

  3. (Optional) : Verify that the Nouveau driver is disabled.
    /sbin/lsmod | grep nouveau

    If the grep search does not return any results, the Nouveau driver is disabled.

  4. Download the NVIDIA drivers from the NVIDIA Driver Downloads site.

    Select the appropriate driver version from the drop-down menus.

    Option

    Description

    Product Type

    GRID

    Product Series

    GRID Series

    Product

    Select the version (such as GRID K2) that is installed on the ESXi host.

    Operating System

    Linux 64-bit or Linux 32-bit

  5. Open a remote terminal to the virtual machine, or switch to a text console by typing Ctrl-Alt-F2, log in as root, and run the init 3 command to disable X Windows.
  6. Install additional components that are required for the NVIDIA driver.
    sudo yum install gcc-c++
    sudo yum install kernel-devel
    sudo yum install kernel-headers
  7. Add an executable flag to the NVIDIA driver package.
    chmod +x NVIDIA-Linux-x86_64-346.47.run
  8. Determine the kernel version that is running.
    uname -r

    The kernel version is displayed. For example:

    2.6.<kernel version>
  9. Start the NVIDIA installer with a flag pointing to the kernel source location.

    For example:

    sudo ./NVIDIA-Linux-x86_64-346.47.run --kernel-source-
    path=/usr/src/kernels/2.6.<kernel version>
  10. Accept the NVIDIA software license agreement and select Yes to automatically update the X configuration settings.
  11. Run the lspci | grep NVIDIA command to identify the PCI device ID of the NVIDIA GRID graphics card.

    The terminal window displays the PCI device ID.

    For example:

    13:00.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K2]

    The 13:00.0 is the PCI device ID. These digits are displayed in hex.

    Important:

    In Step 14, you must convert this value from hex to decimal.

  12. Link the edid.bin file to the /etc/X11 directory.
    sudo ln -s /usr/lib/vmware/viewagent/resources/X11/edid.bin /etc/X11/edid.bin
  13. Edit the xorg.conf file to configure the PCI device ID.
    sudo nano /etc/X11/xorg.conf
  14. Add the BusID and Option lines to the Section "Device" section for the driver "NVIDIA".

    Add these lines:

    Section "Device"
        Identifier       "Device0"
        Driver           "nvidia"
        VendorName       "NVIDIA Corporation"
        BusID            "PCI:X:X:X"
        Option           "IgnoreDisplayDevices" "CRT-0"
        Option           "ConnectedMonitor" "DFP-0, DFP-1, DFP-2, DFP-3"
        Option           "CustomEDID" "DFP-0:/etc/X11/edid.bin; DFP-1:/etc/X11/edid.bin;
    DFP-2:/etc/X11/edid.bin; DFP-3:/etc/X11/edid.bin"
        Option           "ModeValidation" "DFP-0: NoVesaModes,NoPredefinedModes,
    NoMaxSizeCheck,NoEDIDModes,NoXserverModes,NoEdidMaxPClkCheck,NoHorizSyncCheck,
    AllowNonEdidModes; DFP-1: NoVesaModes,NoPredefinedModes,NoMaxSizeCheck,NoEDIDModes,
    NoXserverModes,NoEdidMaxPClkCheck,NoHorizSyncCheck,AllowNonEdidModes; DFP-2: NoVesaModes,
    NoPredefinedModes,NoMaxSizeCheck,NoEDIDModes,NoXserverModes,NoEdidMaxPClkCheck,
    NoHorizSyncCheck,AllowNonEdidModes; DFP-3: NoVesaModes,NoPredefinedModes,NoMaxSizeCheck,
    NoEDIDModes,NoXserverModes,NoEdidMaxPClkCheck,NoHorizSyncCheck,AllowNonEdidModes"
    EndSection

    In the BusID line, the X:X:X digits are the PCI device ID, as displayed by the lspci command and converted from hex to decimal.

    For example, the lspci command might display the PCI device ID as 13:00.0, which is in hex.

    For the BusID value, convert the hex to decimal:

    BusID "PCI:19:0:0"

    The Option lines are required to support the use of multiple monitors with vDGA.

    Use colons (:) as separators in the xorg.conf file.

  15. Restart the virtual machine.

    The View Agent startup script initializes the X server and display topology.

    You can no longer view the virtual machine display in the vSphere console.

  16. From Horizon Client, connect to the Linux desktop.
  17. In the Linux desktop session, verify that the NVIDIA GRID driver is installed.

    Open a terminal window and run the glxinfo | grep NVIDIA command.

    The NVIDIA driver output is displayed. For example:

    [root]# glxinfo | grep NVIDIA
    server glx vendor string: NVIDIA Corporation
    client glx vendor string: NVIDIA Corporation
    OpenGL vendor string: NVIDIA Corporation
    OpenGL version string: 4.5.0 NVIDIA 346.47
    OpenGL shading language version string: 4.50 NVIDIA

Results

The user can access the NVIDIA GRID graphics capabilities on the remote desktop.

After installing the NVIDIA driver, if you upgrade the Linux kernel, View Agent might not be able to communicate with View Connection Server. To resolve the problem, reinstall the NVIDIA driver.