summaryrefslogtreecommitdiff
path: root/sys-utils
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2009-01-08 11:44:27 -0500
committerKarel Zak <kzak@redhat.com>2009-01-16 12:34:49 +0100
commit11ea22d5a3dbb69557a4e1c7e3c862b0765102b5 (patch)
treea6c77c3efa9fdbfabd6d707c9c38f188e321d1e9 /sys-utils
parent448d12483cc24cd1ba50fde6b95d4c0f5080f038 (diff)
downloadutil-linux-old-11ea22d5a3dbb69557a4e1c7e3c862b0765102b5.tar.gz
dmesg: Add -r (raw) option.
Useful for debugging which kernel messages are ruining your quiet bootup. Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'sys-utils')
-rw-r--r--sys-utils/dmesg.15
-rw-r--r--sys-utils/dmesg.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/sys-utils/dmesg.1 b/sys-utils/dmesg.1
index d5dfa9d6..33fd8b08 100644
--- a/sys-utils/dmesg.1
+++ b/sys-utils/dmesg.1
@@ -4,7 +4,7 @@
.SH NAME
dmesg \- print or control the kernel ring buffer
.SH SYNOPSIS
-.BI "dmesg [ \-c ] [ \-n " level " ] [ \-s " bufsize " ]"
+.BI "dmesg [ \-c ] [ -r ] [ \-n " level " ] [ \-s " bufsize " ]"
.SH DESCRIPTION
.B dmesg
is used to examine or control the kernel ring buffer.
@@ -22,6 +22,9 @@ file to whoever can debug their problem.
.B \-c
Clear the ring buffer contents after printing.
.TP
+.B \-r
+Print the raw message buffer, i.e., don't strip the log level prefixes.
+.TP
.BI \-s bufsize
Use a buffer of size
.I bufsize
diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c
index ac0535d7..b634d86e 100644
--- a/sys-utils/dmesg.c
+++ b/sys-utils/dmesg.c
@@ -56,13 +56,14 @@ main(int argc, char *argv[]) {
int level = 0;
int lastc;
int cmd = 3; /* Read all messages in the ring buffer */
+ int raw = 0;
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
progname = argv[0];
- while ((c = getopt(argc, argv, "cn:s:")) != -1) {
+ while ((c = getopt(argc, argv, "crn:s:")) != -1) {
switch (c) {
case 'c':
cmd = 4; /* Read and clear all messages */
@@ -71,6 +72,9 @@ main(int argc, char *argv[]) {
cmd = 8; /* Set level of messages */
level = atoi(optarg);
break;
+ case 'r':
+ raw = 1;
+ break;
case 's':
bufsize = atoi(optarg);
if (bufsize < 4096)
@@ -131,7 +135,7 @@ main(int argc, char *argv[]) {
lastc = '\n';
for (i = 0; i < n; i++) {
- if ((i == 0 || buf[i - 1] == '\n') && buf[i] == '<') {
+ if (!raw && (i == 0 || buf[i - 1] == '\n') && buf[i] == '<') {
i++;
while (buf[i] >= '0' && buf[i] <= '9')
i++;