From: Jackie Huang <jackie.hu...@windriver.com>

We should create the /var/log/dmesg.log file as a default.
If we don't then a later kernel error can flush the dmesg
ring buffer, losing valuable debug information.

Signed-off-by: Xin Ouyang <xin.ouy...@windriver.com>
Signed-off-by: Jackie Huang <jackie.hu...@windriver.com>
---
 .../initscripts/initscripts-1.0/dmesg.sh           |   17 +++++++++++++++++
 .../initscripts-1.0/logrotate-dmesg.conf           |    9 +++++++++
 meta/recipes-core/initscripts/initscripts_1.0.bb   |    9 +++++++--
 3 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh
 create mode 100644 
meta/recipes-core/initscripts/initscripts-1.0/logrotate-dmesg.conf

diff --git a/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh 
b/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh
new file mode 100644
index 0000000..a97b068
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/dmesg.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:             dmesg
+# Required-Start:
+# Required-Stop:
+# Default-Start:        S
+# Default-Stop:
+### END INIT INFO
+
+if [ -f /var/log/dmesg ]; then
+       if [ -f /usr/sbin/logrotate ]; then
+               logrotate -f /etc/logrotate-dmesg.conf
+       else
+               mv -f /var/log/dmesg /var/log/dmesg.old
+       fi
+fi
+dmesg -s 131072 > /var/log/dmesg
diff --git a/meta/recipes-core/initscripts/initscripts-1.0/logrotate-dmesg.conf 
b/meta/recipes-core/initscripts/initscripts-1.0/logrotate-dmesg.conf
new file mode 100644
index 0000000..6f46e42
--- /dev/null
+++ b/meta/recipes-core/initscripts/initscripts-1.0/logrotate-dmesg.conf
@@ -0,0 +1,9 @@
+# see "man logrotate" for details
+# rotate dmesg, and keep 5 versions.
+
+/var/log/dmesg {
+       create
+       rotate 5
+       nodateext
+}
+
diff --git a/meta/recipes-core/initscripts/initscripts_1.0.bb 
b/meta/recipes-core/initscripts/initscripts_1.0.bb
index 531b2b6..52e1c9c 100644
--- a/meta/recipes-core/initscripts/initscripts_1.0.bb
+++ b/meta/recipes-core/initscripts/initscripts_1.0.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Initscripts provide the basic system startup 
initialization scrip
 SECTION = "base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-PR = "r140"
+PR = "r141"
 
 INHIBIT_DEFAULT_DEPS = "1"
 
@@ -31,7 +31,10 @@ SRC_URI = "file://functions \
            file://read-only-rootfs-hook.sh \
            file://volatiles \
            file://save-rtc.sh \
-           file://GPLv2.patch"
+           file://GPLv2.patch \
+           file://dmesg.sh \
+           file://logrotate-dmesg.conf \
+"
 
 SRC_URI_append_arm = " file://alignment.sh"
 
@@ -89,6 +92,8 @@ do_install () {
        install -m 0755    ${WORKDIR}/read-only-rootfs-hook.sh 
${D}${sysconfdir}/init.d
        install -m 0755    ${WORKDIR}/save-rtc.sh       ${D}${sysconfdir}/init.d
        install -m 0644    ${WORKDIR}/volatiles         
${D}${sysconfdir}/default/volatiles/00_core
+       install -m 0755    ${WORKDIR}/dmesg.sh          ${D}${sysconfdir}/init.d
+       install -m 0644    ${WORKDIR}/logrotate-dmesg.conf ${D}${sysconfdir}/
 
        if [ "${TARGET_ARCH}" = "arm" ]; then
                install -m 0755 ${WORKDIR}/alignment.sh ${D}${sysconfdir}/init.d
-- 
1.7.4.1

_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to