Linux Virtual Delivery Agent

非 vGPU 显卡

非 vGPU 显卡是指不支持 NVIDIA 虚拟 GPU (vGPU) 解决方案的显卡。本文提供了有关使用非 vGPU 显卡的信息。

  • 先决条件

要使用非 vGPU 显卡,必须:

  • 安装 XDamage 作为先决条件。通常,XDamage 作为 XServer 的扩展存在。
  • 在安装 Linux VDA 时将 CTX_XDL_HDX_3D_PRO 设置为 Y。有关环境变量的信息,请参阅步骤 7:设置运行时环境以完成安装

配置

  • 修改 Xorg 配置文件

  • 对于 NVIDIA 显卡

如果使用的是 NVIDIA 驱动程序,则配置文件会自动安装和设置。

对于其他显卡

必须修改安装在 /etc/X11/ 下的四个模板配置文件:

  • 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. 请参阅显卡制造商提供的配置信息指南。可以生成本机配置文件。验证在未运行 Linux VDA 会话时,显卡是否可以使用本机配置文件在本地环境中工作。

    2. 将本机配置文件的“Device”部分复制到 ctx-driver_name-1.conf

  3. 运行以下命令设置注册表项,以便 Linux VDA 可以识别在步骤 1 中设置的配置文件名称。

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

启用非 vGPU 图形

默认情况下,非 vGPU 图形功能处于禁用状态。可以通过将 XDamageEnabled 值设置为 1 来运行以下命令启用此功能。

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

适用于远程 PC 访问 VDA 的显示器消隐

Linux VDA 支持对使用非 vGPU 显卡的远程 PC 访问 VDA 进行物理显示器消隐。此增强功能将图形显示卸载到可扩展虚拟显示接口 (EVDI) 虚拟显示器。

注意:

EVDI 虚拟显示器的最大数量因不同的分发版而异。

显示器消隐适用于 Ubuntu 20.04、Debian 11.3 和 Debian 10.9 VDA。要使用显示器消隐,请完成以下两个步骤:

  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 显卡,请禁用显示管理器。否则,Intel 显卡将被显示管理器占用,并且无法用于 Citrix® 远程会话。

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

故障排除

图形输出缺失或乱码

如果可以在本地运行 3D 应用程序且所有配置都正确,则图形输出缺失或乱码是 Bug 导致的。使用 /opt/Citrix/VDA/bin/setlog 并将 GFX_X11 设置为 verbose 以收集跟踪信息进行调试。

硬件编码不起作用

此功能仅支持软件编码。

非 vGPU 显卡