显示设置中显示未知,分辨率低。由于校验和错误,无法获取 Edid 信息

显示设置中显示未知,分辨率低。由于校验和错误,无法获取 Edid 信息

我有三台显示器,但其中一台显示器的分辨率较低,只有 1600x900,而本机分辨率为 1920x1080。在显示设置中,它显示显示器为“未知”,但当我运行 get-edid | parse-edid 时,它确实识别了它,如下所示

$ get-edid | parse-edid

Attempting to use i2c interface
Only trying 3 as per your request.
256-byte EDID successfully retrieved from i2c bus 3
Looks like i2c was successful. Have a good day.
WARNING: Checksum failed
Trying to continue...
Section "Monitor"
    Identifier "ASUS VS228"
    ModelName "ASUS VS228"
    VendorName "ACI"
    # Monitor Manufactured week 34 of 2013
    # EDID version 1.3
    # Digital Display
    DisplaySize 480 270
    Gamma 2.20
    Option "DPMS" "true"
    Horizsync 24-83
    VertRefresh 50-75
    # Maximum pixel clock is 170MHz
    #Not giving standard mode: 1920x1080, 60Hz
    #Not giving standard mode: 1280x960, 60Hz
    #Not giving standard mode: 1280x1024, 60Hz
    #Not giving standard mode: 1440x900, 60Hz
    #Not giving standard mode: 1680x1050, 60Hz
    #Not giving standard mode: 1152x864, 75Hz
    #Not giving standard mode: 1280x720, 60Hz
    #Not giving standard mode: 1280x800, 60Hz

    #Extension block found. Parsing...
    Modeline    "Mode 16" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync 
    Modeline    "Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
    Modeline    "Mode 1" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
    Modeline    "Mode 2" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
    Modeline    "Mode 4" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
    Modeline    "Mode 5" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
    Modeline    "Mode 6" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
    Modeline    "Mode 7" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
    Modeline    "Mode 8" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
    Modeline    "Mode 9" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
    Modeline    "Mode 10" 54.054 1440 1472 1596 1716 480 489 495 525 -hsync -vsync
    Modeline    "Mode 11" 54.054 1440 1472 1596 1716 480 489 495 525 -hsync -vsync
    Modeline    "Mode 12" 54.000 1440 1464 1592 1728 576 581 586 625 -hsync -vsync
    Modeline    "Mode 13" 54.000 1440 1464 1592 1728 576 581 586 625 -hsync -vsync
    Modeline    "Mode 14" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
    Modeline    "Mode 15" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
    Modeline    "Mode 17" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
    Modeline    "Mode 18" 74.25 1280 1720 1760 1980 720 725 730 750 +hsync +vsync 
    Modeline    "Mode 19" 27.00 720 732 796 864 576 581 586 625 -hsync -vsync 
    Option "PreferredMode" "Mode 16"
EndSection

与我的其他两台工作显示器不同,这台显示器提供了警告:校验失败这可能是它无法加载 edid 的原因。有没有什么办法可以绕过这个问题?

我尝试过但未能得到正确解决方案的事情

1.) 使用以下方式手动设置分辨率xrandr --newmode 和 --addmode但这会产生 badmatch 错误

2.) 更新 nvidia 显卡驱动程序 --- 我将驱动程序更新为最新版本的 nVidia 440,并尝试了其他版本

3.) 在 /etc/X11/xorg.conf 中更改我的 xorg.conf 文件。我尝试在“未知”显示下添加新的 modlines,但没有成功,所以我又回到使用 nvidia-settings 创建的默认配置,如下所示:

# nvidia-xconfig: 版本 440.64

“服务器布局”部分
    标识符“Layout0”
    屏幕 0 “屏幕 0”
    输入设备“键盘0”“核心键盘”
    输入设备“Mouse0”“CorePointer”
结束部分

“文件”部分
结束部分

“输入设备”部分
    # 从默认生成
    标识符“Mouse0”
    驱动程序“鼠标”
    选项“协议”“自动”
    选项“设备”“/dev/psaux”
    选项“Emulate3Buttons”“否”
    选项“ZAxisMapping”“4 5”
结束部分

“输入设备”部分
    # 从默认生成
    标识符“Keyboard0”
    驱动程序“kbd”
结束部分

“监控”部分
    标识符“Monitor0”
    供应商名称“未知”
    模型名称“未知”
    选项“DPMS”
结束部分

“设备”部分
    标识符“Device0”
    驱动程序“nvidia”
    供应商名称“NVIDIA Corporation”
结束部分

“屏幕”部分
    标识符“Screen0”
    设备“Device0”
    监控“Monitor0”
    默认深度 24
    “显示”子部分
        深度 24
    结束子节
结束部分```

答案1

经过 10 小时的尝试,我终于在未知的显示器上获得了 1920x1080 的分辨率。原来 nvidia-settings 正在运行一个“不可见的”xorg.conf 文件。如果合并 xorg.conf,nvidia-settings 会为您提供查看隐藏设置的选项,为此我运行了:

sudo nvidia-settings

然后在 XServer 显示配置选项卡中,它提供了“保存到 X 配置文件”选项。从那里,您可以选择与现有的 xorg.conf 文件合并。一旦我这样做了,它就会显示 nvidia-settings 添加到 xorg.conf 文件的所有隐藏属性,我马上注意到水平刷新值太低了,我把它改成了 83。下面是我的新 xorg.conf 文件

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

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  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 "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"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DFP-1"
    HorizSync       28.0 - 83.0
    VertRefresh     43.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 970"
EndSection

Section "Screen"

# Removed Option "metamodes" "HDMI-0: 1600x900 +1680+900, DVI-I-0: nvidia-auto-select +655+0, DVI-D-0: 1680x1050_60_0 +0+900"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-4"
    Option         "metamodes" "HDMI-0: 1920x1080 +1680+900, DVI-I-0: nvidia-auto-select +655+0, DVI-D-0: 1680x1050_60_0 +0+900"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

相关内容