![如何在连接的 2 个 GPU 中的 1 个上运行 X?](https://linux22.com/image/830771/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%BF%9E%E6%8E%A5%E7%9A%84%202%20%E4%B8%AA%20GPU%20%E4%B8%AD%E7%9A%84%201%20%E4%B8%AA%E4%B8%8A%E8%BF%90%E8%A1%8C%20X%EF%BC%9F.png)
我的电脑上连接了 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 问题的情况:
即使系统的 IOMMU 足以支持网卡直通等功能,在使用视频卡时也会失败,因为由于遗留原因,视频卡仍然被 pci 总线视为“特殊”卡(特别是 BIOS 标记的主卡)。
否则,您只能使用实验性的黑客手段对各种虚拟机管理程序进行攻击,试图使用 paravirt PCI 直通支持使此类事情正常工作。Xen 声称支持在非主客户机中使用 Radeon 卡(并使用其 PCIback 驱动程序隐藏)。他们还声称能够将英特尔卡直通给客户机,即使它是主机上的主卡。我个人从未让它工作过。由于缺乏文档,在这种情况下 NVidia 卡总是更难处理。VMWare、KVM 或 virtualbox 可能对此有更好的支持,我不知道。
您可以在这里找到有关 Xen 图形直通的信息: http://wiki.xen.org/wiki/Xen_VGA_Passthrough
真的,如果您没有功能齐全的 IOMMU 支持,请放弃尝试运行带有视频卡直通的 VM,以免给自己带来痛苦。