Horizon 6–– vGPU with RHEL 7.1
With this post, I will be going over vGPU setup on Linux. First of all, the most up to date information can be found at product documentation. As of writing this post, the latest Horizon version is 6.2.1, and with this release, the supported guest OS versions for 3D Graphics are as follows:
- vSGA: RHEL 7.1 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards.
- vDGA: RHEL 6.6 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards.
- vGPU: RHEL 6.6 Workstation x64 with NVIDIA Maxwell M60 graphics cards.
- vGPU: RHEL 7.1 Workstation x64 with NVIDIA Maxwell M60 graphics cards.
Just to prevent any confusion, Linux guest OS versions supported with Horizon 6.2.1 are;
As I will be configuring vGPU, I am going to use RHEL 7.1 with Maxwell M60 graphics card.
- First, RHEL includes open VMware tools so no need to install VMware tools.
- Make sure a proper DNS resolution.
- The run level must be 5 for the Linux desktop to work.
- Make sure that an HD audio device is not present in the virtual hardware settings for the VM.
- AD integration and SSO is out of scope for this post, please refer to the documentation.
- Make sure View agent is not installed before NVIDIA drivers.
- Information about Bulk deployment can be found here.
Install NVIDIA Drivers
Once you install OS, attach NVIDIA as shared PCI device with vGPU Profile and make sure that VM’s memory is all reserved.
Check Controller with: lspci | grep VGA
Check nouveue. The driver should be running;
lsmod | grep nouveau
We need to disable nouveau; edit /etc/default/grub and add rdblacklist=nouveau to the Linux options;
Then we need to run grub2-mkconfig –o /boot/grub2/grub.cfg
Lastly, we need to blacklist nouveau: edit /etc/modprobe.d/blacklist.conf and add “blacklist nouveau”. If the file does not exist, create it.
Now its time to reboot and verify nouveau is not running with lsmod |grep nouveau.
Install prerequisites for NVIDIA driver ;
- yum install gcc-c++ kernel-devel-$(uname -r) kernel-headers-$(uname -r) –y
- Copy the driver with WinSCP, and run chmod +x
- Switch to “init 3”
- install the driver
- Select yes for X config, and once done switch to run level 5 and then reboot.
Once installed, we will not be able to use console.
Install View Agent:
Create an “View administrator” account in AD and enable reverse encryption. This account should have “View administrator” privileges on Horizon View.
Extract the files; tar -xzvf VMware-viewagent-linux-build##.tar.gz
an install using ./install_viewagent.sh with the options below:
-b BROKER FQDN
-d domainname (eg, demo.local)
-u AD User Account
-p password. (You need to escape special characters with \)
and reboot once done.
Now you should see the VM under Registered machines section in Horizon View
To check View agent service: service viewagent status
You can now create a Desktop Pool and access the VM via Horizon Client.
Licensing On Linux
As you might be aware, NVIDIA now requires a licensing server and VMs check-in/out licenses. To specify license server to connect from the VM, edit
sudo vi /etc/nvidia/gridd.conf as seen in the picture
Then, restart the service; sudo service nvidia-gridd restart
You can verify that the VM gets license by sudo grep gridd /var/log/messages
Once everything is working, you can login to the VM with Horizon Client and run
glxinfo | grep NVIDIA to verify GPU is running.
An lastly, here is a short demo (FRL is removed);
Keywords: Linux, VDI, GPU, vGPU,
- VMware Identity Manager – Workspace ONE – Provide Access to Horizon Desktops and Apps & Workspace ONE mode - 17 September 2017
- VMware Identity Manager 2.9.2 – Workspace ONE – Installation in DMZ with Outbound-Only Connection Mode - 17 September 2017
- Deploy Unified Access Gateway (UAG) 3.0 with Horizon - 17 September 2017