3 或 4 个带有 Nvidia 和 Ubuntu 的显示器

3 或 4 个带有 Nvidia 和 Ubuntu 的显示器

我看到有人在 3 个显示器上运行 Ubuntu 8.10 和两张 Nvidia 显卡(https://stackoverflow.com/questions/27113/how-to-use-3-monitors)。

我很好奇,您是否可以使用 Xinerama、破解版 TwinView 配置、多个 X 屏幕或其他方法来实现这一点?它能与 compiz 一起使用吗?

我打算在中间安装我的 Dell 30" 电脑,在侧面安装两个 1280x1024 的显示器,继续使用一个 X 屏幕,并在 Ubuntu 9.04 上运行 compiz。目前,我使用 2 个带有 twinview 和 compiz 的显示器,运行效果非常好。我只是无法运行第三个显示器(除非我在它自己的 X 屏幕中启用它,然后启用 Xinerama 以使窗口可以像在一个 X 屏幕上一样拖动,但这会破坏 compiz,而且我不太在意有单独的 X 屏幕)。

我非常有兴趣了解如何使用 2 个 GPU 设置 4 个显示器。

答案1

我知道这是一个迟来的回复,但是一个答案,而且一年前它可能还不存在。

首先,我认为 X 本身的限制是,X 希望所有连接到 1 个大 xscreen 的屏幕都在同一显卡上

因此,据我所知,包含 2 个视频卡的解决方案将让您的光标遍历所有 3 个显示器(跨两个显示器xscreens),但窗口不能拖到第 3 个显示器(反之亦然)。

为了获得 1 个大的 Xscreen 和可以随处滑动的窗口,我认为您需要将所有三个显示器连接到同一个视频卡。

因此,您需要找到一张可以连接 3 个或更多显示器的显卡。我是 nvidia 的忠实粉丝,但最近我找不到一张每张显卡可以连接 2 个以上显示器的显卡。有些显卡有 3 个端口,但您一次只能使用其中 2 个。您必须仔细阅读细则。

我发现可以同时支持 2 个以上显示器的显卡只有一些 Matrox 显卡和一些较新的 ATI 显卡。Matrox 显卡对总显示像素大小有限制,对每个显示器的分辨率也有限制。有几款 ATI 显卡在 Linux 中支持 3 个以上显示器,我买了一个 MSI Radeon 6990 显卡,它有 5 个显示器端口,可以通过拆分一个端口支持 6 个显示器,但我无法得到明确的答案,即拆分将如何限制拆分端口的显示器尺寸。我现在只使用 3 个端口,它们都支持每个 Mini-DisplayPort 2560x1600。

我儿子有一张不同的卡,属于 5xxx 系列,它有 6 个 Mini-DisplayPort 连接器,并且也支持最多 6 个显示器,而且更便宜 - 所以我知道有多个卡可以使用,但不确定其他卡的型号。

关于你的问题的另一部分compiz,我无法回答,但一旦你把所有显示器都放在一张视频卡上,我怀疑它compiz可能会起作用,因为你不再需要了xinerama

这三个启动并运行之后,您可能需要使用 xrandr 将它们排列在一起。一旦您从命令行发出正确的命令,您就可以将它们放在脚本文件中,并让它们在每次启动时运行,以节省您的输入和记忆。

我的设置脚本有 3 行:

xrandr --output DFP1 --mode 2560x1600 --rotate left
xrandr --output DFP2 --mode 2560x1600 --rotate left --pos 1600x0
xrandr --output DFP3 --mode 2560x1600 --rotate left --pos 3200x0

您的输出设备和选项将会有所不同。

答案2

据我所知,目前您根本无法在任何 3 屏幕设置中使用 Compiz。TwinView 之所以能工作,是因为 Nvidia 在驱动程序级别或类似方面做了一些小把戏。我已经在 Solaris、Ubuntu Linux 上运行了一段时间的三显示器设置,但总是遇到同样的问题。

您所能期望的最好情况是没有任何 Compiz 的三显示器设置。

此外,似乎 RANDR 扩展被禁用了,因为使用此设置,运行 gvim 之类的程序将会给你:

Xlib:  extension "RANDR" missing on display ":0.0".

这是我的 xorg.conf,希望它能有所帮助:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 1280 0
    Screen      1  "Screen1" LeftOf "Screen0"
    Screen      2  "Screen2" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "1"
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"
    Option         "AccelerationProfile" "-1"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "ViewSonic"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "DELL 1907FP"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor2"
    VendorName     "Unknown"
    ModelName      "DELL 1907FP"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 460"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 460"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 460"
    BusID          "PCI:2:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-0: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-2: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen2"
    Device         "Device2"
    Monitor        "Monitor2"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

相关内容