Linux マシンでリアルタイム オーディオビデオ機能をサポートするには、V4L2Loopback ドライバをインストールする必要があります。リアルタイム オーディオビデオ機能は、ローカルに接続された Web カメラおよびオーディオ デバイスをクライアント システムからリモート セッションにリダイレクトします。

使用する Horizon Agent インストーラの形式に応じて、Horizon Agent のインストール前またはインストール後に、Linux マシンに V4L2Loopback ドライバのバージョン v0.12.5 をインストールする必要があります。詳細については、リアルタイム オーディオビデオ機能のインストールを参照してください。

まず、V4L2Loopback ソース コード パッケージのバージョン v0.12.5 を https://github.com/umlaeute/v4l2loopback/tags からダウンロードします。Linux ディストリビューションのインストール手順に従います。

Ubuntu/Debian マシンへの V4L2Loopback のインストール

  1. 必要な依存パッケージをインストールします。
    sudo apt-get install make
    sudo apt-get install gcc
    sudo apt-get install libelf-dev
  2. ソース コード パッケージから V4L2Loopback ドライバをコンパイルしてインストールします。
    unzip v0.12.5.zip
    cd v4l2loopback-0.12.5
    
    # For tarball installer, the [agent patch path] is the installer package path such as /root/VMware-horizonagent-linux-x86_64-2206-8.6.0-19639256
    # For RPM installer, the [agent patch path] is /usr/lib/vmware/viewagent
    patch -p1 < [agent patch path]/resources/v4l2loopback/v4l2loopback.patch
    make clean && make && make install
    
    # Install v4l2loopback-ctl
    make install-utils
    depmod -A
  3. (Linux カーネル バージョン 5.15.0 以降のみ)マシンにデフォルトでインストールされている無効な V4L2Loopback ドライバを、インストールした有効な V4L2Loopback ドライバでオーバーライドするように構成を変更します。
    1. /etc/depmod.d/ubuntu.conf 構成ファイルの最後に次の行を追加します。
      override v4l2loopback * extra
    2. modules.dep ファイルを再生成します。
      depmod -a
    3. 無効な V4L2Loopback ドライバを削除するには、次のいずれかを実行します。
      • マシンを再起動します。
      • 次のコマンドを実行します。
        sudo rmmod v4l2loopback
  4. (Ubuntu のみ)Ubuntu 仮想マシンで拡張ファームウェア インターフェイス (EFI) と UEFI セキュア ブートを有効にしている場合は、V4L2Loopback ドライバの署名を設定します。
    1. V4L2Loopback ドライバの 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. V4L2Loopback ドライバに署名します。
      sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der  /lib/modules/$(uname -r)/extra/v4l2loopback.ko
    3. UEFI セキュア ブートにキーを登録します。
      sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    4. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

RHEL マシンへの V4L2Loopback のインストール

  1. 必要な依存パッケージをインストールします。
    sudo yum install gcc-c++
    sudo yum install kernel-devel-$(uname -r)
    sudo yum install kernel-headers-$(uname -r)
    sudo yum install patch
    sudo yum install elfutils-libelf-devel
  2. ソース コード パッケージから V4L2Loopback ドライバをコンパイルしてインストールします。
    unzip v0.12.5.zip
    cd v4l2loopback-0.12.5
    
    # For tarball installer, the [agent patch path] is the installer package such as /root/VMware-horizonagent-linux-x86_64-2206-8.6.0-19639256
    # For RPM installer, the [agent patch path] is /usr/lib/vmware/viewagent
    patch -p1 < [agent patch path]/resources/v4l2loopback/v4l2loopback.patch
    make clean && make && make install
    
    # Install v4l2loopback-ctl
    make install-utils
    depmod -A
  3. (RHEL 9.x/8.x) V4L2Loopback ドライバの署名設定を構成します。
    1. V4L2Loopback ドライバの 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. V4L2Loopback ドライバに署名します。
      sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/extra/v4l2loopback.ko
    3. UEFI セキュア ブートにキーを登録します。
      sudo mokutil --import MOK.der
      注: このコマンドは、UEFI セキュア ブートのマシン所有者キー (MOK) のパスワードを設定するように要求します。
    4. vSphere コンソールで UEFI セキュア ブートを設定するには、システムを再起動します。詳細については、https://sourceware.org/systemtap/wiki/SecureBootを参照してください。

SLED/SLES マシンへの V4L2Loopback のインストール

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

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

  2. kernel-develkernel-default-develkernel-macrospatch パッケージをインストールします。たとえば、カーネル パッケージのバージョンが 4.4.21-90.1 の場合は、次のコマンドを使用します。
    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. ソース コード パッケージから V4L2Loopback ドライバをコンパイルしてインストールします。
    unzip v0.12.5.zip
    cd v4l2loopback-0.12.5
    
    # For tarball installer, the [agent patch path] is the installer package such as /root/VMware-horizonagent-linux-x86_64-2206-8.6.0-19639256
    # For RPM installer, the [agent patch path] is /usr/lib/vmware/viewagent
    patch -p1 < [agent patch path]/resources/v4l2loopback/v4l2loopback.patch
    make clean && make && make install
    
    # Install v4l2loopback-ctl
    make install-utils
    depmod -A
  4. V4L2Loopback ドライバの署名設定を構成します。
    1. V4L2Loopback ドライバの 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. V4L2Loopback ドライバの署名ファイルのパスを検索します。
      find / -name sign-file

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

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