Collect ramoops data into BMC dump
- Add ramoops file monitor and support to enable ramoops data
collection for kernel dump.
- Systemd will collect ramoops data and write it into
/var/lib/systemd/pstore when a system kernel oops/panics.
- Today, need to grab everything in that directory, put it in a dump
and then delete everything in that directory.
Tested:
- Simulate a kernel panic by creating similar data in the expected
location.
`dmesg > /var/lib/systemd/pstore/dmesg1.txt`
`dmesg > /var/lib/systemd/pstore/dmesg2.txt`
`dmesg > /var/lib/systemd/pstore/dmesg3.txt`
`dmesg > /var/lib/systemd/pstore/dmesg4.txt`
tar -tvf obmcdump_1_248.tar.xz:
drwxr-xr-x 0/0 0 1970-01-01 00:01:32 obmcdump_1_248/
-rw-r--r-- 0/0 21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg1.txt
-rw-r--r-- 0/0 21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg2.txt
-rw-r--r-- 0/0 21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg3.txt
-rw-r--r-- 0/0 21239 1970-01-01 00:01:32 obmcdump_1_248/dmesg4.txt
-rw-r--r-- 0/0 162 1970-01-01 00:01:32 obmcdump_1_248/dreport.log
-rw-r--r-- 0/0 294 1970-01-01 00:01:31 obmcdump_1_248/os-release
-rw-r--r-- 0/0 278 1970-01-01 00:01:31 obmcdump_1_248/summary.log
Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I05bca408f4dcc2b62350104a0c5f757d740dde22
diff --git a/tools/dreport.d/dreport b/tools/dreport.d/dreport
index d831191..3009b80 100755
--- a/tools/dreport.d/dreport
+++ b/tools/dreport.d/dreport
@@ -44,6 +44,7 @@
declare -rx TYPE_CORE="core"
declare -rx TYPE_ELOG="elog"
declare -rx TYPE_CHECKSTOP="checkstop"
+declare -rx TYPE_RAMOOPS="ramoops"
declare -rx SUMMARY_LOG="summary.log"
declare -rx DREPORT_LOG="dreport.log"
declare -rx TMP_DIR="/tmp"
@@ -91,6 +92,9 @@
log_summary "Core: $optional_path"
set_core_pid
;;
+ $TYPE_RAMOOPS)
+ log_summary "Ramoops: $optional_path"
+ ;;
$TYPE_ELOG)
log_summary "ELOG: $optional_path"
elog_id=$(basename "$optional_path")
@@ -198,6 +202,7 @@
if [[ ! ($dump_type = $TYPE_USER || \
$dump_type = $TYPE_CORE || \
$dump_type = $TYPE_ELOG || \
+ $dump_type = $TYPE_RAMOOPS || \
$dump_type = $TYPE_CHECKSTOP) ]]; then
log_error "Invalid -type, Only summary log is available"
dump_type=$SUMMARY_DUMP