GPU の特定の出力 (またはすべての出力) にカーネル ブート メッセージを強制表示するにはどうすればよいですか?

GPU の特定の出力 (またはすべての出力) にカーネル ブート メッセージを強制表示するにはどうすればよいですか?

私は 1 台のマシン (GTX770) で 2 つの GPU を使用しており、2 つの出力 (DVI1 と DVI2) に 2 つの画面を接続しています。1 つの画面を 1 つの GPU に接続し、もう 1 つの画面を別の GPU に接続することはできません (当然のことですが... ;-) )。

メイン画面を MS と名付けましょう。エンド ユーザーが操作する画面です。もう 1 つの画面 (技術的な内容のためにシステムが使用する技術画面) を 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 設定経由: 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 である可能性があると思いますが、わかりません。おそらく、画面の「hello i'm here、my name is... and my edid is...」というメッセージの順序は安定しておらず、NVIDIA デバイスは「hello」を受信した最初の出力を「ブート出力」として選択しているのでしょう...

実現したいこと: - ブート メッセージの特定の出力 (DVI-D-0) を修正できるようにするか、両方の画面にブート メッセージを表示する。

ここまで読んでくださってありがとうございます。解決策があれば1000倍感謝します!!

いくつかのカーネル オプション (たとえば、video=DVI-D-0:d) を試しましたが、無駄でした。

もちろん、さらに詳しい設定が必要な場合は、お気軽にお問い合わせください。

答え1

私も似たようなものを手に入れています。

私は 2 枚の NVidia カードを持っています:

  1. GeForce GTX 960、2 台のモニターを接続:
    • DP-4: ASUS PB287Q
    • HDMI-0: サムスン (KS-8000)
  2. GeForce GTX 560 Ti、モニターは接続されていません。また、X (/etc/X11/xorg.conf) でも無効になっており、介入しません。

起動中、メイン モニター (PB287Q、Displayport-4 に接続) に表示信号が届きません。起動シーケンスを観察するには、Samsung TV を使用する必要があります。

さらに、X ウィンドウ マネージャー (Ubuntu 16.04 では lightdm) が起動すると、Asus モニターをプライマリとして強制的に設定し (xorg.conf および nvidia-settings 構成ツールを使用)、両方のディスプレイを無差別にミラーリングするように試みたにもかかわらず、常にデフォルトで Samsung TV が設定されます。

Asus モニターには、「DisplayPort ストリーム」1.1 または 1.2 を選択するオプションがあります。1.2 を選択すると、プライマリ モニターとして識別しやすくなると思いました。残念ながら、これはまったく機能しません。

ブート シーケンスの表示は、HDMI が取り外されている場合にのみ (画面の電源が入っていない場合でも) DisplayPort に送信されます。

関連情報