![如何在 GPU 上的给定输出(或所有输出)上强制显示内核启动消息?](https://linux22.com/image/1505306/%E5%A6%82%E4%BD%95%E5%9C%A8%20GPU%20%E4%B8%8A%E7%9A%84%E7%BB%99%E5%AE%9A%E8%BE%93%E5%87%BA%EF%BC%88%E6%88%96%E6%89%80%E6%9C%89%E8%BE%93%E5%87%BA%EF%BC%89%E4%B8%8A%E5%BC%BA%E5%88%B6%E6%98%BE%E7%A4%BA%E5%86%85%E6%A0%B8%E5%90%AF%E5%8A%A8%E6%B6%88%E6%81%AF%EF%BC%9F.png)
我在一台机器 (GTX770) 上使用 2 个 GPU,并且有 2 个屏幕连接到 2 个输出 (DVI1 和 DVI2)。我无法决定将一个屏幕插入一个 GPU 上,将另一个屏幕插入另一个 GPU 上(出于充分的理由... ;-))。
我们将 MS 命名为主屏幕:最终用户与其交互。我们将 TS 命名为另一个屏幕(技术屏幕,我们的系统使用它来处理技术内容)。
我的问题是:当系统启动(Linux 版本 3.1.9-1.4-desktop(geeko@buildhost)(gcc 版本 4.6.2(SUSE Linux))时,内核启动消息有时会显示在 MS 上,有时则会显示在 TS 上。
我希望它们始终显示在 MS 上,因为当启动失败时,我不能让用户面对黑屏(紧急模式显示在 TS 上,最终用户看不到)。
一些额外的信息: - 我谈论的是 X 启动之前内核的消息。 - 当启动消息显示在 TS 上时,我在 Xorg 日志中看到:
[ 17.203] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:2:0:0
[ 17.203] (--) NVIDIA(0): CRT-0
[ 17.203] (--) NVIDIA(0): DFP-0
[ 17.203] (--) NVIDIA(0): DFP-1
[ 17.203] (--) NVIDIA(0): DFP-2
[ 17.203] (--) NVIDIA(0): DFP-3 (boot)
[ 17.203] (--) NVIDIA(0): DFP-4
并且我已经检查过 DFP-3 是否是 TS(通过 nvidia-settings:如果我更改 DFP-3 的颜色曲线,TS 会受到影响)。 - 当启动消息显示在 MS 上时,我在 Xorg 日志中看到:
[ 17.203] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:2:0:0
[ 17.203] (--) NVIDIA(0): CRT-0
[ 17.203] (--) NVIDIA(0): DFP-0
[ 17.203] (--) NVIDIA(0): DFP-1
[ 17.203] (--) NVIDIA(0): DFP-2
[ 17.203] (--) NVIDIA(0): DFP-3 (boot)
[ 17.203] (--) NVIDIA(0): DFP-4
=> 相同 我不确定,但我相信在上述两种情况下主板启动画面都显示在 TS 上。但有时它会显示在 MS 上(我没有这种情况的 Xorg 日志)。
在上述两种情况下,DFP-3 都是相同的屏幕 (TS):
[ 17.888] (--) NVIDIA(0): DFP-3 Name Aliases:
[ 17.888] (--) NVIDIA(0): DFP
[ 17.888] (--) NVIDIA(0): DFP-3
[ 17.888] (--) NVIDIA(0): DPY-10
[ 17.888] (--) NVIDIA(0): DVI-D-0
[ 17.888] (--) NVIDIA(0): DVI-D-0
我在这里迷茫了:我想说,因为 NVIDIA 命名似乎很稳定,所以可能是 BIOS 发送了不同的参数……但我不知道。也许屏幕上“你好,我在这里,我的名字是……我的 edid 是……”消息的顺序不稳定,NVIDIA 设备选择第一个接收“你好”的输出作为“启动输出”……
我想要实现的目标: - 能够修复启动消息的给定输出(DVI-D-0) - 或者在两个屏幕上显示启动消息。
感谢您读到这里。如果您有解决方案,我将不胜感激!
我尝试了一些内核选项(例如 video=DVI-D-0:d)但无济于事。
当然,如果您需要更多配置详细信息,我很乐意为您提供帮助!
答案1
我得到了类似的东西。
我有两张 NVidia 卡:
- GeForce GTX 960,插入两台显示器:
- DP-4:华硕PB287Q
- HDMI-0:三星(KS-8000)
- GeForce GTX 560 Ti,未插入任何显示器。它也在 X(/etc/X11/xorg.conf)中被禁用,并且不起作用。
在启动过程中,我没有收到主显示器(PB287Q,插入 Displayport-4)的任何显示信号。我需要使用三星电视来观察启动顺序。
此外,当 X 窗口管理器(lightdm,我在 Ubuntu 16.04 上用的是 lightdm)启动时,它总是默认为三星电视,尽管我尝试强制将华硕显示器作为主显示器(在 xorg.conf 中,并使用 nvidia-settings 配置工具),并让两个显示器无差别地互相镜像。
Asus 显示器有一个选项,可以选择“DisplayPort Stream”1.1 或 1.2。我以为选择 1.2 将有助于将其识别为主显示器。不幸的是,这根本不起作用。
当且仅当 HDMI 被拔出时(即使屏幕没有通电),启动序列显示才会发送到 DisplayPort。