第二台显示器无法识别 - xorg.conf 文件

第二台显示器无法识别 - xorg.conf 文件

我尝试在我的 Ubuntu 笔记本电脑上使用这款显示器 Acer XB270H,但它无法被识别,并且出现分辨率错误的情况。

注意:我首先使用带有显示器 DP 线的扩展坞,并购买了一条迷你 DP 转 DP 线,以便能够直接将计算机插入显示器:但没有改变,这不是硬件问题。

我尝试使用以下命令强制执行新配置xrandr

cvt 1920 1080:

# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
xrandr --addmode DP1 "1920x1080_60.00"

这里显示了什么:

gsd-color[2315]: unable to get EDID for xrandr-DP1: unable to get EDID for output

因此,以下命令将第二个监视器变为黑色,显示'no signal'

xrandr --output DP1 --mode 1920x1080_60.00

眼镜

Linux 4.18.0-13-generic #14-Ubuntu SMP x86_64 GNU/Linux

lspci -v | grep VGA:

00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])```

inxi -Gxx:

Graphics:  Device-1: Intel 3rd Gen Core processor Graphics driver: i915 v: kernel bus ID: 00:02.0 
           chip ID: 8086:0166 
           Display: x11 server: X.Org 1.20.1 driver: i915 compositor: gnome-shell 
           resolution: 1366x768~60Hz, 1024x768~60Hz 
           OpenGL: renderer: Mesa DRI Intel Ivybridge Mobile v: 4.2 Mesa 18.2.2 compat-v: 3.0 
           direct render: Yes

更新 :

我现在尝试使用xorg.conf建议的文件。

为了获取 EDID,我无法使用read-edid, parse-edid: /sys/class/drm/card0-DP1/edid : Partial Read... Try again...,并且无法在互联网上找到它。

我终于设法从以下位置获取 EDID(256 位)文件视窗使用moninfo.exe工具:

ls -al /etc/X11/edid.bin
-rwxr----- 1 root root 256 Feb  3 14:00 /etc/X11/edid.bin

我尝试遵循一些 Xorg 指南,但此错误出现了太多次:

gsd-color[2995]: failed to get edid: unable to get EDID for output

答案1

您的日志显示无法读取EDID您的显示端口,我猜是您的外接显示器。英特尔要求您通过提供EDID配置xorg.conf,至少这是我能从记忆中找出的。

我可以建议您尝试使用老式的方式来创建您的xorg.conf.

尝试创建一个xorg.conf,如果不存在,您可以在下面创建一个/etc/X11/xorg.conf.d

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 
    Screen      1  "Screen1" RightOf "Screen 0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Touchpad0" "SendCoreEvents"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
#    ModeLine       "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync"
    HorizSync       30.0 - 75.0
    VertRefresh     60.0
    Option         "DPMS"
EndSection

Section "Monitor1"
    Identifier     "Monitor1"
    VendorName     "<Vendor_Name>"
    ModelName      "<Model_Name>"
#    ModeLine       "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync"
    HorizSync       30.0 - 75.0
    VertRefresh     60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "<Device_Identifier>"
    Driver         "<i915!?>"
    VendorName     "Intel Corporation"

    Option         "UseEdidDpi" "FALSE" # Make it TRUE and in the next line supply that
    Option         "CustomEDID" "DFP-2:/etc/X11/<EDID_config_from_Screen_Manufacturer>.bin"
    Option         "DPI"    "150x155"

Section "Screen0"
    Identifier     "Screen0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "1600x900 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
#        Mode        "1600x900_60.00"
    EndSubSection
EndSection

Section "Screen0"
    Identifier     "Screen1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "1920x1080 +0+0"
    SubSection     "Display"
        Depth       24
#        Mode        "1920x1080_60.00"
    EndSubSection
EndSection

我确信您可能需要编辑上面的文件,但是它会给您一个开始。尝试并回传您的成功/障碍。

跟进

至于51号线:我理解它是因为您试图将显示器映射到显示器。如果是这样,请创建一个Device部分并指定显示器和视频卡。就像下面这样:

Section "Device"
    Identifier  "Device0"
    Option      "Monitor0" "DVI" # Use your settings
    Option      "Monitor1" "DP2"
    Driver      "intel"
EndSection

您遇到问题的其他线路号码是什么?您可以通过 登录吗X

EDID

您可以阅读此链接

如何告诉英特尔显卡使用我的自定义 EDID 文件?

答案2

我只想添加我的解决方案来解决这个问题。我无法尝试 DependencyHell 的 EDID 解决方案,因为我的机器上没有窗口。具有两个相同的 24" 显示器的双显示器始终可以完美地以 1920x1080 工作。奇怪的是,在连接第三个同样相同的显示器后,第二个显示器不再以 1920x1080 工作。即使将其连接到不同的端口(DP-1 或 DP-3 或 HDMI) -0),仍然是同样的错误。 grep EDID”说:

nvidia-modeset: WARNING: GPU:0: Unable to read EDID for display device HDMI-0

最后,我能够使用特殊的 xorg.conf 解决该问题:



Section "Monitor"
  Identifier "Monitor1"
  VendorName     "Unknown"
  ModelName      "Acer B246HL"
  HorizSync       30.0 - 80.0
  VertRefresh     55.0 - 76.0
  Option         "DPMS"
  Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
EndSection

Section "Monitor"
  Identifier "Monitor2"
  VendorName     "Unknown"
  ModelName    "Acer B246HL"
  HorizSync       30.0 - 80.0
  VertRefresh     55.0 - 76.0
  Option         "DPMS"
  Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
EndSection

Section "Monitor"
  Identifier "Monitor3"
  VendorName     "Unknown"
  ModelName    "Acer B246HL"
  HorizSync       30.0 - 80.0
  VertRefresh     55.0 - 76.0
  Option         "DPMS"
  Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
EndSection

Section "Device"
  Identifier "Card0"
  Driver "nvidia"
  Option "DP-1" "Monitor1"
  Option "DP-3" "Monitor2"
  Option "HDMI-0" "Monitor3"
  BusID "PCI:39:0:0"
EndSection

Section "Screen"
  Identifier "Screen0"
  Device "Card0"
  Monitor "Monitor1"
  Monitor "Monitor2"
  Monitor "Monitor3"
  DefaultDepth 24
  SubSection "Display"
    Depth 24
    Modes "1920x1080_60.00"
  EndSubSection
EndSection

模型行可以通过以下方式生成:

cvt 1920 1080

其余的应该是不言自明的。如有疑问请追问。

这是唯一对我有用的解决方案,在“xrandr --addmode”命令之后,xrandr 的所有内容都开始生成错误。

答案3

问题的作者提供了以下解决方案。

我终于按照下面答案的想法找到了解决方案。我必须说,我很难知道要在这个xorg.conf文件中指定什么才能最终使其工作。

示例、指南和文档对于什么是强制性的、什么不是强制性的以及正确的值并不是非常精确。


  • 问题1:检索显示器 EDID
  • 解决方案:通过工具使用Windows moninfo.exe

  • 问题2: 配置合适的xorg.conf文件
  • 解决方案:不要生成复杂的,而只是通过多个测试来填充必要的...(即:xorg 在移动某些程序窗口或打开第二个应用程序时崩溃...)

/etc/X11/xorg.conf :

Section "Monitor"
  Identifier  "MonitorLVDS1"
  VendorName  "Monitor Vendor"
  ModelName   "Monitor Model"
EndSection

Section "Monitor"
  Identifier  "MonitorDP1"
  VendorName  "Acer"
  ModelName   "XB270H"
  Option  "Right Of" "MonitorLVDS1"
EndSection

Section "Device"
  Identifier  "Device0"
  BusID       "PCI:00:02:0"
  Option      "LVDS-1" "MonitorLVDS1"
  Option      "DP-1"   "MonitorDP1"
  Driver      "intel"
  Option      "CustomEDID" "DP1:/etc/X11/edid.bin"
  Option      "UseEDID" "true"
EndSection

Section "Screen"
  Identifier      "Screen0"
  Device          "Device0"
  DefaultDepth    24
  SubSection "Display"
      Depth           24
      Virtual   3286 1200
  EndSubSection
EndSection

Section "ServerLayout"
  Identifier      "Default Layout"
  Screen          "Screen0"
EndSection

相关内容