0

I've acquired a couple of HP L1750 monitors, which have VGA & DVI inputs. The VGA inputs work without issue. However, the DVI input only works until Kernel Mode Setting (KMS) occurs, after which it declares it isn't receiving a signal and enters sleep mode. I've tested two different HP L1750 monitors, with different DVI cables and different DVI source providers (i.e. different video cards) and the same behaviour obtains.

I've also tried manually specifying the appropriate resolution via a kernel boot option, e.g.:

video=DVI-D-0:1280x1024@60e

As well as manually configuring xorg.conf (relying on the the output of hwinfo --monitor) to:

Section "Device"
    Identifier  "DefaultDevice"
EndSection

Section "Monitor"
    Identifier  "DefaultMonitor"
    HorizSync   24-83
    VertRefresh 50-77
    Option      "TargetRefreshRate" "60"
    Option      "DDC"   "off"
    Option      "DPMS"  "off"
    Option      "DefaultModes"  "on"
    Option      "PreferredMode" "1280x1024"
EndSection

Section "Screen"
    Identifier  "DefaultScreen"
    Device      "DefaultDevice"
    Monitor     "DefaultMonitor"
EndSection

The issue seems to be that the DVI of this monitor is defective without a special Windows driver to fix it.

How do I determine what the appropriate EDID should be? And how do I go about loading it into RAM after boot?

EDIT:

Information about graphics card, kernel driver, X driver etc.:

$ inxi -Gxxxxx
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 
           vendor: Micro-Star MSI driver: amdgpu v: kernel bus ID: 01:00.0 chip ID: 1002:67df 
           Display: x11 server: X.Org 1.20.4 driver: amdgpu unloaded: modesetting alternate: ati,fbdev,vesa 
           compositor: kwin_x11 resolution: 1920x1080~60Hz 
           OpenGL: renderer: AMD Radeon RX 470 Graphics (POLARIS10 DRM 3.30.0 5.1.4-arch1-1-ARCH LLVM 8.0.0) 
           v: 4.5 Mesa 19.0.5 direct render: Yes 

