Horizon Agent for Linux をインストールするには、Linux オペレーティング システム、Linux 仮想マシン、Horizon 8 システム コンポーネント、vSphere プラットフォームの特定の要件を満たす必要があります。

Horizon Agent でサポートされる Linux バージョン

次の表に、Horizon Agent でテスト済みで、サポートされている Linux オペレーティング システムを示します。

表 1. Horizon Agent でサポートされる Linux オペレーティング システム
Linux ディストリビューション アーキテクチャ
Ubuntu 18.04、20.04、22.04 x64
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、9.0 x64
Red Hat Enterprise Linux (RHEL) Server 7.8、7.9、8.4、8.6、および 9.0 x64
CentOS 7.6、7.7、7.8、7.9 x64
SUSE Linux Enterprise Desktop (SLED) 12 SP3、15 SP2、15 SP3 x64
SUSE Linux Enterprise Server (SLES) 12 SP3、12 SP5、15 SP2、15 SP3 x64
注: Horizon Agent は、一部の Linux ディストリビューションで依存パッケージを使用します。詳細については、 Horizon Agent 用依存パッケージのインストールを参照してください。

一部の機能は、Linux オペレーティング システムのサブセットでのみサポートされます。詳細については、このドキュメントで特定の機能を説明するセクションを参照してください。

install_viewagent.sh インストール スクリプトの --force パラメータを使用すると、テスト サポート マトリックスにない Linux ディストリビューションに Horizon Agent を強制的にインストールできます。Horizon Agent for Linux のインストール用コマンドライン オプションを参照してください。

必須のプラットフォームとソフトウェア バージョン

Horizon Agent for Linux をインストールして使用するには、環境が vSphere プラットフォーム、Horizon Connection Server、Horizon Client ソフトウェアの特定の要件を満たしている必要があります。

表 2. 必須のプラットフォームと VMware Horizon ソフトウェア バージョン
プラットフォームとソフトウェア サポートされているバージョン
vSphere プラットフォーム バージョン
  • vSphere 8.0 以降のリリース
  • vSphere 7.0 以降のリリース
  • vSphere 6.7 以降のリリース
  • vSphere 6.5 U1 以降のリリース
Horizon 8 環境
  • Horizon Connection Server 2209
Horizon Client ソフトウェア
  • Horizon Client 2209 for Android
  • Horizon Client 2209 for Windows
  • Horizon Client 2209 for Linux
  • Horizon Client 2209 for Mac
  • Horizon Client 2209 for iOS
  • Chrome および Firefox での HTML Access 2209
  • VMware Blast プロトコルをサポートするゼロ クライアント
    注: Teradici PCoIP ゼロ クライアントはサポートされていません。

Linux デスクトップで使用されるポート

接続セッションを有効にするには、Linux デスクトップが、Horizon Client デバイス、Unified Access Gateway、および Horizon Connection Server からの着信 TCP 接続をサポートする必要があります。

Ubuntu ディストリビューションでは、iptables ファイアウォールがデフォルトで構成されており、入力ポリシーが ACCEPT に設定されています。

RHEL および CentOS ディストリビューションでは、可能な場合、Horizon Agent インストーラ スクリプトが、入力ポリシーを ACCEPT にして iptables ファイアウォールを構成します。着信接続を確実にサポートするには、Blast ポート 22443 を介した新しい接続に対して、iptables の入力ポリシーが ACCEPT に設定されていることを確認します。

Blast Secure Gateway (BSG) を有効にすると、クライアント接続は Horizon Connection Server の BSG を介して Horizon Client デバイスから Linux デスクトップに送られます。BSG を有効にしない場合、Horizon Client デバイスは Linux デスクトップに直接接続されます。

Linux デスクトップで Horizon Agent が使用するポートの詳細については、『Horizon セキュリティ』ドキュメントとVMware Horizon のネットワーク ポート ガイドを参照してください。

Linux 仮想マシンにより使用される Linux アカウントの確認

次の表は、Linux 仮想マシンにより使用されるアカウント名とアカウント タイプを示しています。

