| #!/bin/bash -ex |
| # |
| # Setup for kdump test driver. |
| # |
| # This file is copied from kdump test case of LTP. |
| # |
| # This file is released under the GPLv2. |
| # |
| |
| conf=${1} |
| arch=$(uname -m) |
| kver=$(uname -r) |
| |
| . "${conf}" |
| |
| echo "Verify Kernel version >= 2.6.16." |
| # Kernel might in the following format. |
| # x.y.z-1.el |
| # x.y.z.1.el |
| kx=${kver%%.*} |
| tmp=${kver#*.} |
| ky=${tmp%%.*} |
| tmp=${tmp#*.} |
| tmp=${tmp%%.*} |
| kz=${tmp%%-*} |
| |
| if [ "${kx}" -lt 2 ]; then |
| error=1 |
| |
| elif [ "${kx}" -eq 2 ]; then |
| if [ "${ky}" -lt 6 ]; then |
| error=1 |
| |
| elif [ "${ky}" -eq 6 ]; then |
| if [ "${kz}" -lt 16 ]; then |
| error=1 |
| fi |
| fi |
| fi |
| |
| if [ "${error}" ]; then |
| echo "Fail: kernel version ${kver} is less than 2.6.16." |
| fi |
| |
| |
| echo "Verify user is root." |
| if [ $(id -u) != 0 ]; then |
| echo "Fail: root is required." |
| error=1 |
| fi |
| |
| |
| echo "Verify prerequisite." |
| if [ ! -x "/sbin/kexec" ]; then |
| echo "Fail: kexec-tools not found." |
| error=1 |
| fi |
| |
| if [ ! -d "/lib/modules/${kver}/build" ]; then |
| echo "Fail: kernel-devel not found." |
| error=1 |
| fi |
| |
| if [ "${CRASH}" ] && [ "${CRASH}" -eq 1 ]; then |
| if [ ! -x "/usr/bin/crash" ]; then |
| echo "Fail: crash not found." |
| error=1 |
| fi |
| |
| if [ ! -f "${VMLINUX}" ]; then |
| echo "Fail: kernel-debuginfo not found." |
| error=1 |
| fi |
| fi |
| |
| # Final result. |
| if [ "${error}" ]; then |
| echo "Please fixed the above failures before continuing." |
| exit 1 |
| fi |
| |
| echo "Modify Boot Loader." |
| if [ "${arch}" = "ppc64" ]; then |
| args="crashkernel=256M@32M xmon=off" |
| elif [ "${arch}" = "i686" ]; then |
| args="crashkernel=128M@16M nmi_watchdog=1" |
| elif [ "${arch}" = "ia64" ]; then |
| args="crashkernel=512M@256M" |
| else |
| args="crashkernel=128M@16M" |
| fi |
| |
| if [ -x "/sbin/grubby" ]; then |
| /sbin/grubby --default-kernel | |
| xargs /sbin/grubby --args="${args}" --update-kernel |
| |
| else |
| echo "Warn: please make sure the following arguments are in Boot\ |
| Loader:" |
| echo "$args" |
| echo "Hit any key when ready." |
| read |
| fi |
| |
| exit 0 |