Xen:辅助 GPU 直通后 domU 上的图形输出

Xen:辅助 GPU 直通后 domU 上的图形输出

我已经完成了到 Linux domU 的辅助 GPU 直通,但我不知道如何从辅助 GPU 输出 Xorg。

dom0 使用 Intel 集成显卡。我正在通过 AMD 6450 访问 domU,因为这里有两次提到它:
https://wiki.xenproject.org/wiki/Xen_VGA_Passthrough_Tested_Adapters

我所做的简短清单:

  1. 在主板 BIOS 中启用 VT-d
  2. 添加intel_iommu=on到 dom0 GRUB
  3. GPU及其音频子系统列入黑名单的模块
  4. modprobe xen-pciback
  5. xl pci-assignable-add _______对于 GPU 及其音频子系统
  6. 将两个 PCI ID 添加到 Xen 配置文件中:pci = [ '_____', '_____' ]
  7. 在 domU 中启动并安装 Linux

当我启动时,在执行上述步骤后,我收到一条错误消息:
libxl: error: libxl_pci.c:1151:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01.00.0
尽管出现上述错误,当我lspci -nnk在 domU 上运行时,它显示 GPU 和音频子设备,包括这些行:
Kernel driver in use: radeon
Kernel driver in use: snd_hda_intel
Also, of course, a line for the主 domU 虚拟 GPU:
Kernel driver in use: cirrus

然后,如果我将 VGA 或 DVI 电缆从通过的 GPU 连接到显示器,显示器将保持打开状态(绿色电源按钮)并显示深灰色屏幕。而通常情况下,当显示器检测到没有输入时,它会直接进入待机状态(橙色电源按钮)。所以有某种GPU输出。

如果我通过VNCstartx运行xrandr,似乎没有任何物理监视器的迹象,似乎只有虚拟化的VNC/cirrus监视器。

如果我添加gfx_passthru=1到配置文件,它总是在启动时失败。添加时出现的第一条错误消息gfx_passthru=1是:
libxl: error: libxl_dm.c:1302:libxl__build_device_model_args_new: unable to detect required gfx_passthru_kind

在我使用虚拟化之前,要将输出从主/辅显卡切换到另一个,我通常只需更改 BIOS 中的设置,Linux 就会随之改变。所以 Xorg + domU 对我来说是非常不同的领域。

有谁知道在此之后我如何通过 domU 中的辅助 GPU 输出 Xorg ?各种在线 GPU 直通指南仅涵盖 Windows。

更新

在 StrongBad 的回应之后,我已经从 Debian wiki domU 从 Arch domU 迁移到 Debian 8.8,因为fglrx官方 Arch 存储库中已经不再有这个版本了。

然而,与 Arch domU 不同的是,当直通的 GPU 连接到显示器时,Debian domU 没有神秘的深灰色显示器输出和常亮的绿色电源按钮。

尽管如此,我还是做了以下事情:

  1. 已安装fglrx
  2. sudo aticonfig --initial
  3. 将四行添加到/etc/xorg.conf 来自 Debian 维基

然而,当我startx从 VNC TTY 运行时,它就崩溃了。第一条错误消息Xorg.0.log指出:
(EE) fglrx(0): Failed to open CMMQS connection

答案1

看起来你已经走得很远了。我或多或少成功地获得了与 Xen 4.4.0(以及一些更高版本)一起使用的辅助 VGA 直通功能。我在使用 4.7 版本时遇到了麻烦,但从未真正尝试过调试它。如果我没记错的话,在我的工作系统中,我也遇到了如下错误:

libxl: error: libxl_pci.c:1151:libxl__device_pci_reset: The kernel doesn't support reset from sysfs for PCI device 0000:01.00.0

在尝试让二级直通工作时,我问了一个关于 Xen 列表的问题。我有两个永远无法解决的问题。首先是TTY 位于主设备上所以我看不到任何启动消息,只能使用 X 会话。第二个问题是我只能使用专有的催化剂驱动程序。您似乎正在尝试使用 Radeon 驱动程序,因此这可能是您的问题。

我很确定gfx_passthru=1仅用于主要直通,因此您可能不想要它。我在 Xen 邮件列表上询问了主直通和辅助直通之间的区别(除了很多痛苦之外)。这回复曾是:

将接口作为主要接口的唯一优点(FWIW,我从未真正见过这项工作)是,在这种情况下,您可以在加载 GPU 之前看到 SeaBIOS POST 屏幕和 domU 操作系统启动进度

相关内容