使用 Nouveau、GDM3 和 Debian 8.6 的多显卡、多头、3+ 显示器显示

使用 Nouveau、GDM3 和 Debian 8.6 的多显卡、多头、3+ 显示器显示

在花了很多时间研究 xrandr 之后,我找到了一个对我“有效”的解决方案。

我使用这个论坛作为向其他人提供解决我的问题的方法,以及就某些我不理解的事情提出我自己的问题。

设置:

  • 2x Nvidia GT 630(每块配备 2x DVI 1x HDMI)
  • 3x 显示器(2x Acer 1680x1050 (DVI) 和 1x LG 1680x1050 (DVI))
  • Debian 8.6 默认安装(GnomeDesktop Manager 3)
  • Nouveau 驱动程序(默认安装)

我在卡 1 上连接了 1 个 Acer 和 1 个 LG。默认安装使它们能够完美地作为无缝桌面运行。 GDM 中未检测到卡 2 上的最后一个 Acer,因此无法正常工作。它是在系统更深处检测到的,使用了我从知道自己在做什么的人那里获取的一些 BASH 魔法:

ls /sys/class/drm/*/status | xargs -I {} -i bash -c "echo -n {}: ; cat {}"

/sys/class/drm/card0-DVI-I-1/status:connected
/sys/class/drm/card0-DVI-I-2/status:connected
/sys/class/drm/card0-HDMI-A-1/status:disconnected
/sys/class/drm/card1-DVI-I-3/status:connected
/sys/class/drm/card1-DVI-I-4/status:disconnected
/sys/class/drm/card1-HDMI-A-2/status:disconnected

我首先输入

xrandr --listproviders

并得到

Providers: number : 2
Provider 0: id: 0x64 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 1 name:nouveau
Provider 1: id: 0x36a cap: 0x2, Sink Output crtcs: 2 outputs: 3 associated providers: 1 name:modesetting

您立即可以看到提供商 0 的“名称”条目设置为“nouveau”,提供商 1 的“名称”条目设置为“modesetting”

我很确定每个提供商都有自己的独立显卡。 为什么一个设置为“使用”nouveau,另一个模式设置(大概是 KernelModesetting)? Nouveau 应该在 KMS 之上运行......

dmesg 向我显示两张卡都在 nouveau 下运行...

打字

xrandr --setprovideroutputsource nouveau nouveau

似乎将两个提供商的“名称”条目强制为“nouveau”。 X 立即重新启动(或崩溃),然后我返回到登录屏幕。

登录后,在 X 终端中输入:

xrandr --listproviders

并得到确认:

Providers: number : 2
Provider 0: id: 0xbf cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 0 name:nouveau
Provider 1: id: 0x64 cap: 0x7, Source Output, Sink Output, Source Offload crtcs: 2 outputs: 3 associated providers: 0 name:nouveau

两个上限条目相同。为什么是这样?帽是什么意思?

从这里我实际上可以启用 xrandr 与第二张卡(提供商 1)对话:

xrandr --setprovideroutputsource 1 0

现在,当我键入以下内容时,将显示额外的 DVI 和 HDMI 端口:

xrandr

从这里我启用第三个监视器:

xrandr --output DVI-I-1-3 –auto

(因为我的第三台显示器位于 DVI-I-1-3)

我可以选择通过设置下的 GDM GUI 应用程序启用监视器。

从这里开始,更多的 xrandr 输出定位命令或 GUI 操作将使我的显示器处于相对于其他显示器的位置,并且一切正常。现在我必须将所有这些命令包装在一个脚本中,因为 xrandr 不会在重新启动时保存设置。当我让它工作时,我将在稍后的帖子中讨论该脚本。

当前的一些问题是移动窗口时图形性能较差,有时鼠标会一次冻结几秒钟。专有的 Nvidia 驱动程序可能会解决此问题,但其他解决方案也是最受欢迎的。

我忍不住认为我已经犯了这个错误,并且有一种“更好”的方法来实现我刚刚所做的事情,同时仍然使用 xrandr (我也尝试过使用 ZaphodHeads 自定义 xorg.conf 但没有结果)。 为什么我必须输入:

xrandr --setprovideroutputsource nouveau nouveau

首先要设置其余命令吗?

Xrandr –help

显示:

--setprovideroutputsource  <prov-xid> <source-xid>

在哪里可以找到 source-xid 的列表?

为什么 xrandr 和 /sys/class/drm/ 之间的 DVI 端口标记不同?

相关内容