aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xrc.d/rc.sysinit16
1 files changed, 9 insertions, 7 deletions
diff --git a/rc.d/rc.sysinit b/rc.d/rc.sysinit
index 6c3b0952..b0ed12ca 100755
--- a/rc.d/rc.sysinit
+++ b/rc.d/rc.sysinit
@@ -646,16 +646,18 @@ fi
# Generate a header that defines the boot kernel.
KERNEL_TYPE=`uname -r | sed 's_^[^se]*\(\|smp\|enterprise\)$_-\1_;s_^-$__'`
KERNEL_RELEASE=`uname -r | sed 's|smp\|enterprise||g'`
-KERNEL_ARCH=`rpm -q --qf '%{ARCH}' kernel$KERNEL_TYPE-$KERNEL_RELEASE 2>/dev/null`
+
+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
- ENTERPRISE="0"
- SMP="0"
- UP="0"
+ ENTERPRISE='0'
+ SMP='0'
+ UP='0'
case "$KERNEL_TYPE" in
- -smp) SMP="1";;
- -enterprise) ENTERPRISE="1";;
- *) UP="1";;
+ -smp) SMP='1';;
+ -enterprise) ENTERPRISE='1';;
+ *) UP='1';;
esac
cat > /boot/kernel.h << EOF
/* This file is automatically generated at boot time. */