Linux Virtual Delivery Agent

非仮想化GPU

Linux VDAのドキュメントでは、非仮想化GPUとは次を指します:

  • リモートPCアクセスのシナリオで使用されるGPU
  • ハイパーバイザーから渡されたGPU

この記事では、非仮想化GPUのサポートに関する情報について説明します。

NVIDIA Capture SDK for LinuxをサポートするNVIDIA GPUでHDX 3D Proを有効にする

NVIDIA Capture SDK for LinuxをサポートするNVIDIA GPUの場合、Linux VDAのインストール時にCTX_XDL_HDX_3D_PROYに設定するだけでHDX 3D Proを有効にできます。追加の構成は必要ありません。HDX 3D Proを有効にすると、ハードウェアアクセラレーションがデフォルトで有効になります。

NVIDIA Capture SDK for LinuxをサポートしていないNVIDIA GPUおよびAMDやIntelなどの他のメーカーのGPUと互換性がある

注:

このシナリオでは、ソフトウェアエンコーディングのみがサポートされます。

手順1:Linux VDAのインストール時にCTX_XDL_HDX_3D_PROをYに設定する

環境変数については、「手順8:Runtime Environmentをセットアップしてインストールを完了する」を参照してください。

手順2:Xdamageをインストールする

たとえば、sudo apt-get install -y libxdamage1を実行すると、XDamageをUbuntu 20.04にインストールできます。通常、XDamageはXServerの拡張機能として存在しています。

手順3:次のコマンドを実行してXDamageを有効にする

/opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_DWORD" -v "XDamageEnabled" -d "0x00000001" --force
<!--NeedCopy-->

手順4:Xorg構成ファイルを変更する

次の4つのテンプレート構成ファイルは、/etc/X11にあります。接続されているモニターの数に基づいて、名前に対応する数字を含むテンプレート構成ファイルの1つを変更します。たとえば、モニターが1つだけ接続されている場合は、名前に数字1を含むテンプレート構成ファイル(ctx-driver_name-1.conf)を変更します。2つのモニターが接続されている場合は、名前に数字2を含むテンプレート構成ファイル(ctx-driver_name-2.conf)を変更します。

  • ctx-driver_name-1.conf
  • ctx-driver_name-2.conf
  • ctx-driver_name-3.conf
  • ctx-driver_name-4.conf

ctx-driver_name-1.conf を例として使用しながら、以下の手順に従ってテンプレート構成ファイルを変更します:

  1. driver_name は、実際のドライバー名で置き換えてください。

    たとえば、ドライバー名がintelの場合は、構成ファイル名をctx-intel-1.confに変更できます。

  2. ビデオドライバー情報を追加します。

    各テンプレート構成ファイルには、「Device」という名前のセクションがあり、コメントアウトされています。このセクションでは、ビデオドライバー情報を記述します。ビデオドライバー情報を追加する前に、このセクションを有効にします。このセクションを有効にするには:

    1. GPUの製造元から提供されているガイドを参照して構成情報を確認します。ネイティブ構成ファイルを生成できます。ネイティブ構成ファイルを使用して、GPUがローカル環境で動作できることを確認します。

    2. ネイティブ構成ファイルの[Device]セクションを ctx-driver_name-1.conf にコピーします。

  3. 次のコマンドを実行して、手順1で設定した構成ファイル名をLinux VDAが認識できるようにレジストリキーを設定します。

    /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\XDamage" -t "REG_SZ" -v "DriverName" -d "intel" --force
    <!--NeedCopy-->
    

リモートPCアクセスVDAのモニターブランキング

Linux VDAは、非仮想化GPUを使用するリモートPCアクセスVDAの物理モニターブランキングをサポートしています。

この機能をサポートする完全にテスト済みのLinuxディストリビューションには、Ubuntu 20.04およびDebian 11が含まれます。

この機能はデフォルトでは無効になっています。有効にするには、次の2つの手順を実行します:

  1. 使用するLinuxディストリビューションに応じて、evdi-dkmsパッケージをインストールします:

    sudo apt install evdi-dkms
    <!--NeedCopy-->
    
  2. EVDIへのグラフィックディスプレイのオフロードを有効にします:

    /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "Evdi" -d "0x00000001" --force
    <!--NeedCopy-->
    
  3. IntelのGPUを使用している場合は、ディスプレイマネージャーを無効にします。無効にしない場合、ディスプレイマネージャーによって占有され、CitrixリモートセッションでIntelのGPUが使用できなくなります。

    sudo systemctl disable --now gdm
    <!--NeedCopy-->
    

トラブルシューティング

グラフィック出力がないか文字化けする

ローカルで3Dアプリケーションを実行でき、すべてを適切に構成しているのにグラフィックが出力されないまたはグラフィック出力がおかしい場合、原因はバグです。/opt/Citrix/VDA/bin/setlogを使用してGFX_X11をverboseに設定することでデバッグ用にトレース情報を収集します。