表 3. アカウント名およびアカウント タイプ
アカウント名 アカウント タイプ 使用
ルート Linux OS に組み込み Java Standalone Agent、mksvchanserver、シェル スクリプト
vmwblast Linux Agent インストーラが作成 VMwareBlastServer
<現在のログイン ユーザー> Linux OS に組み込み、Active Directory ユーザー、または LDAP ユーザー Python スクリプト

デスクトップ環境

Horizon Agent for Linux は、異なる Linux ディストリビューションで複数のデスクトップ環境をサポートします。以下の表に、各 Linux ディストリビューションのデフォルトのデスクトップ環境と Horizon Agent for Linux でサポートされる他のデスクトップ環境の一覧を示します。
表 4. サポート対象のデスクトップ環境
Linux ディストリビューション デフォルトのデスクトップ環境 Horizon Agent for Linux でサポートされるデスクトップ環境
Ubuntu Gnome Gnome Ubuntu、K デスクトップ環境 (KDE)、MATE
RHEL 7.x/CentOS 7.x Gnome Gnome、KDE
RHEL 8.x/9.x Gnome Gnome
SLED/SLES Gnome Gnome
注: RHEL/CentOS 7.x または Ubuntu ディストリビューションを使用している場合、ロックされた KDE セッションを SSO でロック解除することはできません。パスワードを入力して、手動でロックされているセッションを手動でロック解除する必要があります。

サポートされている Linux ディストリビューションのいずれかで使用するデフォルト デスクトップ環境を変更するには、次の手順に従って、Linux デスクトップに適切なコマンドを使用する必要があります。

  1. デフォルトのデスクトップ環境の設定を使用して、サポートされている Linux ディストリビューションのオペレーティング システムをインストールします。
  2. 以下の表を参照して、特定の Linux ディストリビューションに適切なコマンドを実行します。
    表 5. デスクトップ環境のインストール コマンド
    Linux ディストリビューション 新しいデフォルトのデスクトップ環境 デフォルトのデスクトップ環境を変更するコマンド
    RHEL/CentOS 7.x KDE
    yum groupinstall "KDE Plasma Workspaces"
    Ubuntu KDE
    apt install plasma-desktop
    Ubuntu MATE 1.225
    apt install ubuntu-mate-desktop
  3. 新しいデフォルトのデスクトップ環境を開始するには、デスクトップを再起動します。
複数のデスクトップ環境がインストールされている Linux デスクトップで SSO を有効にした場合は、次の情報を使用して、SSO セッションで使用するデスクトップ環境を選択します。
  • Ubuntu、RHEL/CentOS 7.x の場合には、以下の表の情報を使用して、/etc/vmware/viewagent-custom.conf ファイルに SSODesktopType オプションを設定し、SSO で使用するデスクトップ環境を指定します。
    表 6. SSODesktopType オプション
    デスクトップ タイプ SSODesktopType オプションの設定
    MATE SSODesktopType=UseMATE
    GnomeUbuntu SSODesktopType=UseGnomeUbuntu
    GnomeFlashback SSODesktopType=UseGnomeFlashback
    KDE SSODesktopType=UseKdePlasma
    GnomeClassic SSODesktopType=UseGnomeClassic
  • RHEL 9.x/8.x で SSO ログイン セッションに Gnome Classic を使用する場合には、Gnome Classic スタートアップ ファイルを除く、すべてのデスクトップ スタートアップ ファイルを /usr/share/xsession ディレクトリから削除します。たとえば、次のコマンド セットを使用します。
    cd /usr/share/xsessions
    mkdir backup
    mv *.desktop backup
    mv backup/gnome-classic.desktop ./
    次の SSO セッションでデフォルトのデスクトップとして Gnome Classic を使用するには、初期セットアップの後、エンド ユーザーは Linux デスクトップからログアウトするか、システムを再起動する必要があります。

複数のデスクトップ環境がインストールされている Linux デスクトップで SSO を無効にした場合には、前述の手順を行う必要はありません。エンド ユーザーが Linux デスクトップにログインするときに、必要なデスクトップ環境を選択します。

ネットワーク要件

