Blame man/dmidecode.8

Packit a55458
.TH DMIDECODE 8 "March 2012" "dmidecode"
Packit a55458
.SH NAME
Packit a55458
dmidecode \- \s-1DMI\s0 table decoder
Packit a55458
.SH SYNOPSIS
Packit a55458
.B dmidecode
Packit a55458
.RB [ OPTIONS ]
Packit a55458
Packit a55458
.SH DESCRIPTION
Packit a55458
.B dmidecode
Packit a55458
is a tool for dumping a computer's \s-1DMI\s0 (some say \s-1SMBIOS\s0) table
Packit a55458
contents in a human-readable format. This table contains a description of the
Packit a55458
system's hardware components, as well as other useful pieces of information
Packit a55458
such as serial numbers and \s-1BIOS\s0 revision. Thanks to this table, you can
Packit a55458
retrieve this information without having to probe for the actual hardware.
Packit a55458
While this is a good point in terms of report speed and safeness, this also
Packit a55458
makes the presented information possibly unreliable.
Packit a55458
Packit a55458
The \s-1DMI\s0 table doesn't only describe what the system is currently made
Packit a55458
of, it also can report the possible evolutions (such as the fastest supported
Packit a55458
\s-1CPU\s0 or the maximal amount of memory supported).
Packit a55458
Packit a55458
\s-1SMBIOS\s0 stands for System Management \s-1BIOS\s0, while \s-1DMI\s0
Packit a55458
stands for Desktop Management Interface. Both standards are tightly related
Packit a55458
and developed by the \s-1DMTF\s0 (Desktop Management Task Force).
Packit a55458
Packit a55458
As you run it,
Packit a55458
.B dmidecode
Packit a55458
will try to locate the \s-1DMI\s0 table. It will first try to read the DMI table
Packit a55458
from sysfs, and next try reading directly from memory if sysfs access failed.
Packit a55458
If
Packit a55458
.B dmidecode
Packit a55458
succeeds in locating a valid DMI table, it will then parse this table
Packit a55458
and display a list of records like this one:
Packit a55458
Packit a55458
Handle 0x0002, DMI type 2, 8 bytes.
Packit a55458
Base Board Information
Packit a55458
        Manufacturer: Intel
Packit a55458
        Product Name: C440GX+
Packit a55458
        Version: 727281-001
Packit a55458
        Serial Number: INCY92700942