In terms of xrandr, it claims the DVI-D-0 is disconnected (even though it is connected and even though the monitor shows output via DVI-D-0 pre-KMS); I include here the modes it lists via VGA (note it's connected to VGA via a HDMI->VGA converter, so what shows up as HDMI-A-1 is actually the VGA connection)

HDMI-A-1 connected 1280x1024+0+696 (normal left inverted right x axis y axis) 340mm x 270mm
   1280x1024     60.02 +  75.02* 
   1920x1080     60.00    59.94  
   1280x800      60.02  
   1152x864      75.00  
   1280x720      60.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32  
   720x480       60.00    59.94  
   640x480       75.00    72.81    60.00    59.94  
   720x400       70.08  
DVI-D-0 disconnected (normal left inverted right x axis y axis)

Trying to set the display manually with xrandr doesn't seem to work:

$ xrandr --output DVI-D-0 --mode 1280x1024
xrandr: cannot find mode 1280x1024

Doing xrandr --output DVI-D-0 doesn't result in a "cannot find mode" message, but it doesn't turn the display on via DVI either. I tried xrandr --output DVI-D-0 --mode [...] for all of the resolutions listed above for the VGA connection, from 1280x1024 to 720x400, and all result in the "cannot find mode" message.

EDIT2: Xorg.0.log information relevant to EDID:

[    45.594] (II) AMDGPU(0): EDID for output HDMI-A-1
[    45.594] (II) AMDGPU(0): Manufacturer: HWP  Model: 26e9  Serial#: 16843009
[    45.594] (II) AMDGPU(0): Year: 2008  Week: 2
[    45.594] (II) AMDGPU(0): EDID Version: 1.3
[    45.594] (II) AMDGPU(0): Digital Display Input
[    45.594] (II) AMDGPU(0): Max Image Size [cm]: horiz.: 34  vert.: 27
[    45.594] (II) AMDGPU(0): Gamma: 2.40
[    45.594] (II) AMDGPU(0): DPMS capabilities: StandBy Suspend Off
[    45.594] (II) AMDGPU(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
[    45.594] (II) AMDGPU(0): Default color space is primary color space
[    45.594] (II) AMDGPU(0): First detailed timing is preferred mode
[    45.594] (II) AMDGPU(0): redX: 0.640 redY: 0.349   greenX: 0.284 greenY: 0.617
[    45.594] (II) AMDGPU(0): blueX: 0.142 blueY: 0.067   whiteX: 0.313 whiteY: 0.329
[    45.594] (II) AMDGPU(0): Supported established timings:
[    45.594] (II) AMDGPU(0): 720x400@70Hz
[    45.594] (II) AMDGPU(0): 640x480@60Hz
[    45.594] (II) AMDGPU(0): 640x480@72Hz
[    45.594] (II) AMDGPU(0): 640x480@75Hz
[    45.594] (II) AMDGPU(0): 800x600@60Hz
[    45.594] (II) AMDGPU(0): 800x600@72Hz
[    45.594] (II) AMDGPU(0): 800x600@75Hz
[    45.594] (II) AMDGPU(0): 832x624@75Hz
[    45.594] (II) AMDGPU(0): 1024x768@60Hz
[    45.594] (II) AMDGPU(0): 1024x768@70Hz
[    45.594] (II) AMDGPU(0): 1024x768@75Hz
[    45.594] (II) AMDGPU(0): 1280x1024@75Hz
[    45.594] (II) AMDGPU(0): 1152x864@75Hz
[    45.594] (II) AMDGPU(0): Manufacturer's mask: 0
[    45.594] (II) AMDGPU(0): Supported standard timings:
[    45.594] (II) AMDGPU(0): #0: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[    45.594] (II) AMDGPU(0): Supported detailed timing:
[    45.594] (II) AMDGPU(0): clock: 108.0 MHz   Image Size:  340 x 270 mm
[    45.594] (II) AMDGPU(0): h_active: 1280  h_sync: 1328  h_sync_end 1440 h_blank_end 1688 h_border: 0
[    45.594] (II) AMDGPU(0): v_active: 1024  v_sync: 1025  v_sync_end 1028 v_blanking: 1066 v_border: 0
[    45.594] (II) AMDGPU(0): Ranges: V min: 50 V max: 77 Hz, H min: 24 H max: 83 kHz, PixClock max 145 MHz
[    45.594] (II) AMDGPU(0): Monitor name: HP L1750
[    45.594] (II) AMDGPU(0): Serial No: CND8020JJG
[    45.594] (II) AMDGPU(0): Supported detailed timing:
[    45.594] (II) AMDGPU(0): clock: 27.0 MHz   Image Size:  160 x 90 mm
[    45.594] (II) AMDGPU(0): h_active: 720  h_sync: 736  h_sync_end 798 h_blank_end 858 h_border: 0
[    45.594] (II) AMDGPU(0): v_active: 480  v_sync: 489  v_sync_end 495 v_blanking: 525 v_border: 0
[    45.594] (II) AMDGPU(0): Number of EDID sections to follow: 1
[    45.594] (II) AMDGPU(0): EDID (in hex):
[    45.594] (II) AMDGPU(0):    00ffffffffffff0022f0e92601010101
[    45.594] (II) AMDGPU(0):    0212010380221b8ceedc55a359489e24
[    45.594] (II) AMDGPU(0):    115054adef8081800101010101010101
[    45.594] (II) AMDGPU(0):    010101010101302a009851002a403070
[    45.594] (II) AMDGPU(0):    1300540e1100001e000000fd00324d18
[    45.594] (II) AMDGPU(0):    530e000a202020202020000000fc0048
[    45.594] (II) AMDGPU(0):    50204c313735300a20202020000000ff
[    45.594] (II) AMDGPU(0):    00434e44383032304a4a470a202001b0
[    45.594] (II) AMDGPU(0):    02031b61230907078301000067030c00
[    45.594] (II) AMDGPU(0):    2000802d43908402e2000f8c0ad08a20
[    45.594] (II) AMDGPU(0):    e02d10103e9600a05a00000000000000
[    45.594] (II) AMDGPU(0):    00000000000000000000000000000000
[    45.594] (II) AMDGPU(0):    00000000000000000000000000000000
[    45.594] (II) AMDGPU(0):    00000000000000000000000000000000
[    45.594] (II) AMDGPU(0):    00000000000000000000000000000000
[    45.594] (II) AMDGPU(0):    00000000000000000000000000000029
[    45.594] (--) AMDGPU(0): HDMI max TMDS frequency 225000KHz
[    45.594] (II) AMDGPU(0): Printing probed modes for output HDMI-A-1
[    45.594] (II) AMDGPU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz eP)
[    45.594] (II) AMDGPU(0): Modeline "1920x1080"x60.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz e)
[    45.594] (II) AMDGPU(0): Modeline "1920x1080"x59.9  148.35  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.4 kHz e)
[    45.594] (II) AMDGPU(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    45.594] (II) AMDGPU(0): Modeline "1280x800"x60.0  108.00  1280 1328 1440 1688  800 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    45.594] (II) AMDGPU(0): Modeline "1152x864"x75.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    45.594] (II) AMDGPU(0): Modeline "1280x720"x60.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "1280x720"x59.9   74.18  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "1024x768"x75.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "1024x768"x70.1   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "832x624"x74.6   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "800x600"x72.2   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "800x600"x75.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "720x480"x60.0   27.03  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "720x480"x59.9   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "640x480"x75.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "640x480"x72.8   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "640x480"x60.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    45.595] (II) AMDGPU(0): Modeline "720x400"x70.1   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    45.595] (II) AMDGPU(0): EDID for output DVI-D-0
[    45.595] (II) AMDGPU(0): Output DisplayPort-0 connected
[    45.595] (II) AMDGPU(0): Output DisplayPort-1 disconnected
[    45.595] (II) AMDGPU(0): Output HDMI-A-0 connected
[    45.595] (II) AMDGPU(0): Output HDMI-A-1 connected
[    45.595] (II) AMDGPU(0): Output DVI-D-0 disconnected
[    45.595] (II) AMDGPU(0): Using user preference for initial modes
[    45.595] (II) AMDGPU(0): Output DisplayPort-0 using initial mode 1280x1024 +0+0
[    45.595] (II) AMDGPU(0): Output HDMI-A-0 using initial mode 1280x1024 +0+0
[    45.595] (II) AMDGPU(0): Output HDMI-A-1 using initial mode 1280x1024 +0+0
[    45.595] (II) AMDGPU(0): mem size init: gart size :ff973000 vram size: s:ff2e8000 visible:f2e8000
[    45.595] (==) AMDGPU(0): DPI set to (96, 96)
[    45.595] (==) AMDGPU(0): Using gamma correction (1.0, 1.0, 1.0)
1

