How to force the kernel boot messages on a given output on a GPU (or on all outputs)?

Hello.

After hours of internet search, I found a topic “quite” similar to mine on this forum, so I post on it, … and hope their is a solution.

I use 2 GPUs on a machine (GTX770), and I have 2 screens connected to the 2 outputs (DVI1 and DVI2).
I CANNOT decide to plug a screen on one GPU and the other on the other GPU (for good reasons… ;-) ).

Let’s name MS the main screen: the end-user interact with it.
Let’s name TS the other screen (technical screen, which is used by our system for technical stuff).

My issue: when the system boot (Linux version 3.1.9-1.4-desktop (geeko@buildhost) (gcc version 4.6.2 (SUSE Linux) ), sometime the kernel boot messages are displayed on MS, some other time, they are displayed on TS.

I want they are always displayed on MS, because when the boot fails, I can’t afford the user being in front of a black screen (the emergency mode is display on TS, not visible by end-user).

Some additional information:

  • I speak about the messages of the kernel, before X is started.
  • When the boot messages are displayed on TS, I have that in Xorg log:
    [ 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
    and I have check that DFP-3 is the TS (through nvidia-settings: if I change color curves of DFP-3, TS is impacted).
  • When the boot messages are displayed on MS, I have that in Xorg log:
    [ 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
    => THE SAME
    I’m not sure but I believe that the motherboard splash screen was displayed on TS in both cases above. But sometime its is displayed on MS (I don’t have the Xorg logs of that case).

In both above cases, DFP-3 is the same screen (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

Here I am lost: I would say that, because NVIDIA naming seems stable, it may be the BIOS that send a parameters different … but I don’t know.
Maybe the screens “hello i’m here, my name is… and my edid is…” messages order is not stable, and the NVIDIA device select the first output receiving the “hello” as “boot output”…

What I’d like to achieve:

  • either be able to fix a given output for boot messages (DVI-D-0)
  • or display the boot messages on both screens.

Thanks if you read me until here.
Thanks 1000x if you have a solution!!

I tried some kernel options (for instance video=DVI-D-0:d) but in vain.

Of course if you need more configuration details I’m available!

Do you see your system BIOS POST messages on TS sometimes, or does it only switch to TS after the kernel boots? Can you please generate and attach nvidia-bug-report.log.gz files from the good and bad cases?

Thanks for the quick answer! (17 minutes! it deserves an olympic gold medal).
But I left my work more quickly ;-)
I’ll make new tries tomorrow.

Hello again.

  • BIOS POST messages on TS, kernel boot messages on TS: nvidia-bug-report.BIOS_on_TS.kernel_msg_on_TS.log.gz
  • BIOS POST messages not seen (probabely on MS, but disapears before the screen actually “on”), kernel boot messages on MS: nvidia-bug-report.BIOS_not_seen.kernel_msg_on_MS.log.gz

nvidia-bug-report.BIOS_on_TS.kernel_msg_on_TS.log.gz (356 KB)
nvidia-bug-report.BIOS_not_seen.kernel_msg_on_MS.log.gz (362 KB)