This is an old revision of the document!
Table of Contents
How to Update VU8C EDID
Update Guide (1) - Linux Host PC
Setup and Install Utilities
I2C driver module
Start I2C bus driver using i2c-dev module to setup interface for writing the EDID binary via HDMI DDC.
The I2C driver module can be different for Host PC specification.
$ sudo modprobe i2c-dev
Utilities
Then, install some utilities.
# sudo apt-get install i2c-tools # sudo apt-get install python-smbus # sudo apt-get install edid-decode
Check I2C
Using i2cdetect and i2c device nodes, all the i2c busses can be found.
$ ls /dev/i2c* /dev/i2c-0 /dev/i2c-10 /dev/i2c-12 /dev/i2c-14 /dev/i2c-16 /dev/i2c-18 /dev/i2c-3 /dev/i2c-5 /dev/i2c-7 /dev/i2c-9 /dev/i2c-1 /dev/i2c-11 /dev/i2c-13 /dev/i2c-15 /dev/i2c-17 /dev/i2c-2 /dev/i2c-4 /dev/i2c-6 /dev/i2c-8 $ i2cdetect -l i2c-0 unknown i915 gmbus ssc N/A i2c-1 unknown i915 gmbus vga N/A i2c-2 unknown i915 gmbus panel N/A i2c-3 unknown i915 gmbus dpc N/A i2c-4 unknown i915 gmbus dpb N/A i2c-5 unknown i915 gmbus dpd N/A i2c-6 unknown DPDDC-B N/A .... .... i2c-18 unknown nouveau-0000:01:00.0-29 N/A
In my case, bus#4 is assigned to HDMI channel that is connected to VU8C.
Scan EDID bus
The command, get-edid scans potential buses that handle EDID.
The below example shows bus#2 (Main monitor) and bus#4 (Connected to VU8C).
$ sudo get-edid This is read-edid version 3.0.1. Prepare for some fun. Attempting to use i2c interface No EDID on bus 0 No EDID on bus 1 No EDID on bus 3 No EDID on bus 5 ... ... No EDID on bus 18 2 potential busses found: 2 4 Will scan through until the first EDID is found. Pass a bus number as an option to this program to go only for that one. 128-byte EDID successfully retrieved from i2c bus 2 ������0��#x ՞YP�&PT6��p8@0 5Y�6��p8@0 5Y��C088T�156WF1 Looks like i2c was successful. Have a good day.
Install 'edid-rw' program
To write EDID binary and read-back it, we use the utility edid-rw and edid-decode.
https://github.com/bulletmark/edid-rw
Please download source codes from the github and build it.
# git clone https://github.com/bulletmark/edid-rw # cd edid-rw # make
Write EDID binary
Download EDID binary for VU8C
Please refer to the following to download edid_vu8c.bin.
Download edid_vu8c.bin
or
wget http://dn.odroid.com/edid_vu8c.bin
Write EDID binary and Check result
Before writing EDID binary, please make sure the I2C device node.
This process can destroy your display or other connected hardware if run incorrectly.
The usage of edid-rw is as following.
$ edid-rw -w [bus no.] < [edid binary]
In my case, the bus node to VU8C is bus#4.
$ sudo ./edid-rw -w 4 < edid_vu8c.bin
Then, using the following commands, you can check if it's completely done.
$ sudo ./edid-rw 4 | edid-decode Extracted contents: header: 00 ff ff ff ff ff ff 00 serial number: 21 6c 30 00 01 00 00 00 0a 14 version: 01 03 basic params: 80 10 0c 78 0a chroma info: cf 74 a3 57 4c b0 23 09 48 4c established: 21 08 00 standard: 61 40 45 40 61 40 95 00 01 01 01 01 01 01 01 01 descriptor 1: 64 19 00 22 41 00 26 30 14 0a 44 00 a0 78 00 00 00 1e descriptor 2: 64 19 80 22 41 00 26 30 14 0a 44 00 a0 78 00 00 00 9e descriptor 3: 00 00 00 fc 00 4d 53 74 61 72 20 44 65 6d 6f 0a 20 20 descriptor 4: 00 00 00 fd 00 32 4b 1e 50 12 00 0a 20 20 20 20 20 20 extensions: 00 checksum: 50 Manufacturer: HKL Model 30 Serial Number 1 Made week 10 of 2010 EDID version: 1.3 Digital display Maximum image size: 16 cm x 12 cm Gamma: 2.20 Supported color formats: RGB 4:4:4, YCrCb 4:2:2 First detailed timing is preferred timing Established timings supported: 640x480@60Hz 800x600@60Hz 1024x768@60Hz Standard timings supported: 1024x768@60Hz 800x600@60Hz 1024x768@60Hz 1440x900@60Hz Detailed mode: Clock 65.000 MHz, 160 mm x 120 mm 1024 1044 1054 1314 hborder 0 768 772 776 806 vborder 0 +hsync +vsync Detailed mode: Clock 65.000 MHz, 160 mm x 120 mm 1152 1172 1182 1442 hborder 0 768 772 776 806 vborder 0 +hsync +vsync interlaced Monitor name: MStar Demo Monitor ranges: 50-75HZ vertical, 30-80kHz horizontal, max dotclock 180MHz Checksum: 0x50
Also, you can confirm it using xrandr.
$ xrandr Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 LVDS1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 345mm x 194mm 1920x1080 59.9*+ ... ... 800x600 60.3 56.2 640x480 59.9 DP1 disconnected (normal left inverted right x axis y axis) HDMI1 connected (normal left inverted right x axis y axis) 1024x768 61.4 + 60.0 1440x900 59.9 1152x768i 111.9 800x600 60.3 640x480 60.0 VGA1 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis
Update Guide (2) - ODROID-C2/C1+
(Under Construction…)
You can also update VU8C edid binary on ODROID-C2 board.
Almost instructions are same as aforementioned for Linux Host PC except preparing I2C driver for HDMI DDC.
The version should be [……] to activate i2c under dev node.
Utility
# sudo apt-get install i2c-tools # sudo apt-get install python-smbus edid-decode # sudo apt-get install git # git clone https://github.com/bulletmark/edid-rw # cd edid-rw # make
Instruction
# i2cdetect -l i2c-0 i2c i2c_gpio I2C adapter # ./edid-rw -w 0 < edid_vu8c.bin # ./edid-rw 0 | edid-decode