我刚刚全新安装了 Ubuntu 14.04。我有 3 个 Nvidia Quadro 卡,为 3 个显示器供电。我使用 nvidia-settings 启用了这 3 个显示器:
*注意:除非我的声誉至少达到“10”,否则论坛不会允许我发布图片。我认为图片对于理解来说不是必需的,它只是表明 Nvidia 设置窗口中启用了所有三个显示器。如果您需要它,我可以将其 PM 给您。
重新启动后,所有三个显示器都在使用,但只有主显示器有桌面。我可以将鼠标移动到其他两个显示器上,但鼠标指针会变成“X”,我无法将窗口拖到它们上面。当我尝试将窗口拖到另一台显示器上时,桌面会表现得好像它们不存在一样,并尝试将窗口停靠在主显示器(桌面)的那一侧。显示器是黑色的,不显示任何 Unity 启动器或任何东西。这是我的 xorg.conf 文件:
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 304.117 (buildmeister@swio-display-x86-rhel47-01) Tue Nov 26 22:29:40 PST 2013
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 331.20 (buildd@roseapple) Mon Feb 3 15:07:22 UTC 2014
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
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/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 "Acer"
ModelName "Acer X223W"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: unknown, VertRefresh source: unknown
Identifier "Monitor1"
VendorName "Acer"
ModelName "Acer X223W"
HorizSync 0.0 - 0.0
VertRefresh 0.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: unknown, VertRefresh source: unknown
Identifier "Monitor2"
VendorName "Acer"
ModelName "Acer X223W"
HorizSync 0.0 - 0.0
VertRefresh 0.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro 600"
BusID "PCI:4:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro FX 580"
BusID "PCI:5:0:0"
EndSection
Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro FX 580"
BusID "PCI:9:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "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" "nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen2"
Device "Device2"
Monitor "Monitor2"
DefaultDepth 24
Option "Stereo" "0"
Option "metamodes" "nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
如果我查看系统设置->显示,则只会显示主显示器,它不会检测其他显示器。
以下是 /usr/lib/nux/unity_support_test --print 的输出:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro 600/PCIe/SSE2
OpenGL version string: 4.2.0 NVIDIA 304.117
Not software rendered: yes
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes
Unity 3D supported: yes
编辑于 2014 年 5 月 6 日:
在过去几天与 X11 的工作原理斗争并学习之后,我想我需要重申我的问题。我认为 Xinerama 是我需要使用的,在这台电脑上,我在 Ubuntu 12.04 上正确配置了它,没有任何问题,但 Unity 的更新破坏了一切;所以我升级到了 14.04。在我可以用 MIR 或 Wayland 替换 X11 之前,我希望让 Xinerama 与我当前的 Unity 版本(7.2.0)兼容。
当我在 xorg.conf 中启用 Xinerama 时,我可以登录并可以在所有三个屏幕上看到背景,但 Unity 无法加载;compiz 出现问题。如果我重新启动 Unity,我可以让桌面加载并打开 GUI 应用程序,但我无法将它们拖到其他显示器上。如果我尝试,它们不会在其他屏幕上呈现,尽管我仍然能够与它们交互并将它们拖回(只需记住我拖动和释放它们时鼠标的位置)。
有没有人成功让 Xinerama 与具有 3D 加速和 X11 支持的多台显示器和 GPU 配合使用?
是否有人知道诸如带有附加组件的马赛克模式之类的解决方法?
有没有一个可以替代 Unity/X11 的稳定且支持多显示器桌面的版本?
nouveau 驱动程序是否比 NVidia 驱动程序更好地支持多显示器?
升级到较新的 Nvidia 驱动程序(我有 nvidia-current:304.117)是否可以解决这些问题?
答案1
启用 Xinerama 往往会禁用 nvidia 和 ati 显卡上的合成功能。驱动程序中的某些内容使合成和 xinerama 不兼容。如果没有合成功能,Compiz 就无法启用其大多数插件(包括 unity)。
随着 xrandr 的出现,xinerama 不再需要让多个显示器工作。话虽如此……我的经验是,为了在单个系统上使用多个 GPU 卡,通常必须牺牲合成……因此没有 compiz。据说在 xrandr 1.4(ubuntu 为 13.04 及更高版本)中,多 GPU 支持正在工作……我没有尝试过,因为我已经切换到使用带有 Eyefinity 的 ATI 卡,并在需要超过 2 个显示器时使用显示端口显示器。这通常有效。有关多 GPU xrandr 设置,请参阅此帖子: http://www.phoronix.com/forums/showthread.php?81037-xrandr-1-4-multi-gpu-works!
看起来他正朝着正确的方向前进。
答案2
听起来您在配置显示器时使用了 nvidia-settings 中的“新 X 屏幕(需要重新启动 X)”选项。这可以解释“x”光标。事实上,您的 xorg.conf 中有 3 个“屏幕”部分。如果您正在寻找一个涵盖所有 3 个屏幕的单个桌面,则只需要一个“屏幕”部分。
基本上,您当前的 xorg.conf 所说的是生成 3 个不同的 X 副本(每个显示器一个)。这显然不是您想要的。这三个副本彼此之间不通信,因此除非您计划运行三个不同的桌面环境(每个屏幕一个)...
让我看看是否可以修复您的 Xorg.conf:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
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/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 "Acer"
ModelName "Acer X223W"
HorizSync 31.0 - 83.0
VertRefresh 56.0 - 75.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: unknown, VertRefresh source: unknown
Identifier "Monitor1"
VendorName "Acer"
ModelName "Acer X223W"
HorizSync 0.0 - 0.0
VertRefresh 0.0
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: unknown, VertRefresh source: unknown
Identifier "Monitor2"
VendorName "Acer"
ModelName "Acer X223W"
HorizSync 0.0 - 0.0
VertRefresh 0.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro 600"
BusID "PCI:4:0:0"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro FX 580"
BusID "PCI:5:0:0"
EndSection
Section "Device"
Identifier "Device2"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro FX 580"
BusID "PCI:9:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "nvidia-auto-select +0+0"
Option "SLI" "Off"
Option "MultiGPU" "Off"
Option "BaseMosaic" "off"
SubSection "Display"
Depth 24
EndSubSection
EndSection
另外,根据这个,你有 3 个不同的 GPU?两个是 Quadro FX 580,一个是 Quadro 600?对吗?移除 Quadro 600 应该可以让你启用 SLI。当然,除非你是比特币矿工 ;)