VMware Blast Extreme は、UDP ( ユーザー データグラム プロトコル) と TCP (伝送制御プロトコル) の両方をサポートします。ネットワーク条件は、UDP と TCP のパフォーマンスに影響を及ぼします。最高のユーザー エクスペリエンスを実現するには、ネットワーク条件に応じて UDP または TCP を選択します。
  • ローカル エリア ネットワーク (LAN) 環境など、ネットワーク条件が良好な場合には TCP を選択します。
  • パケット損失や遅延が発生するワイド エリア ネットワーク (WAN) 環境など、ネットワーク条件が良好でない場合には UDP を選択します。
Wireshark などのネットワーク アナライザ ツールを使用して、VMware Blast Extreme が TCP と UDP のどちらを使用するかを確認します。次の手順を行います。ここでは例として Wireshark を使用しています。
  1. Linux 仮想マシンに Wireshark をダウンロードして、インストールします。
    RHEL/CentOS の場合:
    sudo yum install wireshark
    Ubuntu の場合:
    sudo apt install tshark
  2. VMware Horizon Client を使用して、Linux デスクトップに接続します。
  3. ターミナル ウィンドウを開き、次のコマンドを実行します。VMware Blast Extreme が使用する TCP パッケージまたは UDP パッケージが表示されます。
    sudo tshark -i any | grep 22443
USB リダイレクトとクライアント ドライブのリダイレクト (CDR) 機能はネットワーク条件に依存します。パケット ロスや遅延でバンド幅に制限があるなど、ネットワーク条件が良好でないと、ユーザー エクスペリエンスが低下します。このような場合、次のいずれかが発生する可能性があります。
  • リモート ファイルのコピーが低速になる。この場合、サイズの小さいファイルを送信します。
  • USB デバイスがリモートの Linux デスクトップに表示されない。
  • USB データの転送が不完全になります。たとえば、サイズの大きいファイルをコピーした場合、元のファイルよりもサイズが小さくなる可能性があります。

USB リダイレクトのための VHCI ドライバ

注: VHCI ドライバの正しいインストール手順を決定するには、次のガイドラインに従います。
  • .tar.gz tar 形式インストーラを使用して Horizon Agent をインストールする場合は、まず tar 形式インストーラをダウンロードして解凍し、次に VHCI ドライバをインストールしてから、USB リダイレクト機能のインストール パラメータを指定して Horizon Agent をインストールする必要があります。
  • .rpm RPM インストーラを使用して Horizon Agent をインストールする場合は、まず Horizon Agent をインストールしてから VHCI ドライバをインストールし、USB リダイレクト機能を Horizon Agent 構成に追加する必要があります。

詳細については、Linux 仮想マシンでの Horizon Agent のインストールを参照してください。

USB リダイレクト機能は、USB VHCI (Virtual Host Controller Interface) カーネル ドライバに依存します。USB 3.0 と USB リダイレクト機能をサポートするには、次の手順を行い、VHCI ドライバをインストールする必要があります。

  1. https://sourceforge.net/projects/usb-vhci/files/linux%20kernel%20module/ から USB VHCI ソース コードをダウンロードします。
  2. Horizon Agent インストーラの形式に応じて、VHCI パッチ ファイルのフル パスを確認します。ガイドラインについては、次の例を参照してください。
    • (tar 形式インストーラ)tar 形式インストーラ VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx.tar.gz をダウンロードして /install_tmp/ ディレクトリに解凍した場合、full-path_to_patch-file/install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch です。
    • (RPM インストーラ)RPM インストーラ VMware-horizonagent-linux-YYMM-y.y.y-xxxxxxx.el8.x86_64.rpm をダウンロードして Horizon Agent をインストールした場合、full-path_to_patch-file/usr/lib/vmware/viewagent/resources/vhci/patch/vhci.patch です。
  3. VHCI ドライバのソース コードをコンパイルして、その結果のバイナリを Linux システムにインストールするには、以下の表のコマンドを使用します。コマンドの full-path_to_patch-file を前の手順で特定したファイル パスに置き換えます。
    たとえば、ファイル パスが /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxx/resources/vhci/patch/vhci.patch の場合、 patch コマンドは次のようになります。
    patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/vhci/patch/vhci.patch
