内部的にnvidia-settings
(sudo
昇格された権限で実行)2番目のXスクリーンを操作することはできません。以下は、私が試したもののステップバイステップの説明です。
- 左側の「X Server Display Configuration」を選択します。
- セカンダリディスプレイ(受信機に接続されているディスプレイ)を選択してください。
- 「設定」ドロップダウンリストから「新しいX画面(Xを再起動する必要があります)」を選択します。
- 「適用」を選択してください
- 設定をX設定ファイルに保存する必要があるという「適用できない」ダイアログボックスが表示されたら、「適用可能」を選択します(その後、変更を保持するには15秒以内に「OK」を選択する必要があります)。
- 「Xプロファイルに保存」と「保存」を選択します。
変更を適用するためにXサーバーを再起動するためにコンピュータを再起動し、次の方法でXサーバープロセスを再起動するなど、さまざまな方法を試しました。
sudo systemctl restart display-manager
何度も試してもX画面は1つだけです。systemd
日記帳の内容を確認してみましたjournalctl -e _COMM=gdm-x-session
。以下は興味深い抜粋です。
(II) NVIDIA(0): Validated MetaModes:
(II) NVIDIA(0): "DP-0:nvidia-auto-select+0+0"
(II) NVIDIA(0): Virtual screen size determined to be 2560 x 1440
(--) NVIDIA(0): DPI set to (108, 107); computed from "UseEdidDpi" X config
(--) NVIDIA(0): option
(EE) NVIDIA(G0): GeForce GTX 960 (GPU-0) already has an X screen assigned;
(EE) NVIDIA(G0): skipping this GPU screen
(EE) NVIDIA(G0): Failing initialization of X screen
以下はやや興味深い抜粋です。
(II) Loading sub module "glxserver_nvidia"
(II) LoadModule: "glxserver_nvidia"
(II) Loading /usr/lib64/xorg/modules/extensions/libglxserver_nvidia.so
(II) Module glxserver_nvidia: vendor="NVIDIA Corporation"
compiled for 1.6.99.901, module version = 1.0.0
Module class: X.Org Server Extension
(II) NVIDIA GLX Module 440.82 Wed Apr 1 19:47:36 UTC 2020
(II) NVIDIA: The X server supports PRIME Render Offload.
(WW) NVIDIA(0): Failed to initialize Base Mosaic! Reason: Only one GPU
(WW) NVIDIA(0): detected. Only one GPU will be used for this X screen.
あまり面白くない抜粋は次のとおりです。
(II) Initializing extension GLX
(II) Indirect GLX disabled.
(II) GLX: Another vendor is already registered for screen 0
メッセージに関してGeForce GTX 960 (GPU-0) already has an X screen assigned; skipping this GPU screen
Failing initialization of X screen
これが実際に根本的な原因である場合、Fedora 31を再インストールする前にこれが問題にならなかった理由を理解できません。現在、2つのGPUデバイスが定義されていることを確認し/etc/X11/xorg.conf
て確認しました。各X画面は1つのファイルにあります(同じ物理デバイスを指しています)。以下は専門です/etc/X11/xorg.conf
:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 440.82
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 2160
Screen 1 "Screen1" Above "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Dell S2716DG"
HorizSync 34.0 - 209.0
VertRefresh 30.0 - 144.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Unknown"
ModelName "DENON, Ltd. DENON-AVR"
HorizSync 30.0 - 136.0
VertRefresh 58.0 - 121.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 960"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 960"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-1"
Option "metamodes" "DP-0: nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "HDMI-0: nvidia-auto-select +0+0 {AllowGSYNC=Off}"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
システムメッセージ
- Fedora 31の新規インストール
- 「Fedora 31用RPM Fusion - Nonfree - NVIDIAドライバ」リポジトリのソフトウェアセンターを介してインストールされた独自のNvidiaドライバを含むグラフィックカード1枚(GeForce GTX 960)
- グラフィックカードに接続されたモニター2台
- DisplayPort経由のメインコンピュータディスプレイ(Dellコンピュータモニタに接続)
- セカンダリディスプレイ+ HDMI経由の音声出力(DENONレシーバーに接続)
質問
複数のXスクリーンを再操作する方法を知っている人はいますか?より有用な技術情報を提供できる場合はお知らせください(関連するシェルコマンドを提供していただきありがとうございます)。
追加の背景:2つのXスクリーンを使用した同期
コンピュータは、どのディスプレイが「デフォルト」として選択されたか、またはnvidia-settings
注文方法に関係なく、HDMIに接続されているすべてのディスプレイが一部のアクティビティに対して「デフォルト」であると主張しますxorg.conf
。 POSTメッセージ、GRUB2メニュー、その他の低レベルソフトウェアは常にHDMI(接続されている場合)を介して表示されるため、これはグラフィックカードファームウェアの機能だと思います。これは設定できません。
この「HDMIデフォルト」現象は、オペレーティングシステムを実行しているときにセカンダリモニタで新しいウィンドウを開くと深刻な問題を引き起こす可能性があります。受信機に接続されたテレビはほぼ常にオフになっており、受信機自体は音を提供するためにオンになっているため、新しいウィンドウは表示されません。 +shift
ショートカットを使用すると、テレビを開いてGUIを介してドラッグせずに、選択したモニタにアクティブなウィンドウを表示できることを学びました。厄介なことに加えて、時には新しく開いたウィンドウが無視されたり、ゲームなどの一部のフルスクリーンアプリケーションが正しいモニターに移動できなかったり、モニターが2つだけ拡張されたりすることがあります。これは重要なユーザビリティの問題です。window btn
arrow btn
ある時点で、私は次の解決策を思い出すことができました。新しいXスクリーンを作成し、各モニターに独自のXスクリーンを割り当てます。もちろん、これはオペレーティングシステムで発生した問題のみを解決しますが、かなり満足のいく解決策です。ゲームが実行され、ウィンドウにエラーは表示されません。
これで問題は、Fedoraを新しくインストールした後、Xサーバーに2つのXスクリーンを再度実行させることができないことです。
答え1
多くの研究や実験(.conf
ファイルやその他の手段を使用)後も、この問題の根本的な原因を特定することはできませんでした。 Fedoraを完全に再インストールし、独自のNvidiaドライバをインストールすることにさらに努力することで、最終的に2つのXスクリーンが再び機能するようになりました。この問題は、Nvidiaドライバを初めてインストールするときの微妙な違いに関連する可能性があります。私の最善の理論は、NvidiaドライバインストーラがXconfigユーティリティを実行するように求められたときに「はい」を選択した可能性があることです。残念ながら、私が選択した項目が覚えていないので、それが問題なのかわかりません。
以下では、最近インストールしたNvidiaドライバについて説明します。これにより、予想されるXスクリーン設定の動作が発生しました。このプロセスには、ドライバのインストールとは実際には関係ありませんが、実行した結果として記録されたいくつかの個人的な基本設定が含まれています(個人設定はそのように表示されます)。ステップ1は、新しくインストールした後に最初に行うことです。
Fedora GNU/Linuxに独自のNvidiaドライバをインストールする:
sudo dnf upgrade
- コンピュータを再起動してください
sudo shutdown -r now
sudo dnf install kernel-devel kernel-headers gcc make dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig
sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX
アイテムから削除しますrhgh quiet
(個人的な好みです)。- まだ
GRUB_CMDLINE_LINUX
アイテムを追加rd.driver.blacklist=nouveau
してnouveau.modeset=0
- その行
GRUB_TIMEOUT
の後に新しい行 ""を追加しますGRUB_TIMEOUT_STYLE=menu
(個人的な好みです)。 :wq
保存と終了vi
sudo grub2-editenv - unset menu_auto_hide
(これは私の個人的な好みです)- UEFIブートがあり、Fedoraを実行して使用するGRUB2構成を再生成しています。
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
(これは通常レガシーブートや他のディストリビューションとは異なります。) - コンピュータを再起動してください。
sudo shutdown -r now
(ディスプレイの解像度と品質が低下します。) sudo init 3
オペレーティングシステムをランレベル3に切り替える- メッセージに従ってログイン
cd
.run
Nvidiaからダウンロードしたファイルを含むディレクトリに移動します(私には~/Downloads
)。sudo ./NVIDIA_driver_file_name.run
sudo chmod +x [file_name]
(実行可能にするには実行する必要があるかもしれません)- メッセージが表示されたらするDKMSをインストールしてする32ビット互換ライブラリのインストール
- メッセージが表示されたら欲しくないXconfigユーティリティの実行
- コンピュータを再起動してください
sudo shutdown -r now
答え2
CentOS7とCentOS8の2つの画面で正常に使用された設定ファイルの例を見てみましょう。これはあなたが使用するFedoraと非常によく似ています。以前のシステム(CentOS5)ではxorg.confを使用していましたが、次のように入力します/etc/X11/xorg.conf.d/20-nvidia-graphics.conf
。
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" LeftOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
Screen 1
Option "UseDisplayDevice" "DFP-1"
Option "ConnectedMonitor" "DFP-0, DFP-1"
Option "CustomEDID" "DFP-1:/etc/X11/ADP361.bin; DFP-0:/etc/X11/0.bin"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
Screen 0
Option "UseDisplayDevice" "DFP-0"
Option "ConnectedMonitor" "DFP-0, DFP-1"
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
DefaultDepth 24
Option "metamodes" "DFP-1: 1200x1920 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
DefaultDepth 24
Option "metamodes" "DFP-0: 2048x2048 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
このファイルはマイコンピュータに2つの画面を作成し、各画面で異なるウィンドウマネージャを実行することもできます。私はあなたが両方で同じウィンドウマネージャを実行することになると思います。私の考えの秘密の1つは、すべての画面を1つに接続するXineramaを無効にすることです。
構成ファイルが正確になるまで調整する必要があります。私は私のサンプルが私にとって効果的であるため、良いスタートだと思います。
おそらく、read-edidを使用してモニターEDIDを読み取り、それをファイルとして提供できます。これにより、ドライバはファイルが提供するEDIDを使用するため、接続内容は重要ではないと思います。