Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
145
sources/poky/meta/recipes-kernel/kexec/kexec-tools/kdump
Executable file
145
sources/poky/meta/recipes-kernel/kexec/kexec-tools/kdump
Executable file
@@ -0,0 +1,145 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# kdump
|
||||
#
|
||||
# Description: The kdump script provides the support:
|
||||
# 1. Load a kdump kernel image into memory;
|
||||
# 2. Copy away vmcore when system panic.
|
||||
#
|
||||
|
||||
#default
|
||||
KEXEC=/usr/sbin/kexec
|
||||
KEXEC_ARGS="-p"
|
||||
|
||||
MAKEDUMPFILE=/usr/bin/makedumpfile
|
||||
MAKEDUMPFILE_ARGS="-E -d 1"
|
||||
|
||||
LOGGER="logger -p info -t kdump"
|
||||
|
||||
if [ -f /etc/sysconfig/kdump.conf ]; then
|
||||
. /etc/sysconfig/kdump.conf
|
||||
else
|
||||
echo "no /etc/sysconfig/kdump.conf"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
do_check()
|
||||
{
|
||||
#check makedumpfile
|
||||
if [ ! -e ${MAKEDUMPFILE} -o ! -x ${MAKEDUMPFILE} ] ;then
|
||||
echo "No makedumpfile found."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#check kexec
|
||||
if [ ! -e ${KEXEC} -o ! -x ${KEXEC} ] ;then
|
||||
echo "No kexec found."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#check whether kdump kernel image exists on the system
|
||||
if [ -z "${KDUMP_KIMAGE}" -o ! -f "${KDUMP_KIMAGE}" ]; then
|
||||
echo "No kdump kernel image found."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "${KDUMP_CMDLINE}"x = "x" ] ; then
|
||||
echo "KDUMP_CMDLINE is not configured"
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
do_save_vmcore()
|
||||
{
|
||||
if [ ${KDUMP_VMCORE_PATH}x = x ]; then
|
||||
KDUMP_VMCORE_PATH="/var/crash/`date +"%Y-%m-%d"`"
|
||||
fi
|
||||
|
||||
mkdir -p ${KDUMP_VMCORE_PATH}
|
||||
echo "Saving a vmcore to ${KDUMP_VMCORE_PATH}."
|
||||
|
||||
${MAKEDUMPFILE} ${MAKEDUMPFILE_ARGS} /proc/vmcore ${KDUMP_VMCORE_PATH}/vmcore-"`date +"%H:%M:%S"`"
|
||||
# cp --sparse=always /proc/vmcore ${KDUMP_VMCORE_PATH}/vmcore-"`date +"%H:%M:%S"`"
|
||||
rc=$?
|
||||
if [ ${rc} == 0 ]; then
|
||||
${LOGGER} "Saved a vmcore to ${KDUMP_VMCORE_PATH}."
|
||||
else
|
||||
${LOGGER} "Failed to save vmcore!"
|
||||
fi
|
||||
return ${rc}
|
||||
}
|
||||
|
||||
do_start()
|
||||
{
|
||||
#check file
|
||||
do_check
|
||||
|
||||
#check whether the running kernel supports kdump.
|
||||
if [ ! -e /sys/kernel/kexec_crash_loaded ]; then
|
||||
echo "Kdump isn't supported on the running kernel!!!"
|
||||
${LOGGER} "Kdump isn't supported on the running kernel!!!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
#check whether kdump kernel image has been loaded
|
||||
rc=`cat /sys/kernel/kexec_crash_loaded`
|
||||
if [ ${rc} != 0 ]; then
|
||||
echo "Kdump is already running.";
|
||||
${LOGGER} "Kdump is already running."
|
||||
return 0
|
||||
fi
|
||||
|
||||
#check the running kernel cmdline option,insure "crashkernel=" always set.
|
||||
grep -q crashkernel= /proc/cmdline
|
||||
if [ $? != 0 ]; then
|
||||
echo "Kdump isn't supported on the running kernel,please check boot option!!!"
|
||||
${LOGGER} "Kdump isn't supported on the running kernel,please check boot option!!!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
#Load the kdump kernel image
|
||||
${KEXEC} ${KEXEC_ARGS} "${KDUMP_KIMAGE}" --append="${KDUMP_CMDLINE}"
|
||||
if [ $? != 0 ]; then
|
||||
echo "Failed to load kdump kernel!"
|
||||
${LOGGER} "Failed to load kdump kernel!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Kdump started up."
|
||||
${LOGGER} "Kdump started up."
|
||||
}
|
||||
|
||||
do_stop()
|
||||
{
|
||||
${KEXEC} -p -u 2>/dev/null
|
||||
if [ $? == 0 ]; then
|
||||
echo "Kdump has been stopped."
|
||||
${LOGGER} "Kdump has been stopped."
|
||||
else
|
||||
echo "Failed to stop kdump!"
|
||||
${LOGGER} "Failed to stop kdump!"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
if [ -s /proc/vmcore ]; then
|
||||
do_save_vmcore
|
||||
reboot
|
||||
else
|
||||
do_start
|
||||
fi
|
||||
;;
|
||||
restart)
|
||||
do_stop
|
||||
do_start
|
||||
;;
|
||||
stop)
|
||||
do_stop
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit $?
|
||||
Reference in New Issue
Block a user