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