#!/bin/bash # # Generate a header that defines the boot kernel. # KERNEL_TYPE=`uname -r | sed 's_^.*\(tape\)$_-\1_;t;s_.*__;'` KERNEL_RELEASE=`uname -r | sed 's|tape||g'` rpm -q kernel$KERNEL_TYPE-$KERNEL_RELEASE >/dev/null 2>&1 && KERNEL_ARCH=`rpm -q --qf '%{ARCH}' kernel$KERNEL_TYPE-$KERNEL_RELEASE 2>/dev/null` || KERNEL_ARCH=`uname -m` OLD_KERNEL_ARCH_TYPE=`sed -n 's_^/\* Kernel type \(.*\) \*/_\1_p' /boot/kernel.h 2>/dev/null` if [ -n "$KERNEL_ARCH" -a "$KERNEL_ARCH$KERNEL_TYPE" != "$OLD_KERNEL_ARCH_TYPE" ]; then TAPE='0' VM='0' case "$KERNEL_TYPE" in -tape) TAPE='1';; *) VM='1';; esac cat > /boot/kernel.h << EOF /* This file is automatically generated at boot time. */ #ifndef __BOOT_KERNEL_H_ #define __BOOT_KERNEL_H_ /* Kernel type $KERNEL_ARCH$KERNEL_TYPE */ #ifndef __MODULE_KERNEL_$KERNEL_ARCH #define __MODULE_KERNEL_$KERNEL_ARCH 1 #endif #ifndef __BOOT_KERNEL_TAPE #define __BOOT_KERNEL_TAPE $TAPE #endif #ifndef __BOOT_KERNEL_VM #define __BOOT_KERNEL_VM $VM #endif #endif EOF fi