Prelimary answer:

1) Look into /var/log/Xorg.0.log to see the decoded EDID that is received. Use ssh or a virtual console to get at the information if the display is blank, or connect monitors both on VGA and DVI outputs, or even connect the same monitor both with VGA and DVI.

While you are at that, also edit the question with the information what graphic card it is, what kernel driver it uses, and what X driver it uses.

There are alternative methods that also give you the raw EDID, e.g. the read-edid Debian package, or /sys/devices/.../drm/card*/card*-*/edid on graphic cards with a kernel driver that gives this information.

2) Once you know which modes are supported, try all the modes, with xrandr (set DISPLAY if doing that from ssh or a virtual console), on boot or otherwise. Start with the smallest mode. I'd be surprised if not at least some of the modes work.

3) Depending on your X driver, there are various options to either ignore the EDID (because you can specify all the information in the xorg.conf directly), or supply your own EDID. Read up on that in the man page, e.g. IgnoreEDID or CustomEDID.

4) If you need the correct EDID in KMS, you will need to understand the raw EDID format, fix the EDID with whatever modes worked for you, and then you can put the raw EDID as a binary file into the initramfs, edit /usr/lib/firmware/edid along the lines of

drm_kms_helper.edid_firmware=edid/your_edid.bin
drm_kms_helper.edid_firmware=VGA-1:edid/your_edid.bin

and cross your fingers it'll work, because debugging that is tedious.

  • I edited the original question with added information about the graphics card, kernel driver, X driver; what happens when trying to manually light up the monitor on DVI via xrandr; and relevant pieces from Xorg.0.log about the monitor's EDID and other information. – emacsomancer May 26 at 17:03
  • I am a bit confused about the output assignments. It says Display-Port-0, HDMI-A-0 and HDMI-A-1 are connected. If HDMA-A-1 is the HDMI-to-VGA connector, what are the other two? Note that these are internal names, even though you have a physical DVI connector, it may not be assigned to DVI-D-0. How did you conclude that DVI-D-0 is the correct output? Also note that the number of CRTC (or whatever Radeon calls them) may be limited; so you may not be able to drive more than 3 outputs, in which case the 4th output (DVI) could get ignored. Though you still should get an EDID for it... – dirkt May 27 at 6:23
  • Does /sys/devices/.../drm/card*/card*-*/edid exist for the Radeon DRM driver? Or possibly something similar with a slightly different name? I don't own Radeon hardware, so I can't check. Does EDID information about the DVI output appear in dmesg after boot? – dirkt May 27 at 6:25
  • 1
    So let's widen the scope. Either connect the HP L1750 to some other graphics card/other PC/other laptop with a DVI input that's known to work, and see if you get a EDID there. Or try to get hands on a HDMI-DVI converter, and connect it the HDMI output. There's many ways the EDID may fail to show up: Driver bugs, DDC connection broken on motherboard/cable/monitor, and probably others. Once you get a valid EDID for the HP L1750 somehow, no matter where, you can fake the EDID. – dirkt May 27 at 18:13
  • 1
    The manual says DDC2 is supported, and you can download .INF files, but I can't find them on the HP supporte site. Do you have the CDs they came with them? Can you try IgnoreEDID and supply the standard VESA 1024x1024@60Hz modeline? – dirkt May 28 at 1:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.