.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" May be distributed under the GNU General Public License
-.TH DMESG 1 "Jun 2011"
+.TH DMESG "1" "July 2012" "util-linux" "User Commands"
.SH NAME
dmesg \- print or control the kernel ring buffer
.SH SYNOPSIS
.B dmesg
-.RB [ options ]
+[options]
.sp
.B dmesg \-\-clear
-.sp
-.B dmesg \-\-read-clear
-.RB [ options ]
-.sp
-.B dmesg \-\-console-level
-.I level
-.sp
-.B dmesg \-\-console-on
-.sp
-.B dmesg \-\-console-off
+.br
+.BR "dmesg \-\-read\-clear " [options]
+.br
+.BI "dmesg \-\-console\-level " level
+.br
+.B dmesg \-\-console\-on
+.br
+.B dmesg \-\-console\-off
.SH DESCRIPTION
.B dmesg
is used to examine or control the kernel ring buffer.
-
-The default action is to read all messages from kernel ring buffer.
-
+.PP
+The default action is to display all messages from the kernel ring buffer.
.SH OPTIONS
-The --clear, --read-clear, --console-on, --console-off and --console-level
+The
+.BR \-\-clear ,
+.BR \-\-read\-clear ,
+.BR \-\-console\-on ,
+.BR \-\-console\-off ,
+and
+.B \-\-console\-level
options are mutually exclusive.
-
-.IP "\fB\-C, \-\-clear\fP"
+.PP
+.IP "\fB\-C\fR, \fB\-\-clear\fR"
Clear the ring buffer.
-.IP "\fB\-c, \-\-read-clear\fP"
-Clear the ring buffer contents after printing.
-.IP "\fB\-d, \-\-console-off\fP"
-Disable printing messages to the console.
-.IP "\fB\-e, \-\-console-on\fP"
+.IP "\fB\-c\fR, \fB\-\-read\-clear\fR"
+Clear the ring buffer after first printing its contents.
+.IP "\fB\-D\fR, \fB\-\-console\-off\fR"
+Disable the printing of messages to the console.
+.IP "\fB\-d\fR, \fB\-\-show\-delta\fR"
+Display the timestamp and the time delta spent between messages. If used
+together with
+.B \-\-notime
+then only the time delta without the timestamp is printed.
+.IP "\fB\-E\fR, \fB\-\-console\-on\fR"
Enable printing messages to the console.
-.IP "\fB\-f, \-\-facility \fIlist\fP"
-Restrict output to defined (comma separated) list of facilities. For exmaple
-.sp
- dmesg --facility=daemon
-.sp
-will print messages from system daemons only.
-.IP "\fB\-x, \-\-decode\fP"
-Decode facility and level (priority) number to human readable prefixes.
-.IP "\fB\-h, \-\-help\fP"
-Print a help text and exit.
-.IP "\fB\-l, \-\-level \fIlist\fP"
-Restrict output to defined (comma separated) list of levels. For exmaple
-.sp
- dmesg --level=err,warn
-.sp
-will print error and warning messages only.
-.IP "\fB\-x, \-\-decode\fP"
-Decode facility and level (priority) number to human readable prefixes.
-.IP "\fB\-n, \-\-console-level \fIlevel\fP
+.IP "\fB\-e\fR, \fB\-\-reltime\fR"
+Display the local time and the delta in human-readable format. Be aware that
+conversion to the local time could be inaccurate (see \fB\-T\fR for more
+details).
+.IP "\fB\-F\fR, \fB\-\-file \fIfile\fR"
+Read the syslog messages from the given
+.IR file .
+Note that \fB\-F\fR does not support messages in kmsg format. The old syslog format is supported only.
+.IP "\fB\-f\fR, \fB\-\-facility \fIlist\fR"
+Restrict output to the given (comma-separated)
+.I list
+of facilities. For example:
+.PP
+.RS 14
+.B dmesg \-\-facility=daemon
+.RE
+.IP
+will print messages from system daemons only. For all supported facilities
+see the
+.B \-\-help
+output.
+.IP "\fB\-H\fR, \fB\-\-human\fR"
+Enable human-readable output. See also \fB\-\-color\fR, \fB\-\-reltime\fR
+and \fB\-\-nopager\fR.
+.IP "\fB\-k\fR, \fB\-\-kernel\fR"
+Print kernel messages.
+.IP "\fB\-L\fR, \fB\-\-color\fR[=\fIwhen\fR]"
+Colorize the output. The optional argument \fIwhen\fP
+can be \fBauto\fR, \fBnever\fR or \fBalways\fR. If the \fIwhen\fR argument is omitted,
+it defaults to \fBauto\fR. The colors can be disabled; for the current built-in default
+see the \fB\-\-help\fR output. See also the \fBCOLORS\fR section below.
+.IP "\fB\-l\fR, \fB\-\-level \fIlist\fR"
+Restrict output to the given (comma-separated)
+.I list
+of levels. For example:
+.PP
+.RS 14
+.B dmesg \-\-level=err,warn
+.RE
+.IP
+will print error and warning messages only. For all supported levels see the
+.B \-\-help
+output.
+.IP "\fB\-n\fR, \fB\-\-console\-level \fIlevel\fR
Set the
.I level
-at which logging of messages is done to the console. The
+at which printing of messages is done to the console. The
.I level
-is a level number or abbreviation of the level name. For all supported levels see
-.B dmesg \-\-help
+is a level number or abbreviation of the level name. For all supported
+levels see the
+.B \-\-help
output.
.sp
For example,
.B \-n 1
or
-.B \-n alert
-prevents all messages, except emergency (panic) messages, from appearing on the
-console. All levels of messages are still written to
+.B \-n emerg
+prevents all messages, except emergency (panic) messages, from appearing on
+the console. All levels of messages are still written to
.IR /proc/kmsg ,
so
.BR syslogd (8)
-can still be used to control exactly where kernel messages appear. When
-the
+can still be used to control exactly where kernel messages appear. When the
.B \-n
option is used,
.B dmesg
will
.I not
print or clear the kernel ring buffer.
-.IP "\fB\-r, \-\-raw\fP"
-Print the raw message buffer, i.e., don't strip the log level prefixes.
-.IP "\fB\-s, \-\-buffer-size \fIsize\fP
+.IP "\fB\-P\fR, \fB\-\-nopager\fR"
+Do not pipe output into a pager. A pager is enabled by default for \fB\-\-human\fR output.
+.IP "\fB\-p\fR, \fB\-\-force\-prefix\fR"
+Add facility, level or timestamp information to each line of a multi-line message.
+.IP "\fB\-r\fR, \fB\-\-raw\fR"
+Print the raw message buffer, i.e. do not strip the log-level prefixes.
+
+Note that the real raw format depends on the method how
+.BR dmesg (1)
+reads kernel messages. The /dev/kmsg device uses a different format than
+.BR syslog (2).
+For backward compatibility,
+.BR dmesg (1)
+returns data always in the
+.BR syslog (2)
+format. It is possible to read the real raw data from /dev/kmsg by, for example,
+the command 'dd if=/dev/kmsg iflag=nonblock'.
+.IP "\fB\-S\fR, \fB\-\-syslog\fR"
+Force \fBdmesg\fR to use the
+.BR syslog (2)
+kernel interface to read kernel messages. The default is to use /dev/kmsg rather
+than
+.BR syslog (2)
+since kernel 3.5.0.
+.IP "\fB\-s\fR, \fB\-\-buffer\-size \fIsize\fR
Use a buffer of
.I size
-to query the kernel ring buffer. This is 16392 by default.
-(The default kernel syslog buffer size was 4096
-at first, 8192 since 1.3.54, 16384 since 2.1.113.)
-If you have set the kernel buffer to be larger than the default
+to query the kernel ring buffer. This is 16392 by default. (The default
+kernel syslog buffer size was 4096 at first, 8192 since 1.3.54, 16384 since
+2.1.113.) If you have set the kernel buffer to be larger than the default,
then this option can be used to view the entire buffer.
-.IP "\fB\-V, \-\-version\fP"
-Output version information and exit.
+.IP "\fB\-T\fR, \fB\-\-ctime\fR"
+Print human-readable timestamps.
+.IP
+.B Be aware that the timestamp could be inaccurate!
+The
+.B time
+source used for the logs is
+.B not updated after
+system
+.BR SUSPEND / RESUME .
+.IP "\fB\-t\fR, \fB\-\-notime\fR"
+Do not print kernel's timestamps.
+.IP "\fB\-\-time\-format\fR \fIformat\fR"
+Print timestamps using the given \fIformat\fR, which can be
+.BR ctime ,
+.BR reltime ,
+.B delta
+or
+.BR iso .
+The first three formats are aliases of the time-format-specific options.
+The
+.B iso
+format is a
+.B dmesg
+implementation of the ISO-8601 timestamp format. The purpose of this format is
+to make the comparing of timestamps between two systems, and any other parsing,
+easy. The definition of the \fBiso\fR timestamp is:
+YYYY-MM-DD<T>HH:MM:SS,<microseconds><-+><timezone offset from UTC>.
+.IP
+The
+.B iso
+format has the same issue as
+.BR ctime :
+the time may be inaccurate when a system is suspended and resumed.
+.TP
+.BR \-u , " \-\-userspace"
+Print userspace messages.
+.TP
+.BR \-w , " \-\-follow"
+Wait for new messages. This feature is supported only on systems with
+a readable /dev/kmsg (since kernel 3.5.0).
+.TP
+.BR \-x , " \-\-decode"
+Decode facility and level (priority) numbers to human-readable prefixes.
+.TP
+.BR \-V , " \-\-version"
+Display version information and exit.
+.TP
+.BR \-h , " \-\-help"
+Display help text and exit.
+.SH COLORS
+Implicit coloring can be disabled by an empty file \fI/etc/terminal-colors.d/dmesg.disable\fR.
+See
+.BR terminal-colors.d (5)
+for more details about colorization configuration.
+.PP
+The logical color names supported by
+.B dmesg
+are:
+.TP
+.B subsys
+The message sub-system prefix (e.g. "ACPI:").
+.TP
+.B time
+The message timestamp.
+.TP
+.B timebreak
+The message timestamp in short ctime format in \fB\-\-reltime\fR
+or \fB\-\-human\fR output.
+.TP
+.B alert
+The text of the message with the alert log priority.
+.TP
+.B crit
+The text of the message with the critical log priority.
+.TP
+.B err
+The text of the message with the error log priority.
+.TP
+.B warn
+The text of the message with the warning log priority.
+.TP
+.B segfault
+The text of the message that inform about segmentation fault.
+.SH EXIT STATUS
+.B dmesg
+can fail reporting permission denied error. This is usually caused by
+.B dmesg_restrict
+kernel setting, please see
+.BR syslog (2)
+for more details.
.SH SEE ALSO
+.BR terminal-colors.d (5),
.BR syslogd (8)
-.\" .SH AUTHOR
-.\" Theodore Ts'o (tytso@athena.mit.edu)
+.SH AUTHORS
+.MT kzak@redhat.com
+Karel Zak
+.ME
+
+.br
+.B dmesg
+was originally written by
+.MT tytso@athena.mit.edu
+Theodore Ts'o
+.ME
.SH AVAILABILITY
The dmesg command is part of the util-linux package and is available from
-ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
+.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
+Linux Kernel Archive
+.UE .