Lower screen resolution 1600x1200 does not fill the area of the Dasung HD-F e-ink monitor

I bought the Dasung HD-F 2019 e-ink monitor. The default screen resolution is 2200x1650 @ 40. Dasung also supports 1600x1200 @ 60 and I would like to use that. Unfortunately, the screen does not fill completely in Fedora 34. My notebook has Intel UHD Graphics 620.

I don’t know where the problem is, but my guess is that the system thinks Dasung is 20x15 cm in size. In fact, it is 27x20 cm. Filled area is exactly 20x15 cm.

I completely do not know how to configure monitors in Linux in an advanced way. I spent many hours reading and trying different ways.

What I did (using some tutorials): I made hex dump of edid and replaced 20x15 cm with 27x20 cm (offset 0x15 and 0x16). Changed offset 0x7f to the new checksum. Copied file to /lib/firmware/edid/correct-edid.bin. Created Dracut configuration /etc/dracut.conf.d/00-dasung-hdf-edid.conf to copy the new EDID into initramfs:

install_items+=" /lib/firmware/edid/correct-edid.bin "

Regenerated initramfs using Dracut: sudo dracut -f. Added drm.edid_firmware=HDMI-A-1:edid/correct-edid.bin to the end of GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub. At the end: sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Unfortunately it didn’t help.

Result of xrandr --verbose:

Screen 0: minimum 320 x 200, current 2200 x 2730, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+1650 (0x47) normal (normal left inverted right x axis y axis) 309mm x 174mm
    Identifier: 0x42
    Timestamp:  242415
    Subpixel:   unknown
    Gamma:      1.0:1.0:1.0
    Brightness: 1.0
    Clones:    
    CRTC:       0
    CRTCs:      0 1 2
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter: 
    _MUTTER_PRESENTATION_OUTPUT: 0 
    EDID: 
        00ffffffffffff0006af3d3200000000
        101c0104a51f117802fc15a055509b27
        0c505400000001010101010101010101
        010101010101143780b8703824401010
        3e0035ae100000180000000f00000000
        00000000000000000020000000fe0041
        554f0a202020202020202020000000fe
        004231343048414e30332e32200a00bd
    scaling mode: Full aspect 
        supported: Full, Center, Full aspect
    Colorspace: Default 
        supported: Default, RGB_Wide_Gamut_Fixed_Point, RGB_Wide_Gamut_Floating_Point, opRGB, DCI-P3_RGB_D65, BT2020_RGB, BT601_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, BT2020_CYCC, BT2020_YCC
    max bpc: 12 
        range: (6, 12)
    Broadcast RGB: Automatic 
        supported: Automatic, Full, Limited 16:235
    panel orientation: Normal 
        supported: Normal, Upside Down, Left Side Up, Right Side Up
    link-status: Good 
        supported: Good, Bad
    CONNECTOR_ID: 95 
        supported: 95
    non-desktop: 0 
        range: (0, 1)
  1920x1080 (0x45) 141.000MHz -HSync -VSync +preferred
        h: width  1920 start 1936 end 1952 total 2104 skew    0 clock  67.02KHz
        v: height 1080 start 1083 end 1097 total 1116           clock  60.05Hz

    <HERE LONG LIST OF RESOLUTIONS OF MY NOTEBOOK MONITOR>



HDMI-1 connected 2200x1650+0+0 (0x7b2) normal (normal left inverted right x axis y axis) 200mm x 150mm
    Identifier: 0x43
    Timestamp:  242415
    Subpixel:   unknown
    Gamma:      1.0:1.0:1.0
    Brightness: 1.0
    Clones:    
    CRTC:       1
    CRTCs:      0 1 2
    Transform:  1.000000 0.000000 0.000000
                0.000000 1.000000 0.000000
                0.000000 0.000000 1.000000
               filter: 
    _MUTTER_PRESENTATION_OUTPUT: 0 
    EDID: 
        00ffffffffffff001263010000000000
        0a1d0103801b14782a08a5a2574fa228   <--- 1b14 (27 x 20 cm) is my own change
        0f505400000001010101010101010101        using custom edid file, before
        010101010101c13e98a880722e603820        it was 140f (20 x 15 cm)
        3600c8960000001e0000001000000000
        00000000000000000000000000fc0050
        617065726c696b6520482044483f4030
        62b0324040c013006d552100001e00c5
    HDCP Content Type: HDCP Type0 
        supported: HDCP Type0, HDCP Type1
    Content Protection: Undesired 
        supported: Undesired, Desired, Enabled
    max bpc: 12 
        range: (8, 12)
    content type: No Data 
        supported: No Data, Graphics, Photo, Cinema, Game
    Colorspace: Default 
        supported: Default, SMPTE_170M_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, opRGB, BT2020_CYCC, BT2020_RGB, BT2020_YCC, DCI-P3_RGB_D65, DCI-P3_RGB_Theater
    aspect ratio: Automatic 
        supported: Automatic, 4:3, 16:9
    Broadcast RGB: Automatic 
        supported: Automatic, Full, Limited 16:235
    audio: auto 
        supported: force-dvi, off, auto, on
    link-status: Good 
        supported: Good, Bad
    CONNECTOR_ID: 103 
        supported: 103
    non-desktop: 0 
        range: (0, 1)
  2200x1650 (0x7b2) 160.650MHz +HSync +VSync *current +preferred
        h: width  2200 start 2256 end 2288 total 2368 skew    0 clock  67.84KHz
        v: height 1650 start 1653 end 1659 total 1696           clock  40.00Hz
  1600x1200 (0x7b3) 162.000MHz +HSync +VSync
        h: width  1600 start 1664 end 1856 total 2160 skew    0 clock  75.00KHz
        v: height 1200 start 1201 end 1204 total 1250

Result of edid-decode < /sys/class/drm/card0-HDMI-A-1/edid:

edid-decode (hex):

00 ff ff ff ff ff ff 00 12 63 01 00 00 00 00 00
0a 1d 01 03 80 1b 14 78 2a 08 a5 a2 57 4f a2 28   <--- 1b14 (27 x 20 cm) is my own change
0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01        using custom edid file, before
01 01 01 01 01 01 c1 3e 98 a8 80 72 2e 60 38 20        it was 140f (20 x 15 cm)
36 00 c8 96 00 00 00 1e 00 00 00 10 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 fc 00 50
61 70 65 72 6c 69 6b 65 20 48 20 44 48 3f 40 30
62 b0 32 40 40 c0 13 00 6d 55 21 00 00 1e 00 c5

----------------

Block 0, Base EDID:
  EDID Structure Version & Revision: 1.3
  Vendor & Product Identification:
    Manufacturer: DSC
    Model: 1
    Made in: week 10 of 2019
  Basic Display Parameters & Features:
    Digital display
    Maximum image size: 27 cm x 20 cm    <--- before my changes it was 20x15
    Gamma: 2.20
    DPMS levels: Off
    RGB color display
    First detailed timing is the preferred timing
  Color Characteristics:
    Red  : 0.6328, 0.3398
    Green: 0.3105, 0.6328
    Blue : 0.1582, 0.0605
    White: 0.3134, 0.3291
  Established Timings I & II: none
  Standard Timings: none
  Detailed Timing Descriptors:
    DTD 1:  2200x1650   40.001 Hz   4:3    67.842 kHz  160.650 MHz (200 mm x 150 mm)
                 Hfront   56 Hsync  32 Hback  80 Hpol P
                 Vfront    3 Vsync   6 Vback  37 Vpol P
    Dummy Descriptor:
    Display Product Name: 'Paperlike H D'
    DTD 2:  1600x1200   60.000 Hz   4:3    75.000 kHz  162.000 MHz (621 mm x 341 mm)
                 Hfront   64 Hsync 192 Hback 304 Hpol P
                 Vfront    1 Vsync   3 Vback  46 Vpol P
Checksum: 0xc5

In Windows 10 everything works fine.

I will be grateful for your help.

1 Like

Cool monitor!

You say you completely do not know how to configure monitors, but it seems you are quite advanced judging from your post. :slight_smile:

When it comes to the dimensions of the monitor I believe that is only information from the monitor to the OS it can use as it wants; it doesn’t control the monitor in any way. Remember EDID is normally something the monitor tells the OS.

Information on how to control how the image is presented should be coming from the modelines, in this case the ones starting with 2200x1650 (0x7b3).

Unfortunately, I don’t know exactly how you should change that information. :frowning: (And I’m not positive what I write above is completely correct in the first place.) Maybe this information might help you along your continued googling.

Thank you for your response. I got a reply from Dasung:

But unlike Windows or macOS, which will scale up any resolution to 22001650 for output, Linux (with both X or Wayland) has a different behavior: When you select 16001200, the display driver will only output 1600 horizontal pixels and 1200 vertical pixels, without any scaling. And inside the Paperlike series, since we will map every pixel received 1:1 for display, the 1600 horizontal pixels received cannot fill the entire screen, hence the “border of white” you just saw.

So we are always recommending you only select the original resolution(2200@40Hz) for your Paperlike HD under any Linux distro. If you have any problem concerning the display size of UI elements, you can use Fractional Scaling like that one in Ubuntu 20.04, similar to Windows DPI scaling

1 Like