1f08c3bdfSopenharmony_ci#!/bin/sh -ex 2f08c3bdfSopenharmony_ci 3f08c3bdfSopenharmony_ciconf=${1} 4f08c3bdfSopenharmony_ciarch=$(uname -m) 5f08c3bdfSopenharmony_cikver=$(uname -r) 6f08c3bdfSopenharmony_ci 7f08c3bdfSopenharmony_ci. "${conf}" 8f08c3bdfSopenharmony_ci 9f08c3bdfSopenharmony_ciecho "Verify Kernel version >= 2.6.16." 10f08c3bdfSopenharmony_ci# Kernel might in the following format. 11f08c3bdfSopenharmony_ci# x.y.z-1.el 12f08c3bdfSopenharmony_ci# x.y.z.1.el 13f08c3bdfSopenharmony_cikx=${kver%%.*} 14f08c3bdfSopenharmony_citmp=${kver#*.} 15f08c3bdfSopenharmony_ciky=${tmp%%.*} 16f08c3bdfSopenharmony_citmp=${tmp#*.} 17f08c3bdfSopenharmony_citmp=${tmp%%.*} 18f08c3bdfSopenharmony_cikz=${tmp%%-*} 19f08c3bdfSopenharmony_ci 20f08c3bdfSopenharmony_ciif [ "${kx}" -lt 2 ]; then 21f08c3bdfSopenharmony_ci error=1 22f08c3bdfSopenharmony_ci 23f08c3bdfSopenharmony_cielif [ "${kx}" -eq 2 ]; then 24f08c3bdfSopenharmony_ci if [ "${ky}" -lt 6 ]; then 25f08c3bdfSopenharmony_ci error=1 26f08c3bdfSopenharmony_ci 27f08c3bdfSopenharmony_ci elif [ "${ky}" -eq 6 ]; then 28f08c3bdfSopenharmony_ci if [ "${kz}" -lt 16 ]; then 29f08c3bdfSopenharmony_ci error=1 30f08c3bdfSopenharmony_ci fi 31f08c3bdfSopenharmony_ci fi 32f08c3bdfSopenharmony_cifi 33f08c3bdfSopenharmony_ci 34f08c3bdfSopenharmony_ciif [ "${error}" ]; then 35f08c3bdfSopenharmony_ci echo "Fail: kernel version ${kver} is less than 2.6.16." 36f08c3bdfSopenharmony_cifi 37f08c3bdfSopenharmony_ci 38f08c3bdfSopenharmony_ci 39f08c3bdfSopenharmony_ciecho "Verify user is root." 40f08c3bdfSopenharmony_ciif [ $(id -u) != 0 ]; then 41f08c3bdfSopenharmony_ci echo "Fail: root is required." 42f08c3bdfSopenharmony_ci error=1 43f08c3bdfSopenharmony_cifi 44f08c3bdfSopenharmony_ci 45f08c3bdfSopenharmony_ci 46f08c3bdfSopenharmony_ciecho "Verify prerequisite." 47f08c3bdfSopenharmony_ciif [ ! -x "/sbin/kexec" ]; then 48f08c3bdfSopenharmony_ci echo "Fail: kexec-tools not found." 49f08c3bdfSopenharmony_ci error=1 50f08c3bdfSopenharmony_cifi 51f08c3bdfSopenharmony_ci 52f08c3bdfSopenharmony_ciif [ ! -d "/lib/modules/${kver}/build" ]; then 53f08c3bdfSopenharmony_ci echo "Fail: kernel-devel not found." 54f08c3bdfSopenharmony_ci error=1 55f08c3bdfSopenharmony_cifi 56f08c3bdfSopenharmony_ci 57f08c3bdfSopenharmony_ciif [ "${CRASH}" ] && [ "${CRASH}" -eq 1 ]; then 58f08c3bdfSopenharmony_ci if [ ! -x "/usr/bin/crash" ]; then 59f08c3bdfSopenharmony_ci echo "Fail: crash not found." 60f08c3bdfSopenharmony_ci error=1 61f08c3bdfSopenharmony_ci fi 62f08c3bdfSopenharmony_ci 63f08c3bdfSopenharmony_ci if [ ! -f "${VMLINUX}" ]; then 64f08c3bdfSopenharmony_ci echo "Fail: kernel-debuginfo not found." 65f08c3bdfSopenharmony_ci error=1 66f08c3bdfSopenharmony_ci fi 67f08c3bdfSopenharmony_cifi 68f08c3bdfSopenharmony_ci 69f08c3bdfSopenharmony_ci# Final result. 70f08c3bdfSopenharmony_ciif [ "${error}" ]; then 71f08c3bdfSopenharmony_ci echo "Please fixed the above failures before continuing." 72f08c3bdfSopenharmony_ci exit 1 73f08c3bdfSopenharmony_cifi 74f08c3bdfSopenharmony_ci 75f08c3bdfSopenharmony_ciecho "Compile Kernel modules." 76f08c3bdfSopenharmony_cimake clean 77f08c3bdfSopenharmony_ci 78f08c3bdfSopenharmony_ci# Test if struct kprobe has "symbol_name" field. 79f08c3bdfSopenharmony_ciif make -C kprobes >/dev/null 2>&1; then 80f08c3bdfSopenharmony_ci export USE_SYMBOL_NAME=1 81f08c3bdfSopenharmony_cifi 82f08c3bdfSopenharmony_ci 83f08c3bdfSopenharmony_cimake 84f08c3bdfSopenharmony_ci 85f08c3bdfSopenharmony_ciecho "Modify Boot Loader." 86f08c3bdfSopenharmony_ciif [ "${arch}" = "ppc64" ]; then 87f08c3bdfSopenharmony_ci args="crashkernel=256M@32M xmon=off" 88f08c3bdfSopenharmony_cielif [ "${arch}" = "i686" ]; then 89f08c3bdfSopenharmony_ci args="crashkernel=256M@128M nmi_watchdog=1" 90f08c3bdfSopenharmony_cielif [ "${arch}" = "ia64" ]; then 91f08c3bdfSopenharmony_ci args="crashkernel=512M@256M" 92f08c3bdfSopenharmony_cielse 93f08c3bdfSopenharmony_ci args="crashkernel=256M@128M" 94f08c3bdfSopenharmony_cifi 95f08c3bdfSopenharmony_ci 96f08c3bdfSopenharmony_ciif [ -x "/sbin/grubby" ]; then 97f08c3bdfSopenharmony_ci /sbin/grubby --default-kernel | 98f08c3bdfSopenharmony_ci xargs /sbin/grubby --args="${args}" --update-kernel 99f08c3bdfSopenharmony_ci 100f08c3bdfSopenharmony_cielse 101f08c3bdfSopenharmony_ci echo "Warn: please make sure the following arguments are in Boot\ 102f08c3bdfSopenharmony_ci Loader:" 103f08c3bdfSopenharmony_ci echo "$args" 104f08c3bdfSopenharmony_ci echo "Hit any key when ready." 105f08c3bdfSopenharmony_ci read 106f08c3bdfSopenharmony_cifi 107f08c3bdfSopenharmony_ci 108f08c3bdfSopenharmony_ciexit 0 109