- Horizon agent for linux
- Supported Linux Versions for Horizon Agent
- Required Platform and Software Versions
- TCP/UDP Ports Used by Linux Virtual Machines
- Verify the Linux Account Used by Linux Virtual Machines
- Desktop Environment
- Network Requirements
- VHCI Driver for USB Redirection
- Install Horizon Agent for Linux on Ubuntu 22.04 LTS
- Requirements
- Instructions
- One Response to “Install Horizon Agent for Linux on Ubuntu 22.04 LTS”
Horizon agent for linux
You are using an outdated browser. Please upgrade your browser to improve your experience.
To install Horizon Agent for Linux, you must meet certain requirements for the Linux operating system, Linux virtual machine, VMware Horizon system components, and vSphere platform.
Supported Linux Versions for Horizon Agent
The following table lists the Linux operating systems that are supported for Horizon Agent.
Linux Distribution | Architecture |
---|---|
Ubuntu 20.04 and 18.04 | x64 |
Red Hat Enterprise Linux (RHEL) Workstation 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, and 8.3 | x64 |
Red Hat Enterprise Linux (RHEL) Server 7.8, 7.9, 8.2, and 8.3 | x64 |
CentOS 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8.0, 8.1, 8.2, and 8.3 | x64 |
SUSE Linux Enterprise Desktop (SLED) 12 SP3, 15 SP1, and 15 SP2 | x64 |
SUSE Linux Enterprise Server (SLES) 12 SP3, 12 SP5, 15 SP1, and 15 SP2 | x64 |
Note: Horizon Agent has dependency packages on some Linux distributions. See Install Dependency Packages for Horizon Agent for more information.
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.
TCP/UDP Ports Used by Linux Virtual Machines
Horizon 8 Agent and Horizon Clients use TCP or UDP ports for network access between each other and various Horizon 8 server components.
Source | Port | Target | Port | Protocol | Description |
---|---|---|---|---|---|
Horizon Client | * | Linux Agent | 22443 | TCP/UDP | Blast if Blast Security Gateway is used |
Horizon 8 Connection Server or Unified Access Gateway appliance | * | Linux Agent | 22443 | TCP/UDP | Blast if Blast Security Gateway is used |
Horizon 8 Agent | * | Horizon 8 Connection Server | 4001, 4002 | TCP | JMS SSL traffic |
Note: For more information on TCP and UDP ports used by clients, see the Horizon Security document and the Network Ports in VMware Horizon guide.
To allow users to connect to their Linux desktops, the desktops must be able to accept 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.
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 the 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
The following table 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 |
Linux OS built-in or AD user or LDAP user | Python script |
Desktop Environment
Horizon Agent for Linux supports multiple desktop environments on different Linux distributions. The following table lists the default desktop environments for each Linux distribution and the additional desktop environments supported by Horizon Agent for Linux.
Linux Distribution | Default Desktop Environment | Desktop Environments Supported by Horizon Agent for Linux |
---|---|---|
Ubuntu 20.04/18.04 | Gnome | Gnome Ubuntu, K Desktop Environment (KDE), MATE |
RHEL/CentOS 7.x | Gnome | Gnome, KDE |
RHEL/CentOS 8.x | Gnome | Gnome |
SLED/SLES | Gnome | Gnome |
Note: Gnome Display Manager (GDM) is the only display manager supported on Linux desktops. For more information, see Knowledge Base article 87459.
Single sign-on (SSO) for KDE and the MATE Desktop Environment only works when your Linux desktop is using the GDM3 greeter (login screen). You must install KDE and MATE using the commands listed in Commands to Install Desktop Environments.
When using RHEL/CentOS 7.x and Ubuntu distributions, SSO fails to unlock a locked KDE session. You must manually enter your password to unlock the locked session.
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.
# yum groupinstall "KDE Plasma Workspaces"
# apt install plasma-desktop
# apt install ubuntu-mate-desktop
# cd /usr/share/xsessions # mkdir backup # mv *.desktop backup # mv backup/gnome-classic.desktop ./
If you deactivate 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.
Network Requirements
- 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.
sudo yum install wireshark
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 listed in the following table.
For example, if you unpack the installation file 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 and the patch command to use is
# patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/vhci/patch/vhci.patch
# apt-get install make # apt-get install gcc # apt-get install libelf-dev
# 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
# yum install gcc-c++ # yum install kernel-devel-$(uname -r) # yum install kernel-headers-$(uname -r) # yum install patch # yum install elfutils-libelf-devel
# 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
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
sudo mokutil --import MOK.der
# rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2)
# zypper install --oldpackage kernel-devel- \ kernel-default-devel- kernel-macros- patch
# zypper install --oldpackage kernel-devel-4.4.21-90.1 kernel-default-devel-4.4.21-90.1 kernel-macros-4.4.21-90.1 patch
# tar -xzvf vhci-hcd-1.15.tar.gz # cd vhci-hcd-1.15 # patch -p1 < full-path_to_patch-file # mkdir -p linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core # cp /lib/modules/$(uname -r)/source/include/linux/usb/hcd.h linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core # make clean && make && make install
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
This command returns the paths to all the signing files located on the system. The signing file path for the USB driver resembles the following example.
/usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
# sudo / /sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko # sudo / /src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
# sudo mokutil --import MOK.der
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 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`
# tar xzvf vhci-hcd-1.15.tar.gz # cd vhci-hcd-1.15 # patch -p1 # cd ..
# cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
# touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
PACKAGE_NAME="usb-vhci-hcd" PACKAGE_VERSION=1.15 MAKE_CMD_TMPL="make KVERSION=$kernelver" CLEAN="$MAKE_CMD_TMPL clean" BUILT_MODULE_NAME[0]="usb-vhci-iocifc" DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host" MAKE[0]="$MAKE_CMD_TMPL" BUILT_MODULE_NAME[1]="usb-vhci-hcd" DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host" MAKE[1]="$MAKE_CMD_TMPL" AUTOINSTALL="YES"
# dkms install usb-vhci-hcd/1.15
Install Horizon Agent for Linux on Ubuntu 22.04 LTS
Today I’m going to show you the process to install Horizon Agent for Linux on Ubuntu 22.04 LTS. We’ll be installing the Horizon Agent for Linux from VMware Horizon 8 version 2209.
The official documentation from VMware is helpful, but unfortunately doesn’t provide all the information to get up and running quickly, which is why I’ve put together this guide as a “Quick Start”.
Please note, that this is just a guide to get to the point where you can install NVIDIA vGPU drivers and have installed the Horizon Agent for Linux on the VM. This will provide you with a persistent VM that you can use with Horizon, and the instructions can be adapted for use in a non-persistent instant clone environment as well.
Requirements
- VMware Horizon 8 (I’m running VMware Horizon 8 2209)
- Horizon Enterprise or Horizon for Linux Licensing
- Ubuntu 22.04 LTS Installer ISO (download here)
- Horizon Agent for Linux (download here)
- Functioning internal DNS
Instructions
- Create a VM on your vCenter Server, attached the Ubuntu 22.04 LTS ISO, and install Ubuntu
- Install any Root CA’s or modifications you need for network access (usually not needed unless you’re on an enterprise network)
- Update Ubuntu as root
apt update
apt upgrade
reboot - Install software needed for VMware Horizon Agent for Linux as root
apt install make gcc libglvnd-dev open-vm-tools open-vm-tools-dev open-vm-tools-desktop - Install your software (Chrome, etc.)
- Install NVIDIA vGPU drivers if you are using NVIDIA vGPU (this must be performed before install the Horizon Agent). Make sure the installer modifies and configures the X configuration files.
- Install the Horizon Agent For Linux as root (accepting TOS, enabling audio, and disabling SSO).
See Command-line Options for Installing Horizon Agent for Linux
./install_viewagent.sh -A yes -a yes -S no - Reboot the Ubuntu VM
- Log on to your Horizon Connection Server
- Create a manual pool and configure it
- Add the Ubuntu 22.04 LTS VM to the manual desktop pool
- Entitle the User account to the desktop pool and assign to the VM
- Connect to the Ubuntu 22.04 Linux VDI VM from the VMware Horizon Client
You should now be able to connect to the Ubuntu Linux VDI VM using the VMware Horizon client. Additionally, if you installed the vGPU drivers for NVIDIA vGPU, you should have full 3D acceleration and functionality.
One Response to “Install Horizon Agent for Linux on Ubuntu 22.04 LTS”
Very useful guide, thank you. Is there a guide that you recommend for setting up the Ubuntu OS to be used as a template? I found the fling for 18.x that includes OVA/scripts but can’t see one for 22.04.