看来 X 服务器只允许这台 PC 上有一个 X 屏幕,第二个屏幕Section "Screen" Identifier "Screen1"
什么也不做,但 GPU-1 及其连接的显示器即使无法激活也能被识别。我使用以下设置:
- RTX3090 开启
PCI:1:0:0
(GPU-0)DP-2
:三星 LC49G95T
- RTX3090 搭载
PCI:78:0:0
(GPU-1)HDMI-1-2
: 华硕 VG27AQL1AHDMI-1-1
:华硕 XG17A
- 监视器设置应该是这样的:(运行 arandr 脚本后显然会抛出 XRandR 失败错误消息
XRandR failed: XRandR returned error code 1: b'xrandr: Configure crtc 4 failed\n'
:)
- 重启后使用
nvidia-settings
的配置文件仍然没有用
- X 屏幕 0 必须包含
DP-2
和 X 屏幕 1,HDMI-1-1
以及HDMI-1-2
/etc/X11/xorg.conf.d/*
仅包含00-keyboard.conf
和30-touchpad.conf
,均包含InputClass
部分- 已尝试将
xorg.conf
文件移动到,xorg.conf.d
但不良影响仍然存在,两个 HDMI 显示器都无法激活。 - 我想使用
nfancurve
脚本来控制两个 GPU 的风扇速度,因此"Coolbits" "4"
- 令人惊讶的是,将三台显示器连接到一个 GPU 可以使它们可用,并且可以激活它们。
- 此外,将标识符替换
"Device0"
为"Device1"
,反之亦然,使得HDMI-1
和HDMI-2
监视器能够激活,但DP-1-2
只能被识别但不能被激活。好像这台机器不允许我使用一些GPU-1
- 我怀疑我的
xorg.conf
驱动程序缺少了某些东西(可能是 EDID 关闭了?),经过一番谷歌搜索,发现有一位用户也遇到了同样的“没有 X 屏幕 1”的问题,但升级驱动video-nvidia
程序后,X 服务器可以识别第二个 X 屏幕。不过,我不愿意升级(或降级)到 manjaro 的“测试版”驱动程序,也不知道该怎么做。
/etc/X11/xorg.conf
:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 465.31
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" 5120 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
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 "Samsung"
ModelName "Samsung LC49G95T"
HorizSync 357.0 - 357.0
VertRefresh 60.0 - 240.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor1"
VendorName "Asus ROG"
ModelName "AUS ASUS XG17A"
HorizSync 30.0 - 255.0
VertRefresh 48.0 - 240.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Screen 0
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVIDIA GeForce RTX 3090"
BusID "PCI:1:0:0"
# Option "UseDisplayDevice" "DP-2"
# Option "ConnectedMonitor" "DP-2"
Option "Coolbits" "4"
EndSection
Section "Device"
Identifier "Device1"
Screen 1
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "NVIDIA GeForce RTX 3090"
BusID "PCI:78:0:0"
# Option "UseDisplayDevice" "HDMI-1-2"
# Option "ConnectedMonitor" "HDMI-1-2, HDMI-1-1"
Option "Coolbits" "4"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "nvidiaXineramaInfoOrder" "DFP-5"
Option "Stereo" "0"
Option "metamodes" "5120x1440_120 +0+0 {AllowGSYNC=Off}"
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-1-2: nvidia-auto-select +0+0 {AllowGSYNC=Off}, HDMI-1-1: nvidia-auto-select +1440+0 {rotation=left}"
# Option "metamodes" "HDMI-1-1: 1920x1080_240 +2560+960 {rotation=left}, HDMI-1-2: 2560x1440_144 +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
~/.local/share/xorg/Xorg.1.log
:
https://pastebin.com/PQZV0Hiq
答案1
我找到了一个(可能的)解决方案,它包括将 nvidia-drm.modeset 内核参数设置为“1”,即nvidia-drm.modeset=1
,并使用 xrandr。
不再需要 xorg.conf,必须将其删除以免干扰 xrandr。
更多信息:https://forums.developer.nvidia.com/t/manjaro-linux-trouble-creating-additional-xscreen/200434