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/meson.build b/meson.build
index e1b06b7..fcb3004 100644
--- a/meson.build
+++ b/meson.build
@@ -62,6 +62,8 @@
)
conf_data.set_quoted('BMC_DUMP_PATH', get_option('BMC_DUMP_PATH'),
description : 'Directory where bmc dumps are placed')
+conf_data.set_quoted('SYSTEMD_PSTORE_PATH', get_option('SYSTEMD_PSTORE_PATH'),
+ description : 'Path to the systemd pstore directory')
conf_data.set('BMC_DUMP_MAX_SIZE', get_option('BMC_DUMP_MAX_SIZE'),
description : 'Maximum size of one bmc dump in kilo bytes'
)
@@ -163,6 +165,22 @@
phosphor_dump_monitor_incdir = []
+phosphor_ramoops_monitor_sources = [
+ 'ramoops_manager.cpp',
+ 'ramoops_manager_main.cpp',
+ 'watch.cpp'
+ ]
+
+phosphor_ramoops_monitor_dependency = [
+ phosphor_dbus_interfaces,
+ phosphor_logging,
+ cppfs
+ ]
+
+phosphor_ramoops_monitor_install = true
+
+phosphor_ramoops_monitor_incdir = []
+
executables = [[ 'phosphor-dump-manager',
phosphor_dump_manager_sources,
phosphor_dump_manager_dependency,
@@ -174,6 +192,12 @@
phosphor_dump_monitor_dependency,
phosphor_dump_monitor_install,
phosphor_dump_monitor_incdir
+ ],
+ [ 'phosphor-ramoops-monitor',
+ phosphor_ramoops_monitor_sources,
+ phosphor_ramoops_monitor_dependency,
+ phosphor_ramoops_monitor_install,
+ phosphor_ramoops_monitor_incdir
]
]