我有 2 张卡和 3 个屏幕。我之前费了好大劲才让它们工作起来。解决方案是在启动配置中添加一个设置,以增加允许显示的内存。然后,我不得不完全重新安装。搜索了很长时间后,我找到了设置,并让三个屏幕再次工作。我只需要重新安装一次。现在,我一直在搜索。我找不到要添加到启动配置以增加允许显示的内存量的设置。有人知道它是什么吗?也许这次我会把它写下来,尽量不要丢失它。
答案1
我让它工作了。如果你对 xorg.conf 文件不太了解,那就很难了。这是我的设置:2 个 nvidia 卡。主卡有 4 个输出,但在 Linux 中任何时候只能使用 2 个(显然是内核限制)。第二个有 3 个输出,但我只使用一个。为了使我使用的三个屏幕工作,我必须在 xorg.conf 中定义所有 7 个输出(为什么?我不知道。如果我只删除一个输出的一个定义,它就无法工作。)因此,在 ServerLayout 部分,我有:
Identifier "default display"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
Screen 2 "Screen2" RightOf "Screen1"
...repeated through Screen 6, which is RightOf Screen5
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Files 部分、Module 部分和 InputDevice 部分在这里没有区别。我有 7 个 Monitor 部分,全部带有简单描述,只是更改了监视器编号。
Identifier "Monitor0"
VendorName "Vendor"
ModelName "model"
我有 7 个设备部分,全部带有简单描述。获取正确的 BusID 非常重要。我有四个用于 PCI:1:0:0 上的 Card0,三个用于 PCI:2:0:0 上的 Card1。它们看起来像:
Identifier "Card0"
Driver "modesetting"
BusID "PCI:1:0:0"
注意,驱动程序不是 nouveau 或 nvidia。这两个都不能用(我甚至试过 nv)。
当然,我有 7 个屏幕部分。我将这些设置为最小设置,但我确实对深度 24 的请求进行了硬编码。它们看起来都一样,只是每个部分的数字有所变化:
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
现在,当我运行时,我打开了所有三个屏幕。主卡上的两个屏幕通过 xrandr 连接起来。第三个显示器处于活动状态,但不是主显示屏的一部分。因此,我无法将窗口从两个主屏幕拖到它。但是,如果我想的话,我可以在该显示屏上打开一个窗口。现在,我将尝试使用 xinerama 将所有三个屏幕变成一个桌面,而不是一个桌面上有两个屏幕,另一个屏幕单独存在。