1edid-decode(1) General Commands Manual edid-decode(1)
2
3
4
6 edid-decode - Decode EDID data in human-readable format
7
9 edid-decode <options> [in [out]]
10
12 edid-decode decodes EDID monitor description data in human-readable
13 format. If [in] is not given, or [in] is '-', then the EDID will be
14 read from standard input. If [out] is given then the EDID that was read
15 from [in] is written to [out] or to standard output if [out] is '-'. By
16 default the output is written as a hex dump when writing to standard
17 output or a raw EDID if written to a file.
18
19 If [out] is given then edid-decode only does the conversion, it will
20 skip the decoding step.
21
22 Input files may be raw binaries or ASCII text. ASCII input is scanned
23 for hex dumps; heuristics are included to search for hexdumps in edid-
24 decode(1) output (as long as the initial hex dump was included),
25 xrandr(1) property output and Xorg(1) log file formats, otherwise the
26 data is treated as a raw hexdump. EDID blocks for connected monitors
27 can be found in /sys/class/drm/*/edid on modern Linux systems with ker‐
28 nel modesetting support.
29
30 All timings are shown in a short format, for example:
31
32 VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz
33 (native)
34 VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz
35 VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz
36
37 Each format starts with a timings type prefix, the resolution, an op‐
38 tional interlaced indicator ('i'), the frame rate (field rate for in‐
39 terlaced formats), the picture aspect ratio, the horizontal frequency,
40 the pixelclock frequency and optionally additional flags between paren‐
41 thesis.
42
43 Note that for interlaced formats the frame height is given, not the
44 field height. So each field in a 1920x1080i format has 540 lines.
45
46 Detailed timings have another 2-3 lines of data:
47
48 VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz
49 (native)
50 Hfront 88 Hsync 44 Hback 148 Hpol P
51 Vfront 4 Vsync 5 Vback 36 Vpol P
52 VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz
53 Hfront 88 Hsync 44 Hback 148 Hpol P
54 Vfront 2 Vsync 5 Vback 15 Vpol P Vfront +0.5
55 Odd Field
56 Vfront 2 Vsync 5 Vback 15 Vpol P Vback +0.5
57 Even Field
58 VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz
59 Hfront 32 Hsync 168 Hback 184 Hpol P
60 Vfront 23 Vsync 5 Vback 57 Vpol N Both Fields
61
62 These describe the horizontal and vertical front porch, sync, backporch
63 and sync polarity values. For interlaced formats there are two lines
64 for the vertical information: one for the Odd Field (aka Field 1) and
65 one for the Even Field (aka Field 2). The vertical front porch of the
66 Odd Field is actually 2.5 (hence the 'Vfront +0.5' at the end of the
67 line), and the back porch of the Even Field is actually 15.5 (hence the
68 'Vback +0.5' at the end of the line).
69
70 There is a special 'VIC 39' interlaced format where both fields have
71 the same vertical timings, in that case this is marked with 'Both
72 Fields'.
73
74 The following timing types can be shown:
75
76
77 DMT #: Discrete Monitor Timing (see DMT 1.3 standard). The num‐
78 ber is the DMT ID in hexadecimal.
79
80 CVT: Coordinated Video Timings (formula-based, see CVT 1.2 stan‐
81 dard)
82
83 GTF: Generalized Timing Formula (formula-based, see GTF 1.1
84 standard)
85
86 IBM: Old IBM Timings
87
88 Apple: Old Apple Timings
89
90 VIC #: Video Identification Code (see CTA-861 standard). The
91 number is the actual
92 VIC code.
93
94 HDMI VIC #: HDMI-specific Video Identification Code (see HDMI
95 2.1 standard). The number
96 is the actual HDMI VIC code.
97
98 DTD #: Detailed Timings Descriptor (see EDID standard). Also
99 used for
100 DisplayID Video Timing Modes Types I, II, VI, VII, VIII
101 and X. The number denotes that this is the Nth DTD in the
102 Base Block and CTA Extension Blocks.
103
104 VTDB #: 20-byte DTD or 6- or 7-byte CVT descriptor in a CTA Ex‐
105 tension Block.
106 The number denotes that this is the Nth such timing in
107 the CTA Extension Blocks.
108
109 RID #@#: A CTA-861.6 Video Format Descriptor with the given Res‐
110 olution ID (first
111 number) at the given framerate (second number).
112
113 By default DTDs are shown in the long format while others are just
114 shown in the short format. With the option --short-timings all timings
115 are shown in short format only. With the option --long-timings all tim‐
116 ings are shown in long format.
117
118 Alternate formats for long timings can be chosen via the --xmodeline or
119 --fbmode options.
120
121
123 The following EDID standards are supported by edid-decode:
124
125 EDID 1.3: VESA Enhanced Extended Display Identication Data Stan‐
126 dard, Release A, Revision 1
127
128 EDID 1.4: VESA Enhanced Extended Display Identication Data Stan‐
129 dard, Release A, Revision 2
130
131 DisplayID 1.3: VESA Display Identification Data (DisplayID)
132 Standard, Version 1.3
133
134 DisplayID 2.1: VESA DisplayID Standard, Version 2.1
135
136 DI-EXT: VESA Display Information Extension Block Standard, Re‐
137 lease A
138
139 LS-EXT: VESA Enhanced EDID Localized String Extension Standard,
140 Release A
141
142 VTB-EXT: VESA Video Timing Block Extension Data Standard, Re‐
143 lease A
144
145 DTCDB: VESA Display Transfer Characteristics Data Block Stan‐
146 dard, Version 1.0
147
148 DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1
149
150 HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b
151
152 HDMI 2.1: High-Definition Multimedia Interface, Version 2.1
153
154 HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1
155
156 CTA-861-H: A DTV Profile for Uncompressed High Speed Digital In‐
157 terfaces
158
159 CTA-861.6: Improvements on Audio and Video Signaling
160
161 SPWG Notebook Panel Specification, Version 3.5
162
163 EPI Embedded Panel Interface, Revision 1.0
164
165 Microsoft EDID extension for head-mounted and specialized moni‐
166 tors, Version 3
167
168
169 The following related standards are also used by edid-decode:
170
171 DMT 1.3: VESA and Industry Standards and Guidelines for Computer
172 Display Monitor Timing (DMT), Version 1.0, Rev. 13
173
174 CVT 2.0: VESA Coordinated Video Timings (CVT) Standard, Version
175 2.0
176
177 CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version
178 1.2
179
180 CVT 1.2: VESA CVT v1.2 Errata E2
181
182 GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1
183
184
186 -h, --help
187 Prints the help message.
188
189 -o, --output-format <fmt>
190 If [out] is specified, then write the EDID in format <fmt>.
191
192 The output format can be one of:
193 hex: hex numbers in ascii text (default for stdout)
194 raw: binary data (default unless writing to stdout)
195 carray: c-program struct
196 xml: XML data
197
198 -c, --check
199 Check if the EDID conforms to the standards. Warnings and fail‐
200 ures are reported at the end.
201
202 -C, --check-inline
203 Check if the EDID conforms to the standards. Warnings and fail‐
204 ures are reported as they happen.
205
206 -n, --native-resolution
207 Report the native resolution at the end. There may be multiple
208 native resolution reports depending on whether the Source only
209 parses Block 0 (e.g. DVI outputs) or Block 0 and the CTA-861 Ex‐
210 tension Blocks (HDMI), or just the DisplayID Extension Blocks
211 (typical for DisplayPort). If all blocks contain the same native
212 resolution, then only that resolution is reported. For older
213 displays there may be two separate native resolutions: progres‐
214 sive and interlaced.
215
216 -p, --preferred-timings
217 Report the preferred timings at the end. There may be multiple
218 preferred timing reports depending on whether the Source only
219 parses Block 0 (e.g. DVI outputs), or Block 0 and the CTA-861
220 Extension Blocks (HDMI), or Block 0 and the DisplayID Extension
221 Blocks (typical for DisplayPort).
222
223 --diagonal <inches>
224 Specify the diagonal of the display in inches. This will enable
225 additional checks for the image size, checking if it corresponds
226 to the diagonal. This assumes square pixels.
227
228 -P, --physical-address
229 Just report the HDMI Source Physical Address and nothing else.
230 Reports f.f.f.f if the EDID could not be parsed, or if there was
231 no CTA-861 Vendor-Specific Data Block with OUI 00-0C-03. Other‐
232 wise it reports the Source Physical Address as provided in that
233 Data Block. This can be used as input to HDMI CEC utilities such
234 as the linux cec-ctl(1) utility.
235
236 -S, --short-timings
237 Report all video timings in a short format.
238
239 -L, --long-timings
240 Report all video timings in a long format.
241
242 -N, --ntsc
243 Report the video timings with values suitable for NTSC-based
244 video. E.g., this will show refresh rates of 29.97 Hz instead
245 of 30 Hz. This is only done for timings with refresh rates that
246 are a multiple of 6.
247
248 -X, --xmodeline
249 Report all long video timings in the ModeLine format as defined
250 in xorg.conf(5). This ModeLine can be used in the xorg.conf
251 file or passed to xrandr(1) with the xrandr --newmode option.
252
253 -F, --fbmode
254 Report all long video timings in the video mode format as de‐
255 fined in fb.modes(5).
256
257 -V, --v4l2-timings
258 Report all long video timings in the video mode format as de‐
259 fined in the linux header v4l2-dv-timings.h for use with the
260 V4L2 VIDIOC_S_DV_TIMINGS ioctl.
261
262 -s, --skip-hex-dump
263 Skip the initial hex dump of the EDID.
264
265 -H, --only-hex-dump
266 Only show the hex dump of the EDID, then exit.
267
268 --skip-sha
269 Don't show the SHA hash. Normally edid-decode will show the SHA,
270 i.e. the hash of the git commit used to compile edid-decode.
271 This uniquely identifies the version of edid-decode that is used
272 to generate the warnings and failures. But it will also change
273 the output of edid-decode for every new commit in the git repos‐
274 itory, even if nothing else changed in the edid-decode output.
275 Use this option to avoid including the SHA in the edid-decode
276 output.
277
278 --hide-serial-numbers
279 Hide any serial numbers in the human readable output by '...'.
280 Note that they are still easily extracted from the EDID hex dump
281 at the start.
282
283 --replace-unique-ids
284 Replaces any unique IDs in the EDID by fixed values. Serial num‐
285 bers will be replaced by '123456' and Container IDs by all ze‐
286 roes. This will also update any checksums in the EDID and update
287 the EDID hex dump at the start of the output. Note that since
288 this will update checksums, any checksum errors present in the
289 original EDID will no longer be detected.
290
291 Serial numbers can appear in the Base Block, DisplayID Extension
292 Blocks and Localized String Extension Blocks. Container IDs can
293 appear in the DisplayID and CTA-861 Extension Blocks.
294
295 --version
296 Show the SHA hash and the last commit date.
297
298
300 The following options report the timings for DMT, VIC and HDMI VIC
301 codes and calculate the timings for CVT or GTF timings, based on the
302 given parameters. The EDID will not be shown, although it can be used
303 with the --gtf option in order to read the secondary curve parameters.
304
305 --std <byte1>,<byte2>
306 Show the standard timing represented by these two bytes.
307
308 --dmt <dmt>
309 Show the timings for the DMT with the given DMT ID.
310
311 --vic <vic>
312 Show the timings for this VIC.
313
314 --hdmi-vic <hdmivic>
315 Show the timings for this HDMI VIC.
316
317 --cvt w=<width>,h=<height>,fps=<fps>[,rb=<rb>][,interlaced][,overscan]
318 [,alt][,hblank=<hblank>][,vblank=<vblank>][,early-vsync]
319 Calculate the CVT timings for the given format.
320
321 <width> is the width in pixels, <height> is the frame (not
322 field!) height in lines.
323 <fps> is frames per second for progressive timings and fields
324 per second for interlaced timings.
325 <rb> can be 0 (no reduced blanking, default), or 1-3 for the re‐
326 duced blanking version.
327 If interlaced is given, then this is an interlaced format.
328 If overscan is given, then this is an overscanned format. I.e.,
329 margins are required.
330 If alt is given and <rb>=2, then report the timings optimized
331 for video: 1000 / 1001 * <fps>.
332 If alt is given and <rb>=3, then the horizontal blanking is 160
333 instead of 80 pixels.
334 If hblank is given and <rb>=3, then the horizontal blanking is
335 <hblank> pixels (range of 80-200 and divisible by 8), overriding
336 alt.
337 If vblank is given and <rb>=3, then the vertical blanking time
338 is <vblank> microseconds (460 minimum, values > 705 might not be
339 supported by all RBv3 timings compliant source devices.
340 If early-vsync is given and <rb>=3, then select an early vsync
341 timing.
342
343 --gtf w=<width>,h=<height>[,fps=<fps>][,horfreq=<horfreq>][,pix‐
344 clk=<pixclk>]
345 [,interlaced][,overscan][,sec‐
346 ondary][,C=<c>][,M=<m>][,K=<k>][,J=<j>]
347 Calculate the GTF timings for the given format.
348
349 <width> is the width in pixels, <height> is the frame (not
350 field!) height in lines.
351 <fps> is frames per second for progressive timings and fields
352 per second for interlaced timings.
353 <horfreq> is the horizontal frequency in kHz.
354 <pixclk> is the pixel clock frequency in MHz. Only one of fps,
355 horfreq or pixclk must be given.
356 If interlaced is given, then this is an interlaced format.
357 If overscan is given, then this is an overscanned format. I.e.,
358 margins are required.
359 If secondary is given, then the secondary GTF is used for re‐
360 duced blanking, where <c>, <m>, <k> and <j> are parameters for
361 the secondary curve. If none of the secondary curve parameters
362 were set, and an EDID file is passed as command line option,
363 then the secondary curve parameters are read from that EDID.
364 The default secondary curve parameters are 40 for <c>, 600 for
365 <m>, 128 for <k> and 20 for <j>. These values correspond to the
366 normal curve that GTF uses.
367
368 --ovt (rid=<rid>|w=<width>,h=<height>),fps=<fps>
369 Calculate the OVT timings for the given format. Either specify
370 a <rid> or specify <width> and <height>. <fps> is frames per
371 second.
372
373 --list-established-timings
374 List all known Established Timings.
375
376 --list-dmts
377 List all known DMTs.
378
379 --list-vics
380 List all known VICs.
381
382 --list-hdmi-vics
383 List all known HDMI VICs.
384
385 --list-rids
386 List all known CTA-861 RIDs.
387
388 --list-rid-timings <rid>
389 List all timings for the specified <rid> or all known RIDs if
390 <rid> is 0.
391
392
394 Not all fields are decoded, or decoded completely. edid-decode does
395 attempt to validate its input against the relevant standards, but its
396 opinions have not been double-checked with the relevant standards bod‐
397 ies, so they may be wrong. Do not rely on the output format, as it
398 will likely change in future versions of the tool as additional fields
399 and extensions are added.
400
402 Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)
403
405 edid-decode was written by Adam Jackson, with contributions from Eric
406 Anholt, Damien Lespiau, Hans Verkuil and others. For complete history
407 and the latest version, see http://git.linuxtv.org/cgit.cgi/edid-de‐
408 code.git
409
410
411
412 edid-decode(1)