选择控制台输出的显卡

选择控制台输出的显卡

我有一台 HP DL380G9 服务器,安装了两个独立的 nvidia 显卡,运行内核为 2.6.32-573 的 RHEL 6。两张卡具有相同的芯片组 (NV117) 但型号不同。 K620(插槽 5 地址 88:00.0)、K2200(插槽 4 地址 84:00.0)。 K2200 是 Linux 输出 plymouth 和 boot 消息的选定卡。

即使清除了 CMOS 和 BIOS 设置,交换卡也会导致 HP 服务器 BIOS 出现页面错误。换回卡即可解决问题。 BIOS 中没有用于选择主独立显卡的选项。 Linux 似乎会选择 PCI 总线地址最低的显卡。

是否有内核命令行选项或其他配置文件可以为 X11 之前的默认显示选择不同的显卡?

答案1

我最终发现这是通过一个名为 vga 仲裁器的内核功能完成的。无论 BIOS 将哪个 VGA 适配器用作主要适配器,最终都会被标记为“bootvga”设备。通过使用不需要的 VGA 适配器的存根驱动程序,可以强制 VGA 仲裁器选择并使用下一个 VGA 适配器。使用lspci -nn | grep VGA
将此参数添加到内核命令行来检索 pci 设备 IDpci-stub.ids=0000:0000

当我迁移到 RHEL 7 时,我将使用这个禁用的适配器进行 pci 直通。请记住,Nvidia 显卡还包含音频设备,并且最终与 VGA 设备位于同一 IOMMU 组中。两个 pci 设备 ID 都需要存根。

答案2

如果您对帧缓冲控制台没有任何意见,请参阅文档/fb/fbcon.txt

您可能必须将其添加到 Linux 内核命令行:

fbcon=map:1

答案3

我遇到了一个奇怪的情况,一个客户购买的服务器的 efi 驱动程序编写得很差,并且板载 vga 端口输出一个非常乱码的控制台。我尝试了各种补救措施,最后决定使用 GPU 进行视频输出。不幸的是,Pci-stub 并没有强制帧缓冲区不再使用板载芯片 - 它只是用 EFI VGA 取代它:

cat /proc/fb
0 EFI VGA
1 nouveaufb

为了强制视频传输到nouveaufb,您需要禁用efifbANDstub板载设备。附加到grub(使用您的设备 ID 代替我的设备 ID):

pci-stub.ids=8086:0412 video=efifb:off

Mkconfig 你的 grub 文件

grub2-mkconfig -o /etc/grub2-efi.cfg

很快!您的视频控制台现在正在输出到 nouveau:

cat /proc/fb
0 nouveaufb

相关内容