表 7. USB VHCI ドライバのコンパイルとインストール
Linux ディストリビューション USB VHCI ドライバのコンパイルとインストールの手順
Ubuntu
  1. 依存パッケージをインストールします。
    apt-get install make
    apt-get install gcc
    apt-get install libelf-dev
  2. (Ubuntu 22.04) カーネル ヘッダー ファイルをインストールします。
    sudo apt-get install linux-headers-$(uname -r)
  3. VHCI ドライバをコンパイルし、インストールします。
    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
  4. 仮想マシンで拡張ファームウェア インターフェイス (EFI) と UEFI セキュア ブートを有効にしている場合は、VHCI ドライバの署名を設定します。
    1. VHCI ドライバの SSL キー ペアを作成します。
      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
    2. VHCI ドライバに署名します。
      sudo /usr/src/linux-headers-$(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/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    3. UEFI セキュア ブートにキーを登録します。
      sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    4. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

RHEL/CentOS 7.x

RHEL 8.x/9.x

  1. 依存パッケージをインストールします。
    yum install gcc-c++
    yum install kernel-devel-$(uname -r)
    yum install kernel-headers-$(uname -r)
    yum install patch
    yum install elfutils-libelf-devel
  2. VHCI ドライバをコンパイルし、インストールします。
    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
  3. (RHEL 9.x/8.x) VHCI ドライバが USB リダイレクトで正常に動作するようには、ドライバの署名を設定します。
    1. VHCI ドライバの SSL キー ペアを作成します。
      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
    2. VHCI ドライバに署名します。
      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
    3. UEFI セキュア ブートにキーを登録します。
      sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    4. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

SLED/SLES 12.x

SLED/SLES 15.x

  1. 現在のカーネル パッケージのバージョンを検索します。
    rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2)

    現在インストールされているカーネル パッケージの名前が出力されます。たとえば、パッケージ名が kernel-default-3.0.101-63.1 の場合、現在のカーネル パッケージのバージョンは 3.0.101-63.1 になります。

  2. kernel-develkernel-default-develkernel-macrospatch パッケージをインストールします。
    zypper install --oldpackage kernel-devel-<kernel-package-version> \
    kernel-default-devel-<kernel-package-version> kernel-macros-<kernel-package-version> 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
  3. VHCI ドライバをコンパイルし、インストールします。
    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
  4. (SLED/SLES 15.x) VHCI ドライバが USB リダイレクトで正常に動作するようには、ドライバの署名を設定します。
    1. VHCI ドライバの SSL キー ペアを作成します。
      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
    2. VHCI ドライバの署名ファイルのパスを検索します。
      find / -name sign-file

      このコマンドを実行すると、システム上にあるすべての署名ファイルへのパスが返されます。ドライバの署名ファイルのパスは、次のようになります。

      /usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
    3. VHCI ドライバに署名します。次のコマンドで、<sign-file-path> は、手順 4b で確認した署名ファイルのパスです。
      sudo /<sign-file-path>/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
      sudo /<sign-file-path>/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-hcd.ko
    4. UEFI セキュア ブートにキーを登録します。
      # sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    5. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

また、次のガイドラインに従ってください。

  • Linux カーネルが新しいバージョンが変更された場合は、VHCI ドライバを再コンパイルして再インストールする必要がありますが、Horizon Agent for Linux を再インストールする必要はありません。
  • また、Ubuntu システムの場合、次の例に類似した手順で動的カーネル モジュール サポート (DKMS) を VHCI ドライバに追加できます。
    1. カーネル ヘッダーをインストールします。
      apt install linux-headers-`uname -r`
    2. 次のコマンドを使用して、dkms をインストールします。
      apt install dkms
    3. VHCI TAR ファイルを展開し、パッチを適用します。
      tar xzvf vhci-hcd-1.15.tar.gz
      cd vhci-hcd-1.15
      patch -p1 <full-path_to_patch-file>
      cd ..
    4. 展開した VHCI ソース ファイルを /usr/src ディレクトリにコピーします。
      cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
    5. dkms.conf という名前のファイルを作成し、/usr/src/usb-vhci-hcd-1.15 ディレクトリに配置します。
      touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
    6. 次の行を 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"
    7. この VHCI ドライバを dkms に追加します。
      dkms add usb-vhci-hcd/1.15
    8. VHCI ドライバをビルドします。
      dkms build usb-vhci-hcd/1.15
    9. VHCI ドライバをインストールします。
      dkms install usb-vhci-hcd/1.15