1 .\" shorthand for double quote that works everywhere.
5 edid-decode - Decode EDID data in human-readable format
7 .B edid-decode <options> [in [out]]
10 decodes EDID monitor description data in human-readable format.
11 If [in] is not given, or [in] is '-', then the EDID will be read from
12 standard input. If [out] is given then the EDID that was read from [in]
13 is written to [out] or to standard output if [out] is '-'. By default
14 the output is written as a hex dump when writing to standard output or
15 a raw EDID if written to a file.
17 If [out] is given then edid-decode only does the conversion, it will
18 skip the decoding step.
20 Input files may be raw binaries or ASCII text. ASCII input is scanned for
21 hex dumps; heuristics are included to search for hexdumps in
23 output (as long as the initial hex dump was included),
27 log file formats, otherwise the data is treated as a raw hexdump. EDID blocks
28 for connected monitors can be found in
29 .B /sys/class/drm/*/edid
30 on modern Linux systems with kernel modesetting support.
32 All timings are shown in a short format, for example:
34 VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (native)
35 VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz
36 VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz
38 Each format starts with a timings type prefix, the resolution, an optional
39 interlaced indicator ('i'), the frame rate (field rate for interlaced formats),
40 the picture aspect ratio, the horizontal frequency, the pixelclock
41 frequency and optionally additional flags between parenthesis.
43 Note that for interlaced formats the frame height is given, not the field
44 height. So each field in a 1920x1080i format has 540 lines.
46 Detailed timings have another 2-3 lines of data:
48 VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (native)
49 Hfront 88 Hsync 44 Hback 148 Hpol P
50 Vfront 4 Vsync 5 Vback 36 Vpol P
51 VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz
52 Hfront 88 Hsync 44 Hback 148 Hpol P
53 Vfront 2 Vsync 5 Vback 15 Vpol P Vfront +0.5 Odd Field
54 Vfront 2 Vsync 5 Vback 15 Vpol P Vback +0.5 Even Field
55 VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz
56 Hfront 32 Hsync 168 Hback 184 Hpol P
57 Vfront 23 Vsync 5 Vback 57 Vpol N Both Fields
59 These describe the horizontal and vertical front porch, sync, backporch
60 and sync polarity values. For interlaced formats there are two lines
61 for the vertical information: one for the Odd Field (aka Field 1) and
62 one for the Even Field (aka Field 2). The vertical front porch of the
63 Odd Field is actually 2.5 (hence the 'Vfront +0.5' at the end of the
64 line), and the back porch of the Even Field is actually 15.5 (hence
65 the 'Vback +0.5' at the end of the line).
67 There is a special 'VIC 39' interlaced format where both fields have
68 the same vertical timings, in that case this is marked with 'Both Fields'.
70 The following timing types can be shown:
74 DMT #: Discrete Monitor Timing (see DMT 1.3 standard). The number is the DMT ID in hexadecimal.
76 CVT: Coordinated Video Timings (formula-based, see CVT 1.2 standard)
78 GTF: Generalized Timing Formula (formula-based, see GTF 1.1 standard)
82 Apple: Old Apple Timings
84 VIC #: Video Identification Code (see CTA-861 standard). The number is the actual
87 HDMI VIC #: HDMI-specific Video Identification Code (see HDMI 2.1 standard). The number
88 is the actual HDMI VIC code.
90 DTD #: Detailed Timings Descriptor (see EDID standard). Also used for
91 DisplayID Video Timing Modes Types I, II, VI and VII. The number denotes that
92 this is the Nth DTD in the EDID.
95 By default DTDs are shown in the long format while others are just shown in
96 the short format. With the option \fB\-\-short\-timings\fR all timings are
97 shown in short format only. With the option \fB\-\-long\-timings\fR all timings
98 are shown in long format.
100 Alternate formats for long timings can be chosen via the \fB\-\-xmodeline\fR or
101 \fB\-\-fbmode\fR options.
105 The following EDID standards are supported by edid-decode:
108 EDID 1.3: VESA Enhanced Extended Display Identication Data Standard, Release A, Revision 1
110 EDID 1.4: VESA Enhanced Extended Display Identication Data Standard, Release A, Revision 2
112 DisplayID 1.3: VESA Display Identification Data (DisplayID) Standard, Version 1.3
114 DisplayID 2.0: VESA DisplayID Standard, Version 2.0
116 DI-EXT: VESA Display Information Extension Block Standard, Release A
118 LS-EXT: VESA Enhanced EDID Localized String Extension Standard, Release A
120 VTB-EXT: VESA Video Timing Block Extension Data Standard, Release A
122 DTCDB: VESA Display Transfer Characteristics Data Block Standard, Version 1.0
124 DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1
126 HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b
128 HDMI 2.1: High-Definition Multimedia Interface, Version 2.1
130 HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1
132 CTA-861-G: A DTV Profile for Uncompressed High Speed Digital Interfaces
134 SPWG Notebook Panel Specification, Version 3.5
136 EPI Embedded Panel Interface, Revision 1.0
140 The following related standards are also used by edid-decode:
143 DMT 1.3: VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT), Version 1.0, Rev. 13
145 CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version 1.2
147 GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1
152 \fB\-h\fR, \fB\-\-help\fR
153 Prints the help message.
155 \fB\-o\fR, \fB\-\-output\-format\fR=\fI<fmt>\fR
156 If [out] is specified, then write the EDID in format \fI<fmt>\fR.
158 The output format can be one of:
160 hex: hex numbers in ascii text (default for stdout)
162 raw: binary data (default unless writing to stdout)
164 carray: c-program struct
168 \fB\-c\fR, \fB\-\-check\fR
169 Check if the EDID conforms to the standards. Warnings and failures are
172 \fB\-C\fR, \fB\-\-check\-inline\fR
173 Check if the EDID conforms to the standards. Warnings and failures are
174 reported as they happen.
176 \fB\-n\fR, \fB\-\-native\-timings\fR
177 Report the native timings at the end. There may be multiple native timing reports
178 depending on whether the Source only parses Block 0 (e.g. DVI outputs) or Block 0
179 and the CTA-861 Extension Blocks (HDMI).
181 \fB\-p\fR, \fB\-\-preferred\-timings\fR
182 Report the preferred timings at the end. There may be multiple native timing reports
183 depending on whether the Source only parses Block 0 (e.g. DVI outputs), or Block 0
184 and the CTA-861 Extension Blocks (HDMI), or Block 0 and the DisplayID Extension Blocks
185 (typical for DisplayPort).
187 \fB\-P\fR, \fB\-\-physical\-address\fR
188 Just report the HDMI Source Physical Address and nothing else. Reports f.f.f.f
189 if the EDID could not be parsed, or if there was no CTA-861 Vendor-Specific Data Block
190 with OUI 00-0C-03. Otherwise it reports the Source Physical Address as provided
191 in that Data Block. This can be used as input to HDMI CEC utilities such as the
192 linux cec-ctl(1) utility.
194 \fB\-S\fR, \fB\-\-short\-timings\fR
195 Report all video timings in a short format.
197 \fB\-L\fR, \fB\-\-long\-timings\fR
198 Report all video timings in a long format.
200 \fB\-X\fR, \fB\-\-xmodeline\fR
201 Report all long video timings in the ModeLine format as defined in xorg.conf(5).
202 This ModeLine can be used in the xorg.conf file or passed to xrandr(1) with the
203 xrandr \fB\-\-newmode\fR option.
205 \fB\-F\fR, \fB\-\-fbmode\fR
206 Report all long video timings in the video mode format as defined in fb.modes(5).
208 \fB\-V\fR, \fB\-\-v4l2\-timings\fR
209 Report all long video timings in the video mode format as defined in the linux header v4l2-dv-timings.h
210 for use with the V4L2 VIDIOC_S_DV_TIMINGS ioctl.
212 \fB\-s\fR, \fB\-\-skip\-hex\-dump\fR
213 Skip the initial hex dump of the EDID.
216 Don't show the SHA hash. Normally edid-decode will show the SHA, i.e. the
217 hash of the git commit used to compile edid-decode. This uniquely identifies
218 the version of edid-decode that is used to generate the warnings and
219 failures. But it will also change the output of edid-decode for every new commit
220 in the git repository, even if nothing else changed in the edid-decode output.
221 Use this option to avoid including the SHA in the edid-decode output.
223 \fB\-\-hide\-serial\-numbers\fR
224 Replace any serial numbers in the human readable output by '...'.
225 Note that they are still easily extracted from the EDID hex dump at
229 Show the SHA hash and the last commit date.
233 Not all fields are decoded, or decoded completely. Some fields' decoding
234 may appear to corrupt the output (for example, detailed string sections
235 have their contents printed literally).
237 does attempt to validate its input against the relevant standards, but its
238 opinions have not been double-checked with the relevant standards bodies,
239 so they may be wrong. Do not rely on the output format, as it will likely
240 change in future versions of the tool as additional fields and extensions are
243 Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)
245 edid-decode was written by Adam Jackson, with contributions from Eric
246 Anholt, Damien Lespiau, Hans Verkuil and others. For complete history and the
248 .B http://git.linuxtv.org/cgit.cgi/edid-decode.git