Skip to main content
replaced http://unix.stackexchange.com/ with https://unix.stackexchange.com/
Source Link
  1. Found out correct names for my monitors:

    $ for p in /sys/class/drm/*/status; do if [ "$(cat "$p")" == "connected" ]; then echo -n "$p" | awk -F '/' '{print $5}'; fi; done card0-HDMI-A-1 card0-LVDS-1 
  2. Install linux-doc (to get docs describing creation of custom EDID), dos2unix, make (for compiling EDID files) packages

    $ sudo apt-get install linux-doc dos2unix make 
  3. Create temporary directory for compilation and copy source files for EDID

    $ mkdir ~/Tmp/edid $ cd ~/Tmp/edid $ cp /usr/share/doc/linux-doc/EDID/* . $ rm *.S $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S . $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S 1366x768.S 
  4. Edit file 1366x768.S with correct valuesvalues, compile, copy to /lib/firmware/edid:

    • Obtain current working modeline for my laptop screen

       $ xvidtune -show "1366x768" 76.50 1366 1402 1450 1546 768 771 776 824 -hsync -vsync 

      They are in turn: resolution, clock MHz, hdisp, hsyncstart, hsyncend, htotal, vdisp, vsyncstart, vsyncend, vtotal

    • Calculate values:

       CLOCK = 76500 XPIX = hdisp = 1366 XBLANK = htotal - hdisp = 1546 - 1366 = 180 XOFFSET = hsyncstart - hdisp = 1402 - 1366 = 36 XPULSE = hsyncend - hsyncstart = 1450 - 1402 = 48 YPIX = vdisp = 768 YBLANK = vtotal - vdisp = 824 - 768 = 56 YOFFSET = 63 + vsyncstart - vdisp = 63 + 771 - 768 = 66 YPULSE = 63 + vsyncend - vsyncstart = 63 + 776 - 771 = 68 TIMING_NAME "Linux HDR" CRC 0xcd 
    • Final version 1366x768.S:

       $ cat 1366x768.S /* EDID */ #define VERSION 1 #define REVISION 3 /* Display */ #define CLOCK 76500 /* kHz */ #define XPIX 1366 #define YPIX 768 #define XY_RATIO XY_RATIO_16_9 #define XBLANK 180 #define YBLANK 56 #define XOFFSET 36 #define XPULSE 48 #define YOFFSET 66 #define YPULSE 68 #define DPI 96 #define VFREQ 60 /* Hz */ #define TIMING_NAME "Linux HDR" #define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ #define HSYNC_POL 1 #define VSYNC_POL 1 #define CRC 0xcd #include "edid.S" 
    • Compile files and check if no errors using edid-decode (sudo apt-get install edid-decode):

       $ make clean && make rm 1920x1080.o 1366x768.o $ ls -1 *.bin 1366x768.bin 1920x1080.bin $ edid-decode 1366x768.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 23 14 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: 8b c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: e2 1d 56 b4 50 00 38 30 24 30 35 00 63 c8 10 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 30 32 08 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 48 44 52 0a 20 20 20 extensions: 00 checksum: cd Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 35 cm x 20 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1360x816@60Hz Detailed mode: Clock 76.500 MHz, 355 mm x 200 mm 1366 1402 1450 1546 hborder 0 768 771 776 824 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 48-50kHz horizontal, max dotclock 80MHz Monitor name: Linux HDR Checksum: 0xcd $ edid-decode 1920x1080.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 32 1c 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: d1 c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: 02 3a 80 18 71 38 2d 40 58 2c 45 00 f4 19 11 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 42 44 0f 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 46 48 44 0a 20 20 20 extensions: 00 checksum: 05 Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 50 cm x 28 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1920x1152@60Hz Detailed mode: Clock 148.500 MHz, 500 mm x 281 mm 1920 2008 2052 2200 hborder 0 1080 1084 1089 1125 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 66-68kHz horizontal, max dotclock 150MHz Monitor name: Linux FHD Checksum: 0x5 
    • Copy files to /lib/firmware/edid

       $ sudo cp *.bin /lib/firmware/edid 
  5. Update initramfs, hook script should add edid files (they are there, I've checked)

    $ sudo update-initramfs -u 
  6. On boot, edit grub command line (pressed shift on boot to show grub menu and after press e) from:

    linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff 
  1. Found out correct names for my monitors:

    $ for p in /sys/class/drm/*/status; do if [ "$(cat "$p")" == "connected" ]; then echo -n "$p" | awk -F '/' '{print $5}'; fi; done card0-HDMI-A-1 card0-LVDS-1 
  2. Install linux-doc (to get docs describing creation of custom EDID), dos2unix, make (for compiling EDID files) packages

    $ sudo apt-get install linux-doc dos2unix make 
  3. Create temporary directory for compilation and copy source files for EDID

    $ mkdir ~/Tmp/edid $ cd ~/Tmp/edid $ cp /usr/share/doc/linux-doc/EDID/* . $ rm *.S $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S . $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S 1366x768.S 
  4. Edit file 1366x768.S with correct values, compile, copy to /lib/firmware/edid:

    • Obtain current working modeline for my laptop screen

       $ xvidtune -show "1366x768" 76.50 1366 1402 1450 1546 768 771 776 824 -hsync -vsync 

      They are in turn: resolution, clock MHz, hdisp, hsyncstart, hsyncend, htotal, vdisp, vsyncstart, vsyncend, vtotal

    • Calculate values:

       CLOCK = 76500 XPIX = hdisp = 1366 XBLANK = htotal - hdisp = 1546 - 1366 = 180 XOFFSET = hsyncstart - hdisp = 1402 - 1366 = 36 XPULSE = hsyncend - hsyncstart = 1450 - 1402 = 48 YPIX = vdisp = 768 YBLANK = vtotal - vdisp = 824 - 768 = 56 YOFFSET = 63 + vsyncstart - vdisp = 63 + 771 - 768 = 66 YPULSE = 63 + vsyncend - vsyncstart = 63 + 776 - 771 = 68 TIMING_NAME "Linux HDR" CRC 0xcd 
    • Final version 1366x768.S:

       $ cat 1366x768.S /* EDID */ #define VERSION 1 #define REVISION 3 /* Display */ #define CLOCK 76500 /* kHz */ #define XPIX 1366 #define YPIX 768 #define XY_RATIO XY_RATIO_16_9 #define XBLANK 180 #define YBLANK 56 #define XOFFSET 36 #define XPULSE 48 #define YOFFSET 66 #define YPULSE 68 #define DPI 96 #define VFREQ 60 /* Hz */ #define TIMING_NAME "Linux HDR" #define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ #define HSYNC_POL 1 #define VSYNC_POL 1 #define CRC 0xcd #include "edid.S" 
    • Compile files and check if no errors using edid-decode (sudo apt-get install edid-decode):

       $ make clean && make rm 1920x1080.o 1366x768.o $ ls -1 *.bin 1366x768.bin 1920x1080.bin $ edid-decode 1366x768.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 23 14 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: 8b c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: e2 1d 56 b4 50 00 38 30 24 30 35 00 63 c8 10 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 30 32 08 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 48 44 52 0a 20 20 20 extensions: 00 checksum: cd Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 35 cm x 20 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1360x816@60Hz Detailed mode: Clock 76.500 MHz, 355 mm x 200 mm 1366 1402 1450 1546 hborder 0 768 771 776 824 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 48-50kHz horizontal, max dotclock 80MHz Monitor name: Linux HDR Checksum: 0xcd $ edid-decode 1920x1080.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 32 1c 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: d1 c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: 02 3a 80 18 71 38 2d 40 58 2c 45 00 f4 19 11 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 42 44 0f 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 46 48 44 0a 20 20 20 extensions: 00 checksum: 05 Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 50 cm x 28 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1920x1152@60Hz Detailed mode: Clock 148.500 MHz, 500 mm x 281 mm 1920 2008 2052 2200 hborder 0 1080 1084 1089 1125 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 66-68kHz horizontal, max dotclock 150MHz Monitor name: Linux FHD Checksum: 0x5 
    • Copy files to /lib/firmware/edid

       $ sudo cp *.bin /lib/firmware/edid 
  5. Update initramfs, hook script should add edid files (they are there, I've checked)

    $ sudo update-initramfs -u 
  6. On boot, edit grub command line (pressed shift on boot to show grub menu and after press e) from:

    linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff 
  1. Found out correct names for my monitors:

    $ for p in /sys/class/drm/*/status; do if [ "$(cat "$p")" == "connected" ]; then echo -n "$p" | awk -F '/' '{print $5}'; fi; done card0-HDMI-A-1 card0-LVDS-1 
  2. Install linux-doc (to get docs describing creation of custom EDID), dos2unix, make (for compiling EDID files) packages

    $ sudo apt-get install linux-doc dos2unix make 
  3. Create temporary directory for compilation and copy source files for EDID

    $ mkdir ~/Tmp/edid $ cd ~/Tmp/edid $ cp /usr/share/doc/linux-doc/EDID/* . $ rm *.S $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S . $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S 1366x768.S 
  4. Edit file 1366x768.S with correct values, compile, copy to /lib/firmware/edid:

    • Obtain current working modeline for my laptop screen

       $ xvidtune -show "1366x768" 76.50 1366 1402 1450 1546 768 771 776 824 -hsync -vsync 

      They are in turn: resolution, clock MHz, hdisp, hsyncstart, hsyncend, htotal, vdisp, vsyncstart, vsyncend, vtotal

    • Calculate values:

       CLOCK = 76500 XPIX = hdisp = 1366 XBLANK = htotal - hdisp = 1546 - 1366 = 180 XOFFSET = hsyncstart - hdisp = 1402 - 1366 = 36 XPULSE = hsyncend - hsyncstart = 1450 - 1402 = 48 YPIX = vdisp = 768 YBLANK = vtotal - vdisp = 824 - 768 = 56 YOFFSET = 63 + vsyncstart - vdisp = 63 + 771 - 768 = 66 YPULSE = 63 + vsyncend - vsyncstart = 63 + 776 - 771 = 68 TIMING_NAME "Linux HDR" CRC 0xcd 
    • Final version 1366x768.S:

       $ cat 1366x768.S /* EDID */ #define VERSION 1 #define REVISION 3 /* Display */ #define CLOCK 76500 /* kHz */ #define XPIX 1366 #define YPIX 768 #define XY_RATIO XY_RATIO_16_9 #define XBLANK 180 #define YBLANK 56 #define XOFFSET 36 #define XPULSE 48 #define YOFFSET 66 #define YPULSE 68 #define DPI 96 #define VFREQ 60 /* Hz */ #define TIMING_NAME "Linux HDR" #define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ #define HSYNC_POL 1 #define VSYNC_POL 1 #define CRC 0xcd #include "edid.S" 
    • Compile files and check if no errors using edid-decode (sudo apt-get install edid-decode):

       $ make clean && make rm 1920x1080.o 1366x768.o $ ls -1 *.bin 1366x768.bin 1920x1080.bin $ edid-decode 1366x768.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 23 14 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: 8b c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: e2 1d 56 b4 50 00 38 30 24 30 35 00 63 c8 10 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 30 32 08 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 48 44 52 0a 20 20 20 extensions: 00 checksum: cd Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 35 cm x 20 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1360x816@60Hz Detailed mode: Clock 76.500 MHz, 355 mm x 200 mm 1366 1402 1450 1546 hborder 0 768 771 776 824 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 48-50kHz horizontal, max dotclock 80MHz Monitor name: Linux HDR Checksum: 0xcd $ edid-decode 1920x1080.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 32 1c 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: d1 c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: 02 3a 80 18 71 38 2d 40 58 2c 45 00 f4 19 11 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 42 44 0f 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 46 48 44 0a 20 20 20 extensions: 00 checksum: 05 Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 50 cm x 28 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1920x1152@60Hz Detailed mode: Clock 148.500 MHz, 500 mm x 281 mm 1920 2008 2052 2200 hborder 0 1080 1084 1089 1125 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 66-68kHz horizontal, max dotclock 150MHz Monitor name: Linux FHD Checksum: 0x5 
    • Copy files to /lib/firmware/edid

       $ sudo cp *.bin /lib/firmware/edid 
  5. Update initramfs, hook script should add edid files (they are there, I've checked)

    $ sudo update-initramfs -u 
  6. On boot, edit grub command line (pressed shift on boot to show grub menu and after press e) from:

    linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff 
edited tags
Link
piotrekkr
  • 579
  • 11
  • 20
added 7968 characters in body
Source Link
piotrekkr
  • 579
  • 11
  • 20

UPDATE 2

Still not working. Steps I took:

  1. Found out correct names for my monitors:

    $ for p in /sys/class/drm/*/status; do if [ "$(cat "$p")" == "connected" ]; then echo -n "$p" | awk -F '/' '{print $5}'; fi; done card0-HDMI-A-1 card0-LVDS-1 
  2. Install linux-doc (to get docs describing creation of custom EDID), dos2unix, make (for compiling EDID files) packages

    $ sudo apt-get install linux-doc dos2unix make 
  3. Create temporary directory for compilation and copy source files for EDID

    $ mkdir ~/Tmp/edid $ cd ~/Tmp/edid $ cp /usr/share/doc/linux-doc/EDID/* . $ rm *.S $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S . $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S 1366x768.S 
  4. Edit file 1366x768.S with correct values, compile, copy to /lib/firmware/edid:

    • Obtain current working modeline for my laptop screen

       $ xvidtune -show "1366x768" 76.50 1366 1402 1450 1546 768 771 776 824 -hsync -vsync 

      They are in turn: resolution, clock MHz, hdisp, hsyncstart, hsyncend, htotal, vdisp, vsyncstart, vsyncend, vtotal

    • Calculate values:

       CLOCK = 76500 XPIX = hdisp = 1366 XBLANK = htotal - hdisp = 1546 - 1366 = 180 XOFFSET = hsyncstart - hdisp = 1402 - 1366 = 36 XPULSE = hsyncend - hsyncstart = 1450 - 1402 = 48 YPIX = vdisp = 768 YBLANK = vtotal - vdisp = 824 - 768 = 56 YOFFSET = 63 + vsyncstart - vdisp = 63 + 771 - 768 = 66 YPULSE = 63 + vsyncend - vsyncstart = 63 + 776 - 771 = 68 TIMING_NAME "Linux HDR" CRC 0xcd 
    • Final version 1366x768.S:

       $ cat 1366x768.S /* EDID */ #define VERSION 1 #define REVISION 3 /* Display */ #define CLOCK 76500 /* kHz */ #define XPIX 1366 #define YPIX 768 #define XY_RATIO XY_RATIO_16_9 #define XBLANK 180 #define YBLANK 56 #define XOFFSET 36 #define XPULSE 48 #define YOFFSET 66 #define YPULSE 68 #define DPI 96 #define VFREQ 60 /* Hz */ #define TIMING_NAME "Linux HDR" #define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ #define HSYNC_POL 1 #define VSYNC_POL 1 #define CRC 0xcd #include "edid.S" 
    • Compile files and check if no errors using edid-decode (sudo apt-get install edid-decode):

       $ make clean && make rm 1920x1080.o 1366x768.o $ ls -1 *.bin 1366x768.bin 1920x1080.bin $ edid-decode 1366x768.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 23 14 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: 8b c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: e2 1d 56 b4 50 00 38 30 24 30 35 00 63 c8 10 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 30 32 08 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 48 44 52 0a 20 20 20 extensions: 00 checksum: cd Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 35 cm x 20 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1360x816@60Hz Detailed mode: Clock 76.500 MHz, 355 mm x 200 mm 1366 1402 1450 1546 hborder 0 768 771 776 824 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 48-50kHz horizontal, max dotclock 80MHz Monitor name: Linux HDR Checksum: 0xcd $ edid-decode 1920x1080.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 32 1c 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: d1 c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: 02 3a 80 18 71 38 2d 40 58 2c 45 00 f4 19 11 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 42 44 0f 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 46 48 44 0a 20 20 20 extensions: 00 checksum: 05 Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 50 cm x 28 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1920x1152@60Hz Detailed mode: Clock 148.500 MHz, 500 mm x 281 mm 1920 2008 2052 2200 hborder 0 1080 1084 1089 1125 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 66-68kHz horizontal, max dotclock 150MHz Monitor name: Linux FHD Checksum: 0x5 
    • Copy files to /lib/firmware/edid

       $ sudo cp *.bin /lib/firmware/edid 
  5. Update initramfs, hook script should add edid files (they are there, I've checked)

    $ sudo update-initramfs -u 
  6. On boot, edit grub command line (pressed shift on boot to show grub menu and after press e) from:

    linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff 

to

 linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff drm_kms_helper.edid_firmware=card0-LVDS-1:/lib/firmware/edid/1366x768.bin drm_kms_helper.edid_firmware=card0-HDMI-A-1:/lib/firmware/edid/1920x1080.bin 

Also I've tried setting it just for one monitor. But no luck at all. I'm starting to think that it is not a problem with resolution but with plymouth image itself. When I see boot image it is not blurred, stretched or anything and Linux mint logo is sharp and clear. It's just smaller than my screen and placed in left top part of my laptop and HDMI screen.

I've found this bug that is really similar to my problem. So I think I must wait for them to fix this.

UPDATE 2

Still not working. Steps I took:

  1. Found out correct names for my monitors:

    $ for p in /sys/class/drm/*/status; do if [ "$(cat "$p")" == "connected" ]; then echo -n "$p" | awk -F '/' '{print $5}'; fi; done card0-HDMI-A-1 card0-LVDS-1 
  2. Install linux-doc (to get docs describing creation of custom EDID), dos2unix, make (for compiling EDID files) packages

    $ sudo apt-get install linux-doc dos2unix make 
  3. Create temporary directory for compilation and copy source files for EDID

    $ mkdir ~/Tmp/edid $ cd ~/Tmp/edid $ cp /usr/share/doc/linux-doc/EDID/* . $ rm *.S $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S . $ cp /usr/share/doc/linux-doc/EDID/1920x1080.S 1366x768.S 
  4. Edit file 1366x768.S with correct values, compile, copy to /lib/firmware/edid:

    • Obtain current working modeline for my laptop screen

       $ xvidtune -show "1366x768" 76.50 1366 1402 1450 1546 768 771 776 824 -hsync -vsync 

      They are in turn: resolution, clock MHz, hdisp, hsyncstart, hsyncend, htotal, vdisp, vsyncstart, vsyncend, vtotal

    • Calculate values:

       CLOCK = 76500 XPIX = hdisp = 1366 XBLANK = htotal - hdisp = 1546 - 1366 = 180 XOFFSET = hsyncstart - hdisp = 1402 - 1366 = 36 XPULSE = hsyncend - hsyncstart = 1450 - 1402 = 48 YPIX = vdisp = 768 YBLANK = vtotal - vdisp = 824 - 768 = 56 YOFFSET = 63 + vsyncstart - vdisp = 63 + 771 - 768 = 66 YPULSE = 63 + vsyncend - vsyncstart = 63 + 776 - 771 = 68 TIMING_NAME "Linux HDR" CRC 0xcd 
    • Final version 1366x768.S:

       $ cat 1366x768.S /* EDID */ #define VERSION 1 #define REVISION 3 /* Display */ #define CLOCK 76500 /* kHz */ #define XPIX 1366 #define YPIX 768 #define XY_RATIO XY_RATIO_16_9 #define XBLANK 180 #define YBLANK 56 #define XOFFSET 36 #define XPULSE 48 #define YOFFSET 66 #define YPULSE 68 #define DPI 96 #define VFREQ 60 /* Hz */ #define TIMING_NAME "Linux HDR" #define ESTABLISHED_TIMINGS_BITS 0x00 /* none */ #define HSYNC_POL 1 #define VSYNC_POL 1 #define CRC 0xcd #include "edid.S" 
    • Compile files and check if no errors using edid-decode (sudo apt-get install edid-decode):

       $ make clean && make rm 1920x1080.o 1366x768.o $ ls -1 *.bin 1366x768.bin 1920x1080.bin $ edid-decode 1366x768.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 23 14 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: 8b c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: e2 1d 56 b4 50 00 38 30 24 30 35 00 63 c8 10 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 30 32 08 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 48 44 52 0a 20 20 20 extensions: 00 checksum: cd Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 35 cm x 20 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1360x816@60Hz Detailed mode: Clock 76.500 MHz, 355 mm x 200 mm 1366 1402 1450 1546 hborder 0 768 771 776 824 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 48-50kHz horizontal, max dotclock 80MHz Monitor name: Linux HDR Checksum: 0xcd $ edid-decode 1920x1080.bin Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 31 d8 00 00 00 00 00 00 05 16 version: 01 03 basic params: 6d 32 1c 78 ea chroma info: 5e c0 a4 59 4a 98 25 20 50 54 established: 00 00 00 standard: d1 c0 01 01 01 01 01 01 01 01 01 01 01 01 01 01 descriptor 1: 02 3a 80 18 71 38 2d 40 58 2c 45 00 f4 19 11 00 00 1e descriptor 2: 00 00 00 ff 00 4c 69 6e 75 78 20 23 30 0a 20 20 20 20 descriptor 3: 00 00 00 fd 00 3b 3d 42 44 0f 00 0a 20 20 20 20 20 20 descriptor 4: 00 00 00 fc 00 4c 69 6e 75 78 20 46 48 44 0a 20 20 20 extensions: 00 checksum: 05 Manufacturer: LNX Model 0 Serial Number 0 Made week 5 of 2012 EDID version: 1.3 Analog display, Input voltage level: 0.7/0.7 V Sync: Separate Composite Serration Maximum image size: 50 cm x 28 cm Gamma: 2.20 DPMS levels: Standby Suspend Off RGB color display First detailed timing is preferred timing Established timings supported: Standard timings supported: 1920x1152@60Hz Detailed mode: Clock 148.500 MHz, 500 mm x 281 mm 1920 2008 2052 2200 hborder 0 1080 1084 1089 1125 vborder 0 +hsync +vsync Serial number: Linux #0 Monitor ranges: 59-61HZ vertical, 66-68kHz horizontal, max dotclock 150MHz Monitor name: Linux FHD Checksum: 0x5 
    • Copy files to /lib/firmware/edid

       $ sudo cp *.bin /lib/firmware/edid 
  5. Update initramfs, hook script should add edid files (they are there, I've checked)

    $ sudo update-initramfs -u 
  6. On boot, edit grub command line (pressed shift on boot to show grub menu and after press e) from:

    linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff 

to

 linux /vmlinuz-3.13.0-24-generic root=/dev/mapper/mint--vg-root ro quiet splash $vt_handoff drm_kms_helper.edid_firmware=card0-LVDS-1:/lib/firmware/edid/1366x768.bin drm_kms_helper.edid_firmware=card0-HDMI-A-1:/lib/firmware/edid/1920x1080.bin 

Also I've tried setting it just for one monitor. But no luck at all. I'm starting to think that it is not a problem with resolution but with plymouth image itself. When I see boot image it is not blurred, stretched or anything and Linux mint logo is sharp and clear. It's just smaller than my screen and placed in left top part of my laptop and HDMI screen.

I've found this bug that is really similar to my problem. So I think I must wait for them to fix this.

added 6 characters in body
Source Link
piotrekkr
  • 579
  • 11
  • 20
Loading
added 3209 characters in body
Source Link
piotrekkr
  • 579
  • 11
  • 20
Loading
deleted 1 character in body; edited title
Source Link
slm
  • 380k
  • 127
  • 793
  • 897
Loading
edited title
Link
piotrekkr
  • 579
  • 11
  • 20
Loading
Source Link
piotrekkr
  • 579
  • 11
  • 20
Loading