我看到有人在 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