1edid-decode(1)              General Commands Manual             edid-decode(1)
2
3
4

NAME

6       edid-decode - Decode EDID data in human-readable format
7

SYNOPSIS

9       edid-decode <options> [in [out]]
10

DESCRIPTION

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

STANDARDS

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

OPTIONS

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

TIMING OPTIONS

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

NOTES

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

SEE ALSO

402       Xorg(1), xrandr(1), cec-ctl(1), xorg.conf(5), fb.modes(5)
403

AUTHORS

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)
Impressum