双显示器设置,为什么NVidia 340 Prime只检测一个显示器?

我正在使用:

  • Alienware M14xR2笔记本电脑运行Ubuntu 14.04
  • 2 * DELL U2412M显示器通过HDMI和迷你显示端口连接
  • 使用nvida-340和nvidia-prime运行的Optimus图形(Intel + nVidia GeForce GT 650M),在nvidia-settings GUI中使用Prime设置以使用NVidia GPU
  • 内置笔记本电脑显示器禁用

不幸的是,监视器只能在默认的镜像设置中成功运行 – 我有以下问题试图让双外部屏幕扩展桌面工作:

  • nvidia-settings GUI只能在X Server Display Config页面上看到一个监视器。 系统显示GUI可以看到两个显示,但只能成功镜像显示。 通过摆弄Display GUI和ARandR,我暂时设法让扩展桌面工作,但是NVidia GUI仍然只能看到其中一个监视器,如果我尝试重新启动并连接了2个监视器,那么GUI在登录后完全出现故障并且无法使用。
  • 在启动过程中,系统只使用左侧显示器(通过HDMI i / f)进行显示,因此我认为这被视为主显示器。 但是,在启动后,系统似乎切换到使用主显示器的显示端口,系统将不允许我只在左侧(HDMI)显示器上安装Ubuntu启动器。 唯一可行的选项是在两个或仅右侧(显示端口)监视器上安装启动器。 我试图通过更改〜/ .config / monitors.xml中的主监视器开关来强制修复主监视器错误地设置到右监视器的问题,但这不起作用并导致两个监视器出现奇怪的分辨率和故障严重的鼠标输入不协调。

运行/usr/lib/nvidia-340/bin/nvidia-xconfig --query-gpu-info给出

 Number of GPUs: 1 GPU #0: Name : GeForce GT 650M UUID : GPU-... PCI BusID : PCI:1:0:0 Number of Display Devices: 1 Display Device 0 (DFP-0): EDID Name : DELL U2412M Minimum HorizSync : 30.000 kHz Maximum HorizSync : 83.000 kHz Minimum VertRefresh : 50 Hz Maximum VertRefresh : 61 Hz Maximum PixelClock : 170.000 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 

运行xrandr --query给出

 Screen 0: minimum 8 x 8, current 3120 x 1920, maximum 16384 x 16384 DP-0 connected primary 1200x1920+1920+0 left (normal left inverted right x axis y axis) 518mm x 324mm 1920x1200 60.0*+ ... DP-1 disconnected (normal left inverted right x axis y axis) LVDS1 connected 1600x900 60.0 + 40.0 ... DP1 disconnected DP2 disconnected HDMI1 connected 1920x1200+0+0 518mm x 324mm 1920x1200 60.0*+ ... HDMI2 disconnected VGA1 disconnected VIRTUAL1 disconnected 

运行lspci | grep VGA lspci | grep VGA给出

00:02.0 VGA兼容控制器:Intel公司第三代核心处理器图形控制器(rev 09)01:00.0 VGA兼容控制器:NVIDIA公司GK107M [GeForce GT 650M](rev a1)

我的xorg.conf几乎是空的,但我相信14.04会自动检测这些设置。

在安装和删除nvidia之后,我注意到了一个奇怪的(并且那个很好的)行为。 而第二台显示器中的GUI响应已经大大改善了。

我还注意到xorg.conf有不同的设置,粘贴它供你参考,

 jpvel@jpvel-M11xR3:~/Downloads$ sudo cat /etc/X11/xorg.conf.04192015 Section "ServerLayout" Identifier "layout" Screen 0 "nvidia" Inactive "intel" EndSection Section "Device" Identifier "intel" Driver "intel" BusID "PCI:0@0:2:0" Option "AccelMethod" "SNA" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" BusID "PCI:1@0:0:0" Option "ConstrainCursor" "off" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" Option "AllowEmptyInitialConfiguration" "on" Option "IgnoreDisplayDevices" "CRT" EndSection 

我怀疑现有的nouveau驱动程序似乎开始尊重配置并适当地指示显卡将输出发送到外部显示器。 如

对于那些尝试使用dvi端口或hdmi到vga适配器的灵魂,让我转发给你,它不起作用。 正如neutreno指出的那样,hdmi端口与外星人笔记本电脑中的nvidia卡焊接在一起

从第二个回答编辑:

我去重新安装并再次尝试使用来自ppa的最新nvidia驱动程序:xorg-edgers / ppa用于nvidia-340,它最终破坏了ui。 所以我决定卸载并使用现有设置。

然而,通过全新安装,我能够使用不完美但可用的双显示器设置。 我镜像了显示器并确保了intel的图形驱动程序可以进行渲染(但我承认它很糟糕)

看来,由于戴尔通过非常规方式连接3个显示端口,Nvidia GFX和Alienware M14xR2中的板载英特尔GFX,您无法将HDMI和MDP用于外接显示器。 由于戴尔连接Nvidia卡以通过英特尔卡,因此也无法在BIOS中禁用英特尔GFX!

使用显示器的HDMI和VGA端口解决了这个问题,并允许在Ubuntu 14.10上使用外部双显示器设置而无需镜像。

但是,在撰写本文时,Nvidia 340和346系列驱动程序无法用于此双显示器设置,只能使用一台显示器正常工作。 只有Nvidia 331系列似乎支持这种双重设置(或Nouveau – 但该驱动程序在第二台显示器上显示非常嘈杂的图像,并且其3D加速也无法正常工作)。 错误,错误,错误!