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 and VII. The
101 number denotes that this is the Nth DTD in the EDID.
102
103 By default DTDs are shown in the long format while others are just
104 shown in the short format. With the option --short-timings all timings
105 are shown in short format only. With the option --long-timings all tim‐
106 ings are shown in long format.
107
108 Alternate formats for long timings can be chosen via the --xmodeline or
109 --fbmode options.
110
111
113 The following EDID standards are supported by edid-decode:
114
115 EDID 1.3: VESA Enhanced Extended Display Identication Data Stan‐
116 dard, Release A, Revision 1
117
118 EDID 1.4: VESA Enhanced Extended Display Identication Data Stan‐
119 dard, Release A, Revision 2
120
121 DisplayID 1.3: VESA Display Identification Data (DisplayID)
122 Standard, Version 1.3
123
124 DisplayID 2.0: VESA DisplayID Standard, Version 2.0
125
126 DisplayID 2.0: VESA DisplayID v2.0 Errata E7
127
128 DI-EXT: VESA Display Information Extension Block Standard, Re‐
129 lease A
130
131 LS-EXT: VESA Enhanced EDID Localized String Extension Standard,
132 Release A
133
134 VTB-EXT: VESA Video Timing Block Extension Data Standard, Re‐
135 lease A
136
137 DTCDB: VESA Display Transfer Characteristics Data Block Stan‐
138 dard, Version 1.0
139
140 DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1
141
142 HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b
143
144 HDMI 2.1: High-Definition Multimedia Interface, Version 2.1
145
146 HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1
147
148 CTA-861-H: A DTV Profile for Uncompressed High Speed Digital In‐
149 terfaces
150
151 SPWG Notebook Panel Specification, Version 3.5
152
153 EPI Embedded Panel Interface, Revision 1.0
154
155 Microsoft EDID extension for head-mounted and specialized moni‐
156 tors, Version 3
157
158
159 The following related standards are also used by edid-decode:
160
161 DMT 1.3: VESA and Industry Standards and Guidelines for Computer
162 Display Monitor Timing (DMT), Version 1.0, Rev. 13
163
164 CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version
165 1.2
166
167 GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1
168
169
171 -h, --help
172 Prints the help message.
173
174 -o, --output-format <fmt>
175 If [out] is specified, then write the EDID in format <fmt>.
176
177 The output format can be one of:
178 hex: hex numbers in ascii text (default for stdout)
179 raw: binary data (default unless writing to stdout)
180 carray: c-program struct
181 xml: XML data
182
183 -c, --check
184 Check if the EDID conforms to the standards. Warnings and fail‐
185 ures are reported at the end.
186
187 -C, --check-inline
188 Check if the EDID conforms to the standards. Warnings and fail‐
189 ures are reported as they happen.
190
191 -n, --native-timings
192 Report the native timings at the end. There may be multiple na‐
193 tive timing reports depending on whether the Source only parses
194 Block 0 (e.g. DVI outputs) or Block 0 and the CTA-861 Extension
195 Blocks (HDMI).
196
197 -p, --preferred-timings
198 Report the preferred timings at the end. There may be multiple
199 native timing reports depending on whether the Source only
200 parses Block 0 (e.g. DVI outputs), or Block 0 and the CTA-861
201 Extension Blocks (HDMI), or Block 0 and the DisplayID Extension
202 Blocks (typical for DisplayPort).
203
204 -P, --physical-address
205 Just report the HDMI Source Physical Address and nothing else.
206 Reports f.f.f.f if the EDID could not be parsed, or if there was
207 no CTA-861 Vendor-Specific Data Block with OUI 00-0C-03. Other‐
208 wise it reports the Source Physical Address as provided in that
209 Data Block. This can be used as input to HDMI CEC utilities such
210 as the linux cec-ctl(1) utility.
211
212 -S, --short-timings
213 Report all video timings in a short format.
214
215 -L, --long-timings
216 Report all video timings in a long format.
217
218 -X, --xmodeline
219 Report all long video timings in the ModeLine format as defined
220 in xorg.conf(5). This ModeLine can be used in the xorg.conf
221 file or passed to xrandr(1) with the xrandr --newmode option.
222
223 -F, --fbmode
224 Report all long video timings in the video mode format as de‐
225 fined in fb.modes(5).
226
227 -V, --v4l2-timings
228 Report all long video timings in the video mode format as de‐
229 fined in the linux header v4l2-dv-timings.h for use with the
230 V4L2 VIDIOC_S_DV_TIMINGS ioctl.
231
232 -s, --skip-hex-dump
233 Skip the initial hex dump of the EDID.
234
235 -H, --only-hex-dump
236 Only show the hex dump of the EDID, then exit.
237
238 --skip-sha
239 Don't show the SHA hash. Normally edid-decode will show the SHA,
240 i.e. the hash of the git commit used to compile edid-decode.
241 This uniquely identifies the version of edid-decode that is used
242 to generate the warnings and failures. But it will also change
243 the output of edid-decode for every new commit in the git repos‐
244 itory, even if nothing else changed in the edid-decode output.
245 Use this option to avoid including the SHA in the edid-decode
246 output.
247
248 --hide-serial-numbers
249 Replace any serial numbers in the human readable output by
250 '...'. Note that they are still easily extracted from the EDID
251 hex dump at the start.
252
253 --version
254 Show the SHA hash and the last commit date.
255
256
258 The following options report the timings for DMT, VIC and HDMI VIC
259 codes and calculate the timings for CVT or GTF timings, based on the
260 given parameters. The EDID will not be shown, although it can be used
261 with the --gtf option in order to read the secondary curve parameters.
262
263 --std <byte1>,<byte2>
264 Show the standard timing represented by these two bytes.
265
266 --dmt <dmt>
267 Show the timings for the DMT with the given DMT ID.
268
269 --vic <vic>
270 Show the timings for this VIC.
271
272 --hdmi-vic <hdmivic>
273 Show the timings for this HDMI VIC.
274
275 --cvt w=<width>,h=<height>,fps=<fps>[,rb=<rb>][,interlaced][,over‐
276 scan][,alt]
277 Calculate the CVT timings for the given format.
278
279 <width> is the width in pixels, <height> is the frame (not
280 field!) height in lines.
281 <fps> is frames per second for progressive timings and fields
282 per second for interlaced timings.
283 <rb> can be 0 (no reduced blanking, default), or 1-3 for the re‐
284 duced blanking version.
285 If interlaced is given, then this is an interlaced format.
286 If overscan is given, then this is an overscanned format. I.e.,
287 margins are required.
288 If alt is given and <rb>=2, then report the timings optimized
289 for video: 1000 / 1001 * <fps>.
290 If alt is given and <rb>=3, then the horizontal blanking is 160
291 instead of 80 pixels.
292
293 --gtf w=<width>,h=<height>[,fps=<fps>][,horfreq=<horfreq>][,pix‐
294 clk=<pixclk>]
295 [,interlaced][,overscan][,sec‐
296 ondary][,C=<c>][,M=<m>][,K=<k>][,J=<j>]
297 Calculate the GTF timings for the given format.
298
299 <width> is the width in pixels, <height> is the frame (not
300 field!) height in lines.
301 <fps> is frames per second for progressive timings and fields
302 per second for interlaced timings.
303 <horfreq> is the horizontal frequency in kHz.
304 <pixclk> is the pixel clock frequency in MHz. Only one of fps,
305 horfreq or pixclk must be given.
306 If interlaced is given, then this is an interlaced format.
307 If overscan is given, then this is an overscanned format. I.e.,
308 margins are required.
309 If secondary is given, then the secondary GTF is used for re‐
310 duced blanking, where <c>, <m>, <k> and <j> are parameters for
311 the secondary curve. If none of the secondary curve parameters
312 were set, and an EDID file is passed as command line option,
313 then the secondary curve parameters are read from that EDID.
314 The default secondary curve parameters are 40 for <c>, 600 for
315 <m>, 128 for <k> and 20 for <j>. These values correspond to the
316 normal curve that GTF uses.
317
318 --list-established-timings
319 List all known Established Timings.
320
321 --list-dmts
322 List all known DMTs.
323
324 --list-vics
325 List all known VICs.
326
327 --list-hdmi-vics
328 List all known HDMI VICs.
329
330
332 Not all fields are decoded, or decoded completely. edid-decode does
333 attempt to validate its input against the relevant standards, but its
334 opinions have not been double-checked with the relevant standards bod‐
335 ies, so they may be wrong. Do not rely on the output format, as it
336 will likely change in future versions of the tool as additional fields
337 and extensions are added.
338
340 Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)
341
343 edid-decode was written by Adam Jackson, with contributions from Eric
344 Anholt, Damien Lespiau, Hans Verkuil and others. For complete history
345 and the latest version, see http://git.linuxtv.org/cgit.cgi/edid-de‐
346 code.git
347
348
349
350 edid-decode(1)