Linux 下的三 (3) 个监视器

Linux 下的三 (3) 个监视器

我通过 Nvidia NVS440(2 个 GPU,每个 GPU 2 个输出,总共 4 个输出)设置了 3 个显示器(每个 1680x1050);这在 Windows XP、7 下运行良好,但在 Linux(Ubuntu 9.04)下引起了相当大的麻烦。

我之前曾使用过 XFX 9600GT 和板载 XFX 9300GS 来产生相同的结果,但该卡噪音大且耗电,我希望 NVS4400 中有一些神奇的开关可以摆脱这个恼人的问题 - 事实证明 NVS440 只是一块物理 PCB 上的 2 张卡 :-p(我在网上到处寻找在 Linux 下使用此卡的人,但一无所获,如果说有什么不同的话,那就是该卡耗电更少,风扇更少,所以无论如何我都会从中受益)

无论如何,无论使用哪种设置,都有 5 种可用的解决方案:

  • 有 3 个独立的 X 实例,均未连接
  • 拥有 3 个独立的 X 实例,由 Xinerama 连接
  • 拥有 2 个独立的 X 实例 - 一个使用双视图,两个都通过 Xinerama 连接
  • 有 2 个独立的 X 实例 - 一个使用双视图,但没有 Xinerama
  • 拥有单一双视图设置,并且不连接第三个屏幕 :-p

第四个选项,使用 2 个独立的 X 实例和 twinview(但没有 xinerama),在性能和可用性方面达到了最佳平衡,但却导致了 2 个非常烦人的问题

  • 你无法控制(如果不更改快捷方式)应用程序在哪个屏幕上打开 - 并且一旦打开,你就无法将其移动到另一个屏幕,除非打开终端并强制其移动
  • Nvidia 覆盖或伪造 Xinerama 中断,并且通过 Twin view 连接的两个屏幕表现得像一个巨大的屏幕,导致弹出窗口在两个屏幕中间打开,并且窗口最大化会延伸到前两个屏幕的宽度
  • Firefox 只能以同一个用户身份运行一个实例,因此拥有多个 Firefox 窗口至少需要 2 个用户

第二个选项“感觉”像是正确的选项,但 OpenGL 基本上被禁用,玩任何类型的游戏甚至运行任何图形都会导致性能大幅下降和不稳定 - 即使尝试运行 gba 或 gens 的基本模拟器也会导致系统崩溃。它的工作效果足以让你盯着桌面什么也不做,但一旦你开始做一些工作 - 打开窗口、拖动东西 - 运行多个 Firefox 副本,它就会感觉很慢。

最后打开,只有双屏才能完美运行,一切都按要求执行,完整的 GPU 加速 - 两个逻辑屏幕空间 - 完美,只需让它像 Windows 一样跨 GPU 工作!:-p

无论如何,我知道 RandR 应该弥补不足,因为它会引入各种 GPU 对象,允许将多个 GPU 拼接在一起,在比 Xinerama 更深的层上创建一个巨大的桌面。我想知道这个问题现在是否已经修复(我注意到 X server 1.7 已经发布)以及是否有人成功运行了它?

再次强调,我的要求是:

  • 一个巨大的桌面,可拖动任意窗口
  • 将窗口最大化到每个屏幕(像 XP 那样)
  • 在主屏幕上运行全屏应用,并禁止鼠标移动到其他屏幕上或所有 3 个拉伸屏幕上

最后附注一下;我知道 Matrox 三重(和双重)头分割器,但它们在 eBay 上的售价也超出了我现在的承受能力,我的观点是:我不应该为了在 Linux 上运行而购买额外的硬件,因为它在 Windows 世界中已经存在很长时间了(你能看出我不喜欢 X 吗 :-p);如果我有钱,我早就买这个盒子的最新版本了(新版本终于支持大分辨率了,因为我的显示器都是 1680x1050)。

答案1

尝试了 Fedora 11 (XServer 1.7) 和 Ubuntu 9.10 (XServer 1.6.4) 后,我可以肯定地说问题仍然存在 - 如果不是比以前更严重的话 :-p

我学到的一些知识可能对其他人有用:

  • Linux 开始非常非常快地启动!:-D
  • 当 X 因某种原因死机时,它会陷入重启循环,这种情况会发生在 nvidia、nv 和 nouveau 驱动程序中
  • X 可以使用一些自动检测设置来启动,而无需任何 xorg.conf
    • 不幸的是,这只对我的板载 GeForce 9300 的 nivida 驱动程序有效,nv 和 nouveau 不适用于板载显卡。
    • 显示器分辨率检测不正确
    • 启用 ssh 服务器后,我可以在重启循环中断后直接通过 ssh 进入机器 - 能够更改配置并强制重启比启动到 live cd 做同样的事情要好 :-p
  • 32 位 PAE 内核破坏了 nvidia 驱动程序 -(没有尝试使用 nv 或 Nouveau)- 所有内容(甚至是 2d)都变得非常慢,你可以看到屏幕的某些部分被重新绘制
  • 64 位支持开箱即用,但如果不强制使用,所有 32 位软件包都无法工作,即使强制使用,有些软件包仍然会崩溃;:-p
  • NV 适用于非常基本的用途,以避免使用专有二进制文件
  • Nouveau 比我想象的要快得多,并且可以很好地运行 2D 设置;它甚至可以使用内置配置和旋转很好地处理双头输出,所以我印象非常深刻;
    • Nouveau 尚不支持多卡设置 - 从网站上看,似乎没有开发人员有这种设置,因此无法测试;这几乎让我想收集捐款并捐赠这种基本系统给某人来完成它 - 或者学习来龙去脉并开始自己做出贡献

我好像每 3-4 个月就会经历这个过程:

  • 了解 Linux 下的最新功能
  • 暂时避开它们
  • 尝试一下
  • 意识到一切仍破碎
  • 再等3-4个月

现在我回到了我信赖的 Windows XP 设置;它从未启动失败(现在我见识过 ubuntu 启动速度那么快,感觉启动时间非常慢),我的所有应用程序都可以开箱即用,并且我的硬件有不错的驱动程序支持!!:-p

更新:我向 Nvidia 提交了一张票,他们给了我两个标准选项:

  • 使用 Twinview 和单个 X 桌面(无需 Xinerama)
  • 使用 3 个单 X 服务器并使用 Xinerama 加入

关于第二种选择,他们提到的要点是,所有通过 Xinerama 的图形请求都会在每个屏幕上循环(因此每个屏幕都会看到相同的请求,很可能根据屏幕相对于原始屏幕的位置进行更改);因此每个操作都会发生 3 次 - 这就解释了性能下降的原因;我想如果每个窗口内有 3 个操作,那就是 9 个操作;这可能会对同一 GPU 上的两个屏幕的影响大于对单个屏幕具有整个 GPU 的屏幕的影响,但仅使用标准桌面就非常明显,甚至在 Firefox 中渲染网页也会有所延迟。

答案2

Catalyst 10.7 及更新版本支持 Linux 上的 Eyefinity:http://www.phoronix.com/vr.php?view=ODQ0OA

这将允许您在具有 3D 加速功能的一块 AMD/ATI 显卡上拥有 3 个显示器。

答案3

还有另一种选择 - 我将很快为 Ubuntu Karmic 发布软件(开源) - 如果我能让它在那里工作的话,否则它将用于 Jaunty,因为我已经在使用它了。-http://ubuntuforums.org/showthread.php?t=884161

在 YouTube 上观看此 6 监视器系统的视频:(由于新手限制,链接被删除 - 在 YouTube 上搜索“d2globalinc”)

这不是我们想要的解决方案,但它是一种使用多个 GPU 实现 Composite 的方法,直到出现更好的解决方案(可能是 AMD 的 eyefinity 或 nvidia 的答案 - 无论是什么)

Shane Menshik D2 GLOBAL INC.

附言:我提到了 AMD 的 EyeFinity - 请在此处查看演示 - (在 YouTube 上搜索“Eyefinity Linux” - 由于新手限制无法发布第二个链接)这是迄今为止我见过的针对 Linux/多 GPU 支持的最有前途的东西。

答案4

我在使用 NVS 450 时也遇到了同样的问题。我组装了一台新的 2.67 GHz i7 机器,带有 8 GB 内存,在 NVS 450 上安装了 3 个 20.1 英寸 LCD。我非常兴奋,以为我终于可以在 Linux 中运行三个屏幕了(我以前运行两个屏幕都没有问题)。现在我却碰壁了。我很想找到一个好的、稳定的解决方案(简而言之),让多显示器在 Linux 中像在 Windows 和 OS X 中一样工作。

更新:好吧,既然我插话了一次,我想我也可以做一个小更新。我放弃了,我屈服了,我买了一张 ATI 卡。我买了一台 Sapphire 5750,它看起来像是一个 GPU,支持三台显示器。我将通过 DVI 运行其中两台,通过显示端口运行一台,使用 DP 到 DVI 适配器(希望这能起作用)。

我明天会告诉你结果。

相关内容