我有一台装有 Ubuntu 16.04.1 的电脑。
昨天,我在我的电脑上安装了另一个图形适配器以获得更多的显示输出。
我的第一个适配器是 nVidia GTX 770,并且连接了四个显示器:两个在 dvi 输出,一个在 hdmi 输出,另一个在显示端口输出。
有了这四个显示器,Ubuntu 就可以正常工作。
新的适配器是 nVidia GT 640,另外还有四个输出(两个 DVI、一个 HDMI 和一个 VGA 模拟输出)。
两个适配器均被检测到:
andye@Trabajo:~$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 770] (rev a1)
07:00.0 VGA compatible controller: NVIDIA Corporation GK107 [GeForce GT 640] (rev a1)
我已经使用 nVidia 367.57 默认 Ubuntu 16.04 驱动程序和新的 375.26 驱动程序(从 nvidia 网页下载并手动安装)测试了系统。
Nvidia-xconfig 检测到我的两个适配器和五个显示器:
andye@Trabajo:~$ nvidia-xconfig --query-gpu-info
Number of GPUs: 2
GPU #0:
Name : GeForce GTX 770
UUID : GPU-55d902e3-ce32-7e35-fdb2-e8c66954808d
PCI BusID : PCI:1:0:0
Number of Display Devices: 4
Display Device 0 (TV-0):
EDID Name : BenQ GL2460
Minimum HorizSync : 30.000 kHz
Maximum HorizSync : 83.000 kHz
Minimum VertRefresh : 50 Hz
Maximum VertRefresh : 76 Hz
Maximum PixelClock : 170.000 MHz
Maximum Width : 1920 pixels
Maximum Height : 1080 pixels
Preferred Width : 1920 pixels
Preferred Height : 1080 pixels
Preferred VertRefresh : 60 Hz
Physical Width : 530 mm
Physical Height : 300 mm
Display Device 1 (TV-1):
EDID Name : Samsung T24C300
Minimum HorizSync : 15.000 kHz
Maximum HorizSync : 81.000 kHz
Minimum VertRefresh : 24 Hz
Maximum VertRefresh : 75 Hz
Maximum PixelClock : 230.000 MHz
Maximum Width : 1920 pixels
Maximum Height : 1080 pixels
Preferred Width : 1920 pixels
Preferred Height : 1080 pixels
Preferred VertRefresh : 60 Hz
Physical Width : 530 mm
Physical Height : 300 mm
Display Device 2 (TV-2):
EDID Name : BenQ GL2250H
Minimum HorizSync : 30.000 kHz
Maximum HorizSync : 83.000 kHz
Minimum VertRefresh : 50 Hz
Maximum VertRefresh : 76 Hz
Maximum PixelClock : 210.000 MHz
Maximum Width : 1920 pixels
Maximum Height : 1080 pixels
Preferred Width : 1920 pixels
Preferred Height : 1080 pixels
Preferred VertRefresh : 60 Hz
Physical Width : 480 mm
Physical Height : 270 mm
Display Device 3 (TV-3):
EDID Name : BenQ G2400W
Minimum HorizSync : 31.000 kHz
Maximum HorizSync : 94.000 kHz
Minimum VertRefresh : 50 Hz
Maximum VertRefresh : 85 Hz
Maximum PixelClock : 193.250 MHz
Maximum Width : 1920 pixels
Maximum Height : 1200 pixels
Preferred Width : 1920 pixels
Preferred Height : 1200 pixels
Preferred VertRefresh : 60 Hz
Physical Width : 520 mm
Physical Height : 320 mm
GPU #1:
Name : GeForce GT 640
UUID : GPU-9fdb4b0d-2fde-cdeb-16e8-356757267c57
PCI BusID : PCI:7:0:0
Number of Display Devices: 1
Display Device 0 (TV-1):
EDID Name : LG Electronics LG TV
Minimum HorizSync : 30.000 kHz
Maximum HorizSync : 83.000 kHz
Minimum VertRefresh : 58 Hz
Maximum VertRefresh : 62 Hz
Maximum PixelClock : 160.000 MHz
Maximum Width : 1920 pixels
Maximum Height : 1080 pixels
Preferred Width : 1920 pixels
Preferred Height : 1080 pixels
Preferred VertRefresh : 60 Hz
Physical Width : 1600 mm
Physical Height : 900 mm
但是 xrandr 仅检测一个提供商:
andye@Trabajo:~$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x279 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 0 name:NVIDIA-0
如果我尝试添加新的提供商:
andye@Trabajo:~$ xrandr --setprovideroutputsource 1 0
Could not find provider with index 1
我没有 xorg.conf 文件。
尽管如果我将显示器配置为 nVidia X 服务器设置中的独立屏幕,激活 Xinerama 并保存新的 xorg.conf,五个显示器就可以工作,但是我收到了几个 compiz 错误(我无法拖动屏幕中的元素 [应用程序进入我们正在立即关闭的屏幕])并且这对我来说不是一个解决方案。
问题是:为什么 xrandr 只检测第一个适配器?
以及如何解决这个问题?
提前致谢