Packit a55458
Packit a55458
Each record has:
Packit a55458
.IP \(bu "\w'\(bu'u+1n"
Packit a55458
A handle. This is a unique identifier, which allows records to
Packit a55458
reference each other. For example, processor records usually reference
Packit a55458
cache memory records using their handles.
Packit a55458
.IP \(bu
Packit a55458
A type. The \s-1SMBIOS\s0 specification defines different types of elements
Packit a55458
a computer can be made of. In this example, the type is 2, which
Packit a55458
means that the record contains "Base Board Information".
Packit a55458
.IP \(bu
Packit a55458
A size. Each record has a 4-byte header (2 for the handle, 1 for the type,
Packit a55458
1 for the size), the rest is used by the record data. This value doesn't
Packit a55458
take text strings into account (these are placed at the end of the record),
Packit a55458
so the actual length of the record may be (and is often) greater than the
Packit a55458
displayed value.
Packit a55458
.IP \(bu
Packit a55458
Decoded values. The information presented of course depends on the type
Packit a55458
of record. Here, we learn about the board's manufacturer, model, version
Packit a55458
and serial number.
Packit a55458
Packit a55458
.SH OPTIONS
Packit a55458
.TP
Packit a55458
.BR "-d" ", " "--dev-mem FILE"
Packit a55458
Read memory from device \fBFILE\fR (default: \fB/dev/mem\fR)
Packit a55458
.TP
Packit a55458
.BR "-q" ", " "--quiet"
Packit a55458
Be less verbose. Unknown, inactive and \s-1OEM\s0-specific entries are not
Packit a55458
displayed. Meta-data and handle references are hidden.
Packit a55458
.TP
Packit a55458
.BR "-s" ", " "--string KEYWORD"
Packit a55458
Only display the value of the \s-1DMI\s0 string identified by \fBKEYWORD\fR.
Packit a55458
\fBKEYWORD\fR must be a keyword from the following list: \fBbios-vendor\fR,
Packit a55458
\fBbios-version\fR, \fBbios-release-date\fR,
Packit a55458
\fBsystem-manufacturer\fR, \fBsystem-product-name\fR,
Packit a55458
\fBsystem-version\fR, \fBsystem-serial-number\fR,
Packit a55458
\fBsystem-uuid\fR, \fBsystem-family\fR,
Packit a55458
\fBbaseboard-manufacturer\fR, \fBbaseboard-product-name\fR,
Packit a55458
\fBbaseboard-version\fR, \fBbaseboard-serial-number\fR,
Packit a55458
\fBbaseboard-asset-tag\fR, \fBchassis-manufacturer\fR,
Packit a55458
\fBchassis-type\fR,
Packit a55458
\fBchassis-version\fR, \fBchassis-serial-number\fR,
Packit a55458
\fBchassis-asset-tag\fR, \fBprocessor-family\fR,
Packit a55458
\fBprocessor-manufacturer\fR,
Packit a55458
\fBprocessor-version\fR, \fBprocessor-frequency\fR.
Packit a55458
Each keyword corresponds to a given \s-1DMI\s0 type and a given offset
Packit a55458
within this entry type.
Packit a55458
Not all strings may be meaningful or even defined on all systems. Some
Packit a55458
keywords may return more than one result on some systems (e.g.
Packit a55458
\fBprocessor-version\fR on a multi-processor system).
Packit a55458
If \fBKEYWORD\fR is not provided or not valid, a list of all valid
Packit a55458
keywords is printed and
Packit a55458
.B dmidecode
Packit a55458
exits with an error.
Packit a55458
This option cannot be used more than once.
Packit a55458
Packit a55458
Note: on Linux, most of these strings can alternatively be read directly
Packit a55458
from
Packit a55458
.BR sysfs ,
Packit a55458
typically from files under
Packit a55458
.IR /sys/devices/virtual/dmi/id .
Packit a55458
Most of these files are even readable by regular users.
Packit a55458
.TP
Packit a55458
.BR "-t" ", " "--type TYPE"
Packit a55458
Only display the entries of type \fBTYPE\fR. \fBTYPE\fR can be either a
Packit a55458
\s-1DMI\s0 type number, or a comma-separated list of type numbers, or a
Packit a55458
keyword from the following list: \fBbios\fR, \fBsystem\fR,
Packit a55458
\fBbaseboard\fR, \fBchassis\fR, \fBprocessor\fR, \fBmemory\fR,
Packit a55458
\fBcache\fR, \fBconnector\fR, \fBslot\fR. Refer to the DMI TYPES section
Packit a55458
below for details.
Packit a55458
If this option is used more than once, the set of displayed entries will be
Packit a55458
the union of all the given types.
Packit a55458
If \fBTYPE\fR is not provided or not valid, a list of all valid keywords
Packit a55458
is printed and
Packit a55458
.B dmidecode
Packit a55458
exits with an error.
Packit a55458
.TP
Packit a55458
.BR "-H" ", " "--handle HANDLE"
Packit a55458
Only display the entry whose handle matches \fBHANDLE\fR.  \fBHANDLE\fR
Packit a55458
is a 16-bit integer.
Packit a55458
.TP
Packit a55458
.BR "-u" ", " "--dump"
Packit a55458
Do not decode the entries, dump their contents as hexadecimal instead.
Packit a55458
Note that this is still a text output, no binary data will be thrown upon
Packit a55458
you. The strings attached to each entry are displayed as both
Packit a55458
hexadecimal and \s-1ASCII\s0. This option is mainly useful for debugging.
Packit a55458
.TP
Packit a55458
.BR "  " "  " "--dump-bin FILE"
Packit a55458
Do not decode the entries, instead dump the DMI data to a file in binary
Packit a55458
form. The generated file is suitable to pass to \fB--from-dump\fR
Packit a55458
later.
Packit a55458
.TP
Packit a55458
.BR "  " "  " "--from-dump FILE"
Packit a55458
Read the DMI data from a binary file previously generated using 
Packit a55458
\fB--dump-bin\fR.
Packit a55458
.TP
Packit a55458
.BR "  " "  " "--no-sysfs"
Packit a55458
Do not attempt to read DMI data from sysfs files. This is mainly useful for
Packit a55458
debugging.
Packit a55458
.TP
Packit a55458
.BR "  " "  " "--oem-string N"
Packit a55458
Only display the value of the \s-1OEM\s0 string number \fBN\fR. The first
Packit a55458
\s-1OEM\s0 string has number 1. With special value "count", return the
Packit a55458
number of OEM strings instead.
Packit a55458
.TP
Packit a55458
.BR "-h" ", " "--help"
Packit a55458
Display usage information and exit
Packit a55458
.TP
Packit a55458
.BR "-V" ", " "--version"
Packit a55458
Display the version and exit
Packit a55458
.P
Packit a55458
Options --string, --type, --dump-bin and --oem-string
Packit a55458
determine the output format and are mutually exclusive.
Packit a55458
.P
Packit a55458
Please note in case of
Packit a55458
.B dmidecode
Packit a55458
is run on a system with BIOS that boasts new SMBIOS specification, which
Packit a55458
is not supported by the tool yet, it will print out relevant message in
Packit a55458
addition to requested data on the very top of the output. Thus informs the
Packit a55458
output data is not reliable.
Packit a55458
Packit a55458
.SH "DMI TYPES"
Packit a55458
The \s-1SMBIOS\s0 specification defines the following \s-1DMI\s0 types:
Packit a55458
Packit a55458
.TS
Packit a55458
r l
Packit a55458
__
Packit a55458
r l.
Packit a55458
Type	Information
Packit a55458
0	BIOS
Packit a55458
1	System
Packit a55458
2	Baseboard
Packit a55458
3	Chassis
Packit a55458
4	Processor
Packit a55458
5	Memory Controller
Packit a55458
6	Memory Module
Packit a55458
7	Cache
Packit a55458
8	Port Connector
Packit a55458
9	System Slots
Packit a55458
10	On Board Devices
Packit a55458
11	OEM Strings
Packit a55458
12	System Configuration Options
Packit a55458
13	BIOS Language
Packit a55458
14	Group Associations
Packit a55458
15	System Event Log
Packit a55458
16	Physical Memory Array
Packit a55458
17	Memory Device
Packit a55458
18	32-bit Memory Error
Packit a55458
19	Memory Array Mapped Address
Packit a55458
20	Memory Device Mapped Address
Packit a55458
21	Built-in Pointing Device
Packit a55458
22	Portable Battery
Packit a55458
23	System Reset
Packit a55458
24	Hardware Security
Packit a55458
25	System Power Controls
Packit a55458
26	Voltage Probe
Packit a55458
27	Cooling Device
Packit a55458
28	Temperature Probe
Packit a55458
29	Electrical Current Probe
Packit a55458
30	Out-of-band Remote Access
Packit a55458
31	Boot Integrity Services
Packit a55458
32	System Boot
Packit a55458
33	64-bit Memory Error
Packit a55458
34	Management Device
Packit a55458
35	Management Device Component
Packit a55458
36	Management Device Threshold Data
Packit a55458
37	Memory Channel
Packit a55458
38	IPMI Device
Packit a55458
39	Power Supply
Packit a55458
40	Additional Information
Packit a55458
41	Onboard Devices Extended Information
Packit a55458
42	Management Controller Host Interface
Packit a55458
.TE
Packit a55458
Packit a55458
Additionally, type 126 is used for disabled entries and type 127 is an
Packit a55458
end-of-table marker. Types 128 to 255 are for \s-1OEM\s0-specific data.
Packit a55458
.B dmidecode
Packit a55458
will display these entries by default, but it can only decode them
Packit a55458
when the vendors have contributed documentation or code for them.
Packit a55458
Packit a55458
Keywords can be used instead of type numbers with \fB--type\fR.
Packit a55458
Each keyword is equivalent to a list of type numbers:
Packit a55458
Packit a55458
.TS
Packit a55458
l l
Packit a55458
__
Packit a55458
l l.
Packit a55458
Keyword	Types
Packit a55458
bios	0, 13
Packit a55458
system	1, 12, 15, 23, 32
Packit a55458
baseboard	2, 10, 41
Packit a55458
chassis	3
Packit a55458
processor	4
Packit a55458
memory	5, 6, 16, 17
Packit a55458
cache	7
Packit a55458
connector	8
Packit a55458
slot	9
Packit a55458
.TE
Packit a55458
Packit a55458
Keywords are matched case-insensitively. The following command lines are equivalent:
Packit a55458
.IP \(bu "\w'\(bu'u+1n"
Packit a55458
dmidecode --type 0 --type 13
Packit a55458
.IP \(bu
Packit a55458
dmidecode --type 0,13
Packit a55458
.IP \(bu
Packit a55458
dmidecode --type bios
Packit a55458
.IP \(bu
Packit a55458
dmidecode --type BIOS
Packit a55458
Packit a55458
.SH BINARY DUMP FILE FORMAT
Packit a55458
The binary dump files generated by --dump-bin and read using --from-dump
Packit a55458
are formatted as follows:
Packit a55458
.IP \(bu "\w'\(bu'u+1n"
Packit a55458
The SMBIOS or DMI entry point is located at offset 0x00.
Packit a55458
It is crafted to hard-code the table address at offset 0x20.
Packit a55458
.IP \(bu "\w'\(bu'u+1n"
Packit a55458
The DMI table is located at offset 0x20.
Packit a55458
Packit a55458
.SH FILES
Packit a55458
.I /dev/mem
Packit a55458
.I /sys/firmware/dmi/tables/smbios_entry_point (Linux only)
Packit a55458
.I /sys/firmware/dmi/tables/DMI (Linux only)
Packit a55458
.SH BUGS
Packit a55458
More often than not, information contained in the \s-1DMI\s0 tables is inaccurate,
Packit a55458
incomplete or simply wrong.
Packit a55458
.SH AUTHORS
Packit a55458
Alan Cox, Jean Delvare
Packit a55458
.SH "SEE ALSO"
Packit a55458
.BR biosdecode (8),
Packit a55458
.BR mem (4),
Packit a55458
.BR ownership (8),
Packit a55458
.BR vpddecode (8)