To install Horizon 7 for Linux, your Linux system must meet certain requirements for the operating system, Horizon 7, and vSphere platform.
Supported Linux Versions for Horizon Agent
The following table lists the Linux operating systems that are supported for Horizon Agent.
|Ubuntu 16.04, 18.04, and 20.04
Note: You must apply one of the solutions described in VMware KB article http://kb.vmware.com/kb/2151294.
Red Hat Enterprise Linux (RHEL) Workstation 6.6, 6.7, 6.8, 6.9, 6.10, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, and 8.4
Note: The following requirements apply:
CentOS 6.6, 6.7, 6.8, 6.9, 6.10, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, 8.3, and 8.4
Note: The following requirements apply:
|NeoKylin 6 Update 1||x64|
|SLED 12.x SP1/SP2/SP3||x64|
|SLES 12.x SP1/SP2/SP3/SP5||x64|
Required Platform and Horizon 7 Software Versions
To install and use Horizon 7 for Linux, your deployment must meet certain requirements for the vSphere platform, Horizon 7, and the Horizon Client software.
|Platform and Software||Supported Versions|
|vSphere platform version||
|Horizon Client software||
TCP/UDP Ports Used by Linux Virtual Machines
Horizon Agent and Horizon Clients use TCP or UDP ports for network access between each other and various Horizon server components.
|Horizon Client||*||Linux Agent||22443||TCP/UDP||Blast if Blast Security Gateway is not used|
|Security Server, Horizon Connection Server, or Access Point appliance||*||Linux Agent||22443||TCP/UDP||Blast if Blast Security Gateway is used|
|Horizon Agent||*||Horizon Connection Server||4001, 4002||TCP||JMS SSL traffic.|
To allow users to connect to their Linux desktops, the desktops must be able to accept incoming TCP connections from Horizon Client devices, security server, and Horizon Connection Server.
On Ubuntu and Kylin 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.
Make sure that iptables on an RHEL or CentOS guest operating system has an input policy of ACCEPT for new connections from the Blast port, 22443.
When the BSG is enabled, client connections are directed from a Horizon Client device through the BSG on a security server or Horizon Connection Server to the Linux desktop. When the BSG is not enabled, connections are made directly from the Horizon Client device to the Linux desktop.
Verify the Linux Account Used by Linux Virtual Machines
Account Name and Account Type lists the account name and account type used by Linux virtual machines.
|Account Name||Account Type||Used By|
|root||Linux OS built-in||Java Standalone Agent, mksvchanserver, shell scripts|
|vmwblast||Created by Linux Agent installer||VMwareBlastServer|
|<current login user>||Linux OS built-in or AD user or LDAP user||Python script|
|Linux Distribution||Default Desktop Environment||Desktop Environments Supported by Horizon 7 for Linux Desktops|
|Ubuntu 18.04/20.04||Gnome||Gnome Ubuntu, K Desktop Environment (KDE), MATE|
|Ubuntu 16.04||Unity||Gnome Flashback (Metacity), KDE, MATE|
|RHEL/CentOS 6.x||Gnome||Gnome, KDE|
|RHEL/CentOS 7.x||Gnome||Gnome, KDE|
|SLED 12 SP1/SP2/SP3||Gnome||Gnome|
|SLES 12 SP1/SP2/SP3/SP5||Gnome||Gnome|
|NeoKylin 6 Update 1||Mate||Mate|
When using RHEL/CentOS 7.x and Ubuntu 20.04/18.04/16.04 distributions, SSO fails to unlock a locked KDE session. You must manually enter your password to unlock the locked session.
- Install the supported Linux distribution's operating system with the default desktop environment setting.
- Run the appropriate commands in Commands to Install Desktop Environments for your specific Linux distribution.
Table 6. Commands to Install Desktop Environments Linux Distribution New Default Desktop Environment Commands to Change the Default Desktop Environment RHEL/CentOS 6.x KDE
# yum groupinstall "X Window System" "KDE Desktop"
RHEL/CentOS 7.x KDE
# yum groupinstall "KDE Plasma Workspaces"
Ubuntu 20.04/18.04/16.04 KDE
# apt install plasma-desktop
Ubuntu 20.04/18.04 MATE
# apt install ubuntu-mate-desktop
Ubuntu 16.04 MATE
# apt-add-repository ppa:ubuntu-mate-dev/xenial-mate # apt update # apt upgrade # apt install mate # apt install ubuntu-mate-themes
Ubuntu 16.04 Gnome Flashback (Metacity)
# apt install gnome-session-flashback
- To begin using the new default desktop environment, restart the desktop.
- For Ubuntu 20.04/18.04/16.04 and RHEL/CentOS 7.x, use the information in SSODesktopType Option to set the SSODesktopType option in the /etc/vmware/viewagent-custom.conf file to specify the desktop environment to use with SSO.
Table 7. SSODesktopType Option Desktop Type SSODesktopType Option Setting MATE SSODesktopType=UseMATE GnomeUbuntu SSODesktopType=UseGnomeUbuntu GnomeFlashback SSODesktopType=UseGnomeFlashback KDE SSODesktopType=UseKdePlasma GnomeClassic SSODEsktopType=UseGnomeClassic
- For RHEL/CentOS 6.x, for the SSO login session to use KDE, remove all the desktop startup files, except for the KDE 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/kde*.desktop ./After the initial setup, the end user must log out or reboot their Linux desktop to use KDE as the default desktop in their next SSO session.
- For RHEL/CentOS 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 disabled 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.
For RHEL/CentOS 6:
sudo yum install wiresharkFor Ubuntu 20.04/18.04/16.04:
sudo apt install tsharkFor SLED/SLES 12:
sudo zypper install wireshark
- 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
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 perform the following steps:
- Download the USB VHCI source code from https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/.
- To compile the VHCI driver source code and install the resulting binary on your Linux system, use the commands in the table that follows these steps.
For example, if you unpack the installation file, VMware-horizonagent-linux-x86_64-<version>-<build-number>.tar.gz, under the /install_tmp/ directory, the full-path_to_patch-file is /install_tmp/VMware-horizonagent-linux-x86_64-<version>-<buildnumber>/resources/vhci/patch/vhci.patch and the patch command to use is
# patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-<version>-<build-number>/resources/vhci/patch/vhci.patch
|Linux Distribution||Steps to Compile and Install USB VHCI Driver|
| Compile and install the VHCI drivers.
# tar -xzvf vhci-hcd-1.15.tar.gz # cd vhci-hcd-1.15 # patch -p1 < full-path_to_patch-file # make clean && make && make install
SLED/SLES 12 SP2
In addition, observe the following 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 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 20.04/18.04/16.04 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.
# touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
- 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.