Ubuntu 18.04:安装 Nvidia 驱动程序后屏幕分辨率低

Ubuntu 18.04:安装 Nvidia 驱动程序后屏幕分辨率低

Ubuntu 18.04

GeForce GT 630

实际显示器的最大分辨率“分辨率(最大):2560x1440‎”

双显示器设置。

问题:安装 NVidia 驱动程序后,一切都变得更大,就好像屏幕分辨率降低了一样。

期望:显示效果与 Nouveau 相同,但支持双显示器。

到此为止的步骤:

  • 机器中已安装卡
  • 已启动
  • 垂直方向的显示屏非常薄,但跨越了两个显示器
  • 在终端中检查所需的驱动程序ubuntu-drivers devices

在此处输入图片描述

  • 推荐的司机是nvidia-driver-390 - distro non-free recommended
  • 打开“软件和更新”应用程序并转到“其他驱动程序”部分。列出了“nvidia-driver-390”,因此我选择了它并单击“应用更改”。驱动程序已下载。

在此处输入图片描述

  • 重新启动
  • 现在显示分辨率较低,所有内容都比以前大很多。

为了解决这个问题,我:

  • 检查 NVidia X 服务器设置以验证分辨率是否设置为 1920x1080(即)。
  • 检查了 Ubuntu 设置中的“屏幕显示”设置,确认“分辨率”也设置为 1920x1080(就是这个),并且比例为 100%(就是这个,唯一的其他选项是 200%,这会使东西变得更大)
  • 生成了 /etc/X11/xorg.conf 文件,并尝试根据谷歌搜索在“监控”下添加一个选项Option "DPI" "96x96"。重启后没有变化。
  • 尝试了 NVidia X 服务器设置中的“保存到 X 配置文件”选项,并Option "DPI" "96x96"再次应用该设置,以防 NVidia 查找到错误的位置。重启后没有变化。

以下是 xorg.conf 的内容:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 390.132  (buildmeister@swio-display-x64-rhel04-14)  Fri Nov  1 05:15:46 PDT 2019

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 440.64

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "freetype"
    Load           "glx"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "BenQ EW3270ZL"
    HorizSync       30.0 - 89.0
    VertRefresh     50.0 - 76.0
    Option         "DPMS"
    Option         "DPI" "96x96"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GT 630"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-2: nvidia-auto-select +0+0, DVI-I-3: nvidia-auto-select +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    Option         "UseEdidDpi" "False"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

请问我该怎么办?谢谢。

更新:

仍然没有进展,但也尝试了以下/一些额外的信息。

NVidia 卡有两个 DVI 输出。显示器采用 HDMI,因此我在每个显示器上都使用从 DVI 到 HDMI 的转换线。不确定这是否会影响分辨率检测。

尝试根据显示器支持的最高分辨率为 xrandr 添加自定义分辨率(已知通过主板上的 HDMI 运行时有效)

xrandr检查支持的分辨率

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
DVI-I-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 709mm x 399mm
   1920x1080     60.00*+  59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DVI-I-1 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 709mm x 399mm
   1920x1080     60.00*+  59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
HDMI-0 disconnected (normal left inverted right x axis y axis)

获取已知的显示器支持的最大分辨率的 ModeLine:

cvt 2560 1440 60

给……

# 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz
Modeline "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

为 xrandr 添加新的分辨率:

xrandr --newmode "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

然后再次执行 xrandr 看看发生了什么:

Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 16384 x 16384
DVI-I-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 709mm x 399mm
   1920x1080     60.00*+  59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
DVI-I-1 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 709mm x 399mm
   1920x1080     60.00*+  59.94    50.00    60.05    60.00    50.04  
   1680x1050     59.95  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    59.94    59.93  
HDMI-0 disconnected (normal left inverted right x axis y axis)
  2560x1440_60.00 (0x2be) 312.250MHz -HSync +VSync
        h: width  2560 start 2752 end 3024 total 3488 skew    0 clock  89.52KHz
        v: height 1440 start 1443 end 1448 total 1493           clock  59.96Hz

我注意到 xrandr 已将自定义分辨率添加到 HDMI-0,但不影响 DVI-I-0 或 DVI-I-1。我认为这是因为 xrandr 对 NVidia 卡没有影响?

于是我再次查看了 Xorg 设置。“NVidia X Server Settings”工具似乎确实保存到了/etc/X11/xorg.conf文件中。因此我假设它确实从这个文件中获取了设置。我跟着这个帖子将 ModeLine 添加到该monitor部分,然后从ScreenXorg.conf 文件的部分引用它。

这也没有影响。

因此仍然非常欢迎您提出想法:)

答案1

好的,我解决了。我卸载了 NVidia 驱动程序并使用了 Nouvea。如果我知道可以这样开始,我就会这么做,因为我不需要任何 NVidia 功能,只需要双显示器支持。

对于那些对最后一种方法感兴趣的人,这里是它。请注意,这些说明仅适用于我的设备,因此您需要在以下命令中更改设备的名称。

在终端:

  xrandr

这将为您提供输出,其中显示所有可用的图形输出及其支持的分辨率。您应该看到 HDMI-1 已连接并支持 2560x1440 分辨率。并且 DVI-I-1-2(或类似产品)也已连接,但仅支持 1920x1080,因此我们需要让 DVI-I-1-2 也支持 2560x1440

为此,我们需要使用 xrandr 添加另一个 2560x1440 分辨率的配置文件,然后将其应用于 DVI-I-1-2。再次在终端中:

  cvt 2560 1440 60

这将为您提供执行此操作所需的“模式行”。

目前该行是:

"2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

构建以下内容以添加新模式:

  xrandr --newmode "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync

然后将模式添加到DVI-I-2

  xrandr --addmode DVI-I-2 2560x1440_60.00

现在您应该可以转到正常显示设置并为每个显示器选择更高的分辨率。

但是,这不会在用户会话之间持续存在,因此您需要解决这个问题。

创建一个 .xprofile 文件,该文件将在每次 Ubuntu 启动时自动执行(执行此操作之前请检查它是否存在)。并将其设置为具有执行权限:

  touch $HOME/.xprofile
  chmod +x $HOME/.xprofile

将上面的两行复制并粘贴到该文件中:

xrandr --newmode "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync
xrandr --addmode DVI-I-2 2560x1440_60.00

重新启动后,您将在两个显示器上获得全分辨率。

相关内容