blob: 93ef9f8c1e07b1d8940f7d5483d4bfefaae9d85b [file] [log] [blame]
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH edid-decode 1
.SH NAME
edid-decode - Decode EDID data in human-readable format
.SH SYNOPSIS
.B edid-decode <options> [in [out]]
.SH DESCRIPTION
.B edid-decode
decodes EDID monitor description data in human-readable format.
If [in] is not given, or [in] is '-', then the EDID will be read from
standard input. If [out] is given then the EDID that was read from [in]
is written to [out] or to standard output if [out] is '-'. By default
the output is written as a hex dump when writing to standard output or
a raw EDID if written to a file.
If [out] is given then edid-decode only does the conversion, it will
skip the decoding step.
.PP
Input files may be raw binaries or ASCII text. ASCII input is scanned for
hex dumps; heuristics are included to search for hexdumps in
.B edid-decode(1)
output (as long as the initial hex dump was included),
.B xrandr(1)
property output and
.B Xorg(1)
log file formats, otherwise the data is treated as a raw hexdump. EDID blocks
for connected monitors can be found in
.B /sys/class/drm/*/edid
on modern Linux systems with kernel modesetting support.
All timings are shown in a short format, for example:
VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (native)
VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz
VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz
Each format starts with a timings type prefix, the resolution, an optional
interlaced indicator ('i'), the frame rate (field rate for interlaced formats),
the picture aspect ratio, the horizontal frequency, the pixelclock
frequency and optionally additional flags between parenthesis.
Note that for interlaced formats the frame height is given, not the field
height. So each field in a 1920x1080i format has 540 lines.
Detailed timings have another 2-3 lines of data:
VIC 16: 1920x1080 60.000 Hz 16:9 67.500 kHz 148.500 MHz (native)
Hfront 88 Hsync 44 Hback 148 Hpol P
Vfront 4 Vsync 5 Vback 36 Vpol P
VIC 5: 1920x1080i 60.000 Hz 16:9 33.750 kHz 74.250 MHz
Hfront 88 Hsync 44 Hback 148 Hpol P
Vfront 2 Vsync 5 Vback 15 Vpol P Vfront +0.5 Odd Field
Vfront 2 Vsync 5 Vback 15 Vpol P Vback +0.5 Even Field
VIC 39: 1920x1080i 50.000 Hz 16:9 31.250 kHz 72.000 MHz
Hfront 32 Hsync 168 Hback 184 Hpol P
Vfront 23 Vsync 5 Vback 57 Vpol N Both Fields
These describe the horizontal and vertical front porch, sync, backporch
and sync polarity values. For interlaced formats there are two lines
for the vertical information: one for the Odd Field (aka Field 1) and
one for the Even Field (aka Field 2). The vertical front porch of the
Odd Field is actually 2.5 (hence the 'Vfront +0.5' at the end of the
line), and the back porch of the Even Field is actually 15.5 (hence
the 'Vback +0.5' at the end of the line).
There is a special 'VIC 39' interlaced format where both fields have
the same vertical timings, in that case this is marked with 'Both Fields'.
The following timing types can be shown:
.RS
.TP
DMT: Discrete Monitor Timing (see DMT 1.3 standard)
.TP
CVT: Coordinated Video Timings (formula-based, see CVT 1.2 standard)
.TP
GTF: Generalized Timing Formula (formula-based, see GTF 1.1 standard)
.TP
IBM: Old IBM Timings
.TP
Mac: Old Apple Timings
.TP
VIC #: Video Identification Code (see CTA-861 standard). The number is the actual
VIC code.
.TP
HDMI VIC #: HDMI-specific Video Identification Code (see HDMI 2.1 standard). The number
is the actual HDMI VIC code.
.TP
DTD #: Detailed Timings Descriptor (see EDID standard). Also used for
DisplayID Video Timing Modes Types I, II, VI and VII. The number denotes that
this is the Nth DTD in the EDID.
.RE
By default DTDs are shown in the long format while others are just shown in
the short format. With the option \fB\-\-short\-timings\fR all timings are
shown in short format only. With the option \fB\-\-long\-timings\fR all timings
are shown in long format.
Alternate formats for long timings can be chosen via the \fB\-\-xmodeline\fR or
\fB\-\-fbmode\fR options.
.SH STANDARDS
.TP
The following EDID standards are supported by edid-decode:
.RS
.TP
EDID 1.3: VESA Enhanced Extended Display Identication Data Standard, Release A, Revision 1
.TP
EDID 1.4: VESA Enhanced Extended Display Identication Data Standard, Release A, Revision 2
.TP
DisplayID 1.3: VESA Display Identification Data (DisplayID) Standard, Version 1.3
.TP
DisplayID 2.0: VESA DisplayID Standard, Version 2.0
.TP
DI-EXT: VESA Display Information Extension Block Standard, Release A
.TP
LS-EXT: VESA Enhanced EDID Localized String Extension Standard, Release A
.TP
VTB-EXT: VESA Video Timing Block Extension Data Standard, Release A
.TP
DTCDB: VESA Display Transfer Characteristics Data Block Standard, Version 1.0
.TP
DDDB: VESA Display Device Data Block (DDDB) Standard, Version 1
.TP
HDMI 1.4b: High-Definition Multimedia Interface, Version 1.4b
.TP
HDMI 2.1: High-Definition Multimedia Interface, Version 2.1
.TP
HDMI 2.1: Amendment A1 to HDMI Specification Version 2.1
.TP
CTA-861-G: A DTV Profile for Uncompressed High Speed Digital Interfaces
.TP
SPWG Notebook Panel Specification, Version 3.5
.TP
EPI Embedded Panel Interface, Revision 1.0
.RE
.TP
The following related standards are also used by edid-decode:
.RS
.TP
DMT 1.3: VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT), Version 1.0, Rev. 13
.TP
CVT 1.2: VESA Coordinated Video Timings (CVT) Standard, Version 1.2
.TP
GTF 1.1: VESA Generalized Timing Formula Standard, Version: 1.1
.RE
.SH OPTIONS
.TP
\fB\-h\fR, \fB\-\-help\fR
Prints the help message.
.TP
\fB\-o\fR, \fB\-\-output\-format\fR=\fI<fmt>\fR
If [out] is specified, then write the EDID in format \fI<fmt>\fR.
.br
The output format can be one of:
.br
hex: hex numbers in ascii text (default for stdout)
.br
raw: binary data (default unless writing to stdout)
.br
carray: c-program struct
.TP
\fB\-c\fR, \fB\-\-check\fR
Check if the EDID conforms to the standards. Warnings and failures are
reported at the end.
.TP
\fB\-C\fR, \fB\-\-check\-inline\fR
Check if the EDID conforms to the standards. Warnings and failures are
reported as they happen.
.TP
\fB\-p\fR, \fB\-\-preferred\-timing\fR
Report the preferred timing at the end.
.TP
\fB\-S\fR, \fB\-\-short\-timings\fR
Report all video timings in a short format.
.TP
\fB\-L\fR, \fB\-\-long\-timings\fR
Report all video timings in a long format.
.TP
\fB\-X\fR, \fB\-\-xmodeline\fR
Report all long video timings in the ModeLine format as defined in xorg.conf(5).
This ModeLine can be used in the xorg.conf file or passed to xrandr(1) with the
xrandr \fB\-\-newmode\fR option.
.TP
\fB\-F\fR, \fB\-\-fbmode\fR
Report all long video timings in the video mode format as defined in fb.modes(5).
.TP
\fB\-V\fR, \fB\-\-v4l2\-timings\fR
Report all long video timings in the video mode format as defined in the linux header v4l2-dv-timings.h
for use with the V4L2 VIDIOC_S_DV_TIMINGS ioctl.
.TP
\fB\-s\fR, \fB\-\-skip\-hex\-dump\fR
Skip the initial hex dump of the EDID.
.TP
\fB\-\-skip\-sha\fR
Don't show the SHA hash. Normally edid-decode will show the SHA, i.e. the
hash of the git commit used to compile edid-decode. This uniquely identifies
the version of edid-decode that is used to generate the warnings and
failures. But it will also change the output of edid-decode for every new commit
in the git repository, even if nothing else changed in the edid-decode output.
Use this option to avoid including the SHA in the edid-decode output.
.TP
\fB\-e\fR, \fB\-\-extract\fR
Extract the contents of the first block in hex values.
This was always done in old edid-decode versions. To get
the same behavior add this option.
.PP
.SH NOTES
Not all fields are decoded, or decoded completely. Some fields' decoding
may appear to corrupt the output (for example, detailed string sections
have their contents printed literally).
.B edid-decode
does attempt to validate its input against the relevant standards, but its
opinions have not been double-checked with the relevant standards bodies,
so they may be wrong. Do not rely on the output format, as it will likely
change in future versions of the tool as additional fields and extensions are
added.
.SH "SEE ALSO"
Xorg(1), xrandr(1), xorg.conf(5), fb.modes(5)
.SH AUTHORS
edid-decode was written by Adam Jackson, with contributions from Eric
Anholt, Damien Lespiau, Hans Verkuil and others. For complete history and the
latest version, see
.B http://git.linuxtv.org/cgit.cgi/edid-decode.git