You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.0 KiB
109 lines
2.0 KiB
#!/bin/sh -ex
|
|
|
|
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 "Compile Kernel modules."
|
|
make clean
|
|
|
|
# Test if struct kprobe has "symbol_name" field.
|
|
if make -C kprobes >/dev/null 2>&1; then
|
|
export USE_SYMBOL_NAME=1
|
|
fi
|
|
|
|
make
|
|
|
|
echo "Modify Boot Loader."
|
|
if [ "${arch}" = "ppc64" ]; then
|
|
args="crashkernel=256M@32M xmon=off"
|
|
elif [ "${arch}" = "i686" ]; then
|
|
args="crashkernel=256M@128M nmi_watchdog=1"
|
|
elif [ "${arch}" = "ia64" ]; then
|
|
args="crashkernel=512M@256M"
|
|
else
|
|
args="crashkernel=256M@128M"
|
|
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
|