To install Horizon Agent for Linux, you must meet certain requirements for the Linux operating system, Linux virtual machine, Horizon 8 system components, and vSphere platform.
Supported Linux Versions for Horizon Agent
The following table lists the Linux operating systems that have been tested and are supported for Horizon Agent.
|Ubuntu 18.04, 20.04, and 22.04
|Red Hat Enterprise Linux (RHEL) Workstation 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, and 9.0
|Red Hat Enterprise Linux (RHEL) Server 7.8, 7.9, 8.4, 8.6, and 9.0
|CentOS 7.6, 7.7, 7.8, and 7.9
|SUSE Linux Enterprise Desktop (SLED) 12 SP3, 15 SP2, and 15 SP3
|SUSE Linux Enterprise Server (SLES) 12 SP3, 12 SP5, 15 SP2, and 15 SP3
Some features are supported on a limited subset of Linux operating systems. For more information, see the section of this document that discusses the specific feature.
The install_viewagent.sh installation script provides a --force parameter that forces the installation of Horizon Agent on Linux distributions not listed in the test support matrix. See Command-line Options for Installing Horizon Agent for Linux.
Required Platform and Software Versions
To install and use Horizon Agent for Linux, your deployment must meet certain requirements for the vSphere platform, Horizon Connection Server, and Horizon Client software.
|Platform and Software
|vSphere platform version
|Horizon 8 environment
|Horizon Client software
Ports Used by Linux Desktops
To enable connection sessions, Linux desktops must support incoming TCP connections from Horizon Client devices, Unified Access Gateway, and Horizon Connection Server.
On Ubuntu distributions, the iptables firewall is configured by default with an input policy of ACCEPT.
On RHEL and CentOS distributions, where possible, the Horizon Agent installer script configures the iptables firewall with an input policy of ACCEPT. To ensure support of incoming connections, verify that iptables has an input policy of ACCEPT for new connections through the Blast port, 22443.
When you enable Blast Secure Gateway (BSG), client connections are directed from a Horizon Client device through the BSG on the Horizon Connection Server to the Linux desktop. When you do not enable BSG, connections are made directly from the Horizon Client device to the Linux desktop.
For detailed information on the ports used by Horizon Agent on Linux desktops, see the Horizon Security document and the Network Ports in VMware Horizon guide.
Verify the Linux Account Used by Linux Virtual Machines
The following table lists the account name and account type used by Linux virtual machines.
|Linux OS built-in
|Java Standalone Agent, mksvchanserver, shell scripts
|Created by Linux Agent installer
|<current login user>
|Linux OS built-in or AD user or LDAP user
|Default Desktop Environment
|Desktop Environments Supported by Horizon Agent for Linux
|Gnome Ubuntu, K Desktop Environment (KDE), MATE
|RHEL 7.x/CentOS 7.x
To change the default desktop environment used on one of the supported Linux distributions, you must use the following steps and commands appropriate for your Linux desktop.
- Install the supported Linux distribution's operating system with the default desktop environment setting.
- Run the appropriate commands described in the following table for your specific Linux distribution.
Table 5. Commands to Install Desktop Environments Linux Distribution New Default Desktop Environment Commands to Change the Default Desktop Environment RHEL/CentOS 7.x KDE
yum groupinstall "KDE Plasma Workspaces"
apt install plasma-desktop
Ubuntu MATE 1.225
apt install ubuntu-mate-desktop
- To begin using the new default desktop environment, restart the desktop.
- For Ubuntu and RHEL/CentOS 7.x, use the information in the following table to set the SSODesktopType option in the /etc/vmware/viewagent-custom.conf file to specify the desktop environment to use with SSO.
Table 6. SSODesktopType Option Desktop Type SSODesktopType Option Setting MATE SSODesktopType=UseMATE GnomeUbuntu SSODesktopType=UseGnomeUbuntu GnomeFlashback SSODesktopType=UseGnomeFlashback KDE SSODesktopType=UseKdePlasma GnomeClassic SSODesktopType=UseGnomeClassic
- For RHEL 9.x/8.x, for the SSO login session to use Gnome Classic, remove all the desktop startup files, except for the Gnome Classic startup file, from the /usr/share/xsession directory. Use the following set of commands as an example.
cd /usr/share/xsessions mkdir backup mv *.desktop backup mv backup/gnome-classic.desktop ./After the initial setup, the end user must log out or reboot their Linux desktop to use Gnome Classic as the default desktop in their next SSO session.
If you deactivated SSO on a Linux desktop that has multiple desktop environments installed, you do not need to perform any of the previously described steps. The end users have to select their desired desktop environment when they log in to that Linux desktop.
- Select TCP if the network condition is good, such as in a local area network (LAN) environment.
- Select UDP if the network condition is poor, such as in a wide area network (WAN) environment with packet loss and time delay.
- Download and install Wireshark on your Linux VM.
sudo yum install wiresharkFor Ubuntu:
sudo apt install tshark
- Connect to the Linux desktop using VMware Horizon Client.
- Open a terminal window and run the following command, which displays the TCP package or UDP package used by VMware Blast Extreme.
sudo tshark -i any | grep 22443
- Copying remote files can be slow. In this situation, transmit smaller sized files instead.
- USB device does not appear in the remote Linux desktop.
- USB data does not transfer completely. For example, if you copy a large file, you might get a file smaller in size than the original file.
VHCI Driver for USB Redirection
- If you intend to install Horizon Agent using the .tar.gz tarball installer, you must first download and unpack the tarball installer, then install the VHCI driver, and then install Horizon Agent with the installation parameter for the USB redirection feature.
- If you intend to install Horizon Agent using the .rpm RPM installer, you must first install Horizon Agent, then install the VHCI driver, and then add the USB redirection feature to the Horizon Agent configuration.
For more information, see Install Horizon Agent on a Linux Virtual Machine.
The USB redirection feature has a dependency on the USB Virtual Host Controller Interface (VHCI) kernel driver. To support USB 3.0 and the USB redirection feature, you must install the VHCI driver by performing the following steps:
- Download the USB VHCI source code from https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/.
- Identify the full path to the VHCI patch file, depending on the Horizon Agent installer format. For guidelines, see the following examples.
- (Tarball installer) If you download and unpack the tarball installer VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz under the /install_tmp/ directory, the full-path_to_patch-file is /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch.
- (RPM installer) If you download the RPM installer VMware-horizonagent-linux-YYMM-y.y.y-xxxxxxx.el8.x86_64.rpm and use it to install Horizon Agent, the full-path_to_patch-file is /usr/lib/vmware/viewagent/resources/vhci/patch/vhci.patch.
- To compile the VHCI driver source code and install the resulting binary on your Linux system, use the commands listed in the following table. Replace full-path_to_patch-file in the commands with the file path that you identified in the previous step.
For example, if the file path is /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch, the patch command becomes:
patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/vhci/patch/vhci.patch
|Steps to Compile and Install USB VHCI Driver
In addition, follow these guidelines:
- If your Linux kernel changes to a new version, you must recompile and reinstall the VHCI driver, but you do not need to reinstall Horizon Agent for Linux.
- You can also add Dynamic Kernel Module Support (DKMS) to the VHCI driver using steps similar to the following example for an Ubuntu system.
- Install the kernel headers.
apt install linux-headers-`uname -r`
- Install dkms using the following command.
apt install dkms
- Extract and patch the VHCI TAR file.
tar xzvf vhci-hcd-1.15.tar.gz cd vhci-hcd-1.15 patch -p1 <full-path_to_patch-file> cd ..
- Copy the extracted VHCI source files to the /usr/src directory.
cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
- Create a file named dkms.conf and place it in the /usr/src/usb-vhci-hcd-1.15 directory.
- Add the following contents to the dkms.conf file.
PACKAGE_NAME="usb-vhci-hcd" PACKAGE_VERSION=1.15 MAKE_CMD_TMPL="make KVERSION=$kernelver" CLEAN="$MAKE_CMD_TMPL clean" BUILT_MODULE_NAME="usb-vhci-iocifc" DEST_MODULE_LOCATION="/kernel/drivers/usb/host" MAKE="$MAKE_CMD_TMPL" BUILT_MODULE_NAME="usb-vhci-hcd" DEST_MODULE_LOCATION="/kernel/drivers/usb/host" MAKE="$MAKE_CMD_TMPL" AUTOINSTALL="YES"
- Add this VHCI driver in dkms.
dkms add usb-vhci-hcd/1.15
- Build the VHCI driver.
dkms build usb-vhci-hcd/1.15
- Install the VHCI driver.
dkms install usb-vhci-hcd/1.15
- Install the kernel headers.