Ala*_*ler 3 multiple-monitors nvidia xorg multi-gpu ubuntu-16.04
拥有一个多显示器扩展显示器,显示器位于两个相同的 GPU 上。
测试了每个 GPU 及其所有显示端口。(成功)
注意:每个 GPU 有 1 个显示器、1 个 HDMI 和 2 个 DVI 端口。
测试 Nvidia X Server 在同时插入时是否可以看到两个 GPU。(成功)
注意:默认情况下禁用一个 GPU。
我已尝试使用 xorg.conf 文件进行多种配置。我得到最多试验的最接近成功的是:
#xorg.file for 6-screen, 2-GPU setup
###############################################################
# Mouse Configuration options
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
# Keyboard Configuration options
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
###############################################################
# Monitor Configuration options
Section "Monitor"
Identifier "Monitor0"
VendorName "Dell, Inc."
ModelName "DELL E207WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Dell, Inc."
ModelName "DELL E207WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
EndSection
Section "Monitor"
Identifier "Monitor2"
VendorName "Dell, Inc."
ModelName "DELL E207WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
EndSection
Section "Monitor"
Identifier "Monitor3"
VendorName "Dell, Inc."
ModelName "DELL E207WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
EndSection
Section "Monitor"
Identifier "Monitor4"
VendorName "Dell, Inc."
ModelName "DELL E2009W"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
EndSection
Section "Monitor"
Identifier "Monitor5"
VendorName "Dell, Inc."
ModelName "DELL E2009W"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
EndSection
################################################################
# GPU Configuration options
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 970"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 970"
BusID "PCI:2:0:0"
EndSection
################################################################
# device & monitor bindings configuration options
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
Monitor "Monitor1"
Monitor "Monitor2"
Monitor "Monitor3"
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DVI-I-1: nvidia-auto-select +1680+0, HDMI-0: nvidia-auto-select +3360+0, DP-1: nvidia-auto-select +5040+0, DVI-D-0: nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor4"
Monitor "Monitor5"
Option "Stereo" "0"
Option "metamodes" "DVI-I-1: nvidia-auto-select +1680+1050, DVI-D-0: nvidia-auto-select +3360+1050"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
#############################################################
# Xinerma & Compsite extensions
Section "Extensions"
Option "Composite" "Disable"
EndSection
##############################################################
# Screen bindings configuration options
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 1050
Screen 1 "Screen1" Above "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "1"
EndSection
###########################################################
# Unused section
Section "Files"
EndSection
Run Code Online (Sandbox Code Playgroud)
这不是一个无限登录循环问题。无限登录循环是我的问题的症状。
有几个无限循环问题/答案,它们假设您犯了一个错误并希望通过重置为默认值来“修复”问题。这里有几个重置为默认“修复”的不是我的问题。
我不想要重置为默认设置,并在每次尝试之后可以在我的系统恢复到工作状态上一个显卡。我在问如何进一步更改设置/配置以实现我的目标(没有登录循环)?
好的,我通过一些广泛的研究和测试回答了我的问题。如果你有一个多 GPU、多显示器系统,你想要一个统一的桌面(这意味着窗口会吸附到显示器,并且可以跨显示器拖动程序窗口,而不管哪个显示器在哪个 gpu 上)。那么简短的回答是 Nvidia 显卡的 SLI/base Mosaic。
但是,除非您花费 60 多个小时阅读文档并与他人交谈(这就是我所做的),否则会丢失多个信息点。
我将提供多个链接和澄清点,以帮助解决其他人的挫折和努力。理解所有命令和建议来自 Ubuntu 16.04、Unity DE、Nvidia Geforce 驱动程序 v380+,可能不适用于其他系统和硬件。
之间有几个[错误]沟通点:
使用 时nvidia-settings,Nvidia 将配置并向 x 服务器和 RandR 发送错误信息,然后在内部自行处理逻辑。
Nvidia 有自己的 xinerama 与 X 服务器 xinerama 分开。如果你在 xorg.conf 文件中启用了 xinerama,那是 X 服务器自己的 Xinerma 而不是 Nvidia 的(所以如果你试图通过nvidia-settings.
Nvidia 将所有显示器置于 1 个屏幕下,并将此屏幕作为统一桌面呈现给 X 服务器,同时使用其自己的内部 xinerama 逻辑让 RandR 能够正确地看到单独的显示器。
nvidia-settings管理桌面的自然方式(IE 禁用 Nvidia 的内部 xinerama)。因此,这将要求在 xorg.conf 文件中启用 X 服务器的 xinerama(然而,这往往会破坏我在开头提到的统一桌面期望之一)。Nvidia 结束 --> RandR & X 服务器解释
Nvidia 如何使用 xorg.conf 文件并不反映您在X server、X org和xorg.conf文档中阅读的内容。相反,您需要专注于阅读Nvidia文档。但是,当您访问文档时请注意 URL。'/README/' 之前的数字需要是您的 Nvidia 驱动程序版本号,即下面示例 URL 中的 '390.42'。许多谷歌对 nvidia-settings 文档的点击对于旧驱动程序来说确实是旧文档。如果您获得旧文档,这将使您陷入循环。例子:
http://us.download.nvidia.com/XFree86/Linux-x86_64/390.42/README/index.html
Section "Screen"一个 xorg.conf 文件的示例以进行澄清。Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "GPU-0.DFP-0: nvidia-auto-select +0+0,
GPU-0.DFP-4: nvidia-auto-select +1680+0,
GPU-1.DFP-0: nvidia-auto-select +3360+0,
GPU-1.DFP-4: nvidia-auto-select +5040+0,
Option "MultiGPU" "Off"
Option "SLI" "on"
Option "BaseMosaic" "on"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Run Code Online (Sandbox Code Playgroud)
metamode可以特定于要使用的 gpu 和端口。MultiGPU不是指你主板上的显卡数量。一个不那么模棱两可的Section Screen是:
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "GPU-a0bd4a65-1c2b-f765-eeb2-db96b3f4b25a.GPU-0.DVI-I-1: nvidia-auto-select +0+0,
GPU-a0bd4a65-1c2b-f765-eeb2-db96b3f4b25a.GPU-0.DVI-D-0: nvidia-auto-select +1680+0,
GPU-a85ce4bc-1e9b-6275-2aee-0d1ed8bd7ce2.GPU-1.DVI-I-1: nvidia-auto-select +3360+0,
GPU-a85ce4bc-1e9b-6275-2aee-0d1ed8bd7ce2.GPU-1.DVI-D-0: nvidia-auto-select +5040+0"
Option "MultiGPU" "Off"
Option "SLI" "on"
Option "BaseMosaic" "on"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Run Code Online (Sandbox Code Playgroud)
Nvidia 结束 --> xorg.conf
所以最终的答案是在nvidia-settings用于我想要的统一桌面时需要 SLI Mosiac 。但是,如果它们不是 Quadro 或 NVS选择的 GPU 系列,它只允许在 2 个或更多 GPU 上启用三个屏幕。这不是因为我宝贵的 Geforce GTX 970 的技术无法处理它,而是因为 Nvidia 在代码中人为地限制了这一点,以推广他们的新 GPU。我可以从这个Nvidia 论坛和查看测试存储库中的源代码中注意到这一点。nvidia-settings
事实上,最初你可以在 2 个未选择的 GPU 上拥有超过 3 个屏幕,直到 296 驱动程序在那里他们强制更改。
如果您在没有适当 GPU 的情况下尝试任何方式,它将导致所有屏幕都显示在 RandR GUI 和 Nvidia 设置 GUI 中。但是,您会注意到除了三个监视器之外的所有监视器都将被禁用,并且只有在您禁用已启用的 3 个监视器中的一个时才能启用它们。
xrandr --version
xrandr --listproviders
sudo Xorg -version
sudo lspci -vvv |grep -i -A 20 nvidia
nvidia-smi
nvidia-xconfig --query-gpu-info
nvidia-settings
cat /var/log/Xorg.0.log
nvidia-xconfig -t
Run Code Online (Sandbox Code Playgroud)
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Dell, Inc."
ModelName "DELL E207WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Geforce GTX 970"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "GPU-a0bd4a65-1c2b-f765-eeb2-db96b3f4b25a.GPU-0.DVI-I-1: nvidia-auto-select +0+0,
GPU-a0bd4a65-1c2b-f765-eeb2-db96b3f4b25a.GPU-0.DVI-D-0: nvidia-auto-select +1680+0,
GPU-a85ce4bc-1e9b-6275-2aee-0d1ed8bd7ce2.GPU-1.DVI-I-1: nvidia-auto-select +3360+0,
GPU-a85ce4bc-1e9b-6275-2aee-0d1ed8bd7ce2.GPU-1.DVI-D-0: nvidia-auto-select +5040+0"
#GPU-a0bd4a65-1c2b-f765-eeb2-db96b3f4b25a.GPU-0.DP-1: nvidia-auto-select +1680+1050,
#GPU-a0bd4a65-1c2b-f765-eeb2-db96b3f4b25a.GPU-0.HDMI-0: nvidia-auto-select +0+1050,
#GPU-a85ce4bc-1e9b-6275-2aee-0d1ed8bd7ce2.GPU-1.HDMI-0: nvidia-auto-select +3360+1050,
#GPU-a85ce4bc-1e9b-6275-2aee-0d1ed8bd7ce2.GPU-1.DP-1: nvidia-auto-select +5040+1050"
Option "MultiGPU" "Off"
Option "SLI" "on"
Option "BaseMosaic" "on"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10148 次 |
| 最近记录: |