如何在连接的 2 个 GPU 中的 1 个上运行 X?

如何在连接的 2 个 GPU 中的 1 个上运行 X?

我的电脑上连接了 2 个 GPU,一个是 AMD Radeon HD 7770,另一个是 nVidia GeForce 8600GT,我想运行 X 服务器仅有的在 nVidia 卡上。

我怎样才能做到这一点?

编辑:由于我的 nVidia 卡无法使用,我将其换成了 Radeon HD 4770,虽然现在我想使用 HD 4770,但问题仍然存在。

这是输出lspci -nnk | grep -iEA3 vga

    01:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI   Device [1002:683d]
Subsystem: PC Partner Limited Device [174b:e215]
Kernel driver in use: fglrx_pci
Kernel modules: fglrx, radeon

   02:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI       Radeon HD 4770 [RV740] [1002:94b3]
Subsystem: XFX Pine Group Inc. Device [1682:2900]
Kernel modules: radeon
   02:00.1 Audio device [0403]: Advanced Micro Devices [AMD] nee ATI RV710/730 HDMI Audio [Radeon HD 4000 series] [1002:aa38]

这是输出,lspci -v相当长,所以我粘贴了它这里

答案1

普通的输出是什么lspci -v?(没有上面提到的 grep?)

确保您的 BIOS 设置为使用您想要用作 VGA 主卡的卡。它可能有一个选项,如“主视频:PCIE16-slot1、PCIE-slot2、..” 。确保将其设置为 NVidia 卡的插槽。

将模块列入黑名单可能会有效,但我想 Xorg 服务器仍会尝试在另一张卡上运行 vesa 驱动程序。另一种选择可能是使用 pci-stub 驱动程序从本质上“隐藏”Linux 上的设备。请参见此处:

http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM

..您可能需要将这些命令添加到启动时运行的脚本中。

如果失败,您需要自定义 /etc/X11/xorg.conf 来强制 xserver 仅在一个 GPU 上运行。否则,Xorg 服务器将扫描 PCI 总线并加载它找到的任何驱动程序并(大概)尝试使用它们。执行man xorg.conf然后运行Xorg -configure以在当前目录中生成 xorg.conf.new。然后从生成的数据中进行编辑,特别注意设备部分下的 BusID 字段。然后查看配置的“屏幕”部分,并删除任何引用您不想使用的设备(可能是 Card0 或 Card1)的屏幕。

但是,您可能需要重新考虑您的用例。从您的评论中:

我想使用 HD 4770 和用于 X 的 radeon 驱动程序以及用于 Windows 虚拟机的 HD 7770,或者仅使用 HD 4770 而忽略 HD 7770。

尽管这看起来简单,但要求非常高。问题是,您需要一个具有 IOMMU 的系统,该系统可以支持使用硬件虚拟化重新路由 PCI(-E) 总线(这需要 CPU、BIOS 和芯片组支持)。很少有主板能够提供所需的全面支持(大多数主板的 BIOS 表都已损坏)。以下是某人尝试让他们的华硕主板与 VirtualBox 配合使用并遇到 BIOS 问题的情况:

https://unix.stackexchange.com/questions/56777/enabling-iommu-in-the-kernel-for-graphics-card-pass-through

即使系统的 IOMMU 足以支持网卡直通等功能,在使用视频卡时也会失败,因为由于遗留原因,视频卡仍然被 pci 总线视为“特殊”卡(特别是 BIOS 标记的主卡)。

否则,您只能使用实验性的黑客手段对各种虚拟机管理程序进行攻击,试图使用 paravirt PCI 直通支持使此类事情正常工作。Xen 声称支持在非主客户机中使用 Radeon 卡(并使用其 PCIback 驱动程序隐藏)。他们还声称能够将英特尔卡直通给客户机,即使它是主机上的主卡。我个人从未让它工作过。由于缺乏文档,在这种情况下 NVidia 卡总是更难处理。VMWare、KVM 或 virtualbox 可能对此有更好的支持,我不知道。

您可以在这里找到有关 Xen 图形直通的信息: http://wiki.xen.org/wiki/Xen_VGA_Passthrough

真的,如果您没有功能齐全的 IOMMU 支持,请放弃尝试运行带有视频卡直通的 VM,以免给自己带来痛苦。

相关内容