VGA 连接的显示器不会超过 1360x768

VGA 连接的显示器不会超过 1360x768

Ubuntu 15.10,nVidia GTX 650,三显示器设置,使用所有三个 GPU 输出(DVI、HDMI、VGA)。DVI 可以正确为 2560x1440 的显示器供电,HDMI 可以正确为 1920x1080 的显示器供电,VGA 出于某种原因不会传输设备信息,并且限制为 1360x768。

使用最新的 nVidia 驱动程序 (358.16),直接从其网站下载。过去,可以使用 Nouveau 代替,这样我就可以在第三台显示器上获得 1080(与通过 DVI 连接的显示器相同),但代价是 GPU 加速。现在,切换到 Nouveau 只会识别通过 DVI 连接的显示器。

当我尝试手动添加模式行(通过 cvt 生成,1920x1080x60)时,发生以下情况:

# 1024x1080 59.91 Hz (CVT) hsync: 67.10 kHz; pclk: 91.25 MHz
Modeline "1024x1080_60.00"   91.25  1024 1088 1192 1360  1080 1083 1093 1120 -hsync +vsync
ian@cho:~$ xrandr --rmmode 1920x1080_60xrandr: cannot find mode "1920x1080_60"
ian@cho:~$ xrandr --newmode "1920x1080_60" 91.25  1024 1088 1192 1360  1080 1083 1093 1120 -hsync +vsync
ian@cho:~$ sudo xrandr --addmode VGA-0 1920x1080_60
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  39
  Current serial number in output stream:  40

这是我的 xrandr 输出:

Screen 0: minimum 8 x 8, current 5840 x 1440, maximum 16384 x 16384
VGA-0 connected 1360x768+4480+657 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00 +
   1360x768      59.96*   59.80  
   1152x864      60.00  
   800x600       72.19    60.32    56.25  
   680x384       59.96    59.80  
   640x480       59.94  
   512x384       60.00  
   400x300       72.19  
   320x240       60.05  
DVI-D-0 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1080     60.00  
   1680x1050     59.95  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x720      60.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    72.19    60.32  
   640x480       75.00    59.94  
HDMI-0 connected 1920x1080+0+360 (normal left inverted right x axis y axis) 510mm x 290mm
   1920x1080     60.00*+  59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x1200     60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94    59.93  
VGA-1 disconnected (normal left inverted right x axis y axis)
  1920x1080_60 (0x2c5) 91.250MHz
        h: width  1024 start 1088 end 1192 total 1360 skew    0 clock  67.10KHz
        v: height 1080 start 1083 end 1093 total 1120           clock  59.91Hz

还尝试在我的 Xorg 配置中手动设置模式行,但没有任何效果。

此设置在 Windows 中正常运行(两个显示器为 1080p,一个显示器为 1440p)。关于如何使其在 Ubuntu 中正常运行,您有什么想法吗?

答案1

找到了一个有效的答案,基于如何强制辅助显示器使用原始分辨率?http://ubuntuforums.org/archive/index.php/t-1470168.html

首先,我跑去nvidia-xconfig拿了一份基础文件/etc/X11/xorg.conf。然后,我查找了我的华硕 VX238H 显示器并获取了它的水平和垂直刷新率(因为该数据无法通过网络传输)。然后我将这些范围信息复制到 xorg.conf 中,该Monitor部分如下所示(只创建了一个部分,用于无法自动识别的显示器):

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "ASUS"
    ModelName      "VX238H"
    HorizSync       30.0 - 80.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

重新启动后,显示设置显示了更多可用的分辨率,包括该显示器的原始分辨率,我现在正在成功使用它。

需要提醒的是,通过这种方法显示分辨率并不意味着您的显示器会神奇地支持它。例如,我的 1080p 显示器现在不支持 1920x1200,但如果您尝试向显示器驱动过多像素,最糟糕的情况是显示器上会出现“超出范围”错误。

相关内容