#
# reboot Execute the reboot command.
#
-# Version: @(#)reboot 2.75 22-Jun-1998 miquels@cistron.nl
-#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
-echo "Rebooting... "
-if [ -x /usr/sbin/kexec ] ; then
- echo " trying kexec..."
- kexec -f -e -x
+# Test if we should boot into the new kernel
+if test -x /usr/sbin/kexec -a -f /sys/kernel/kexec_loaded ; then
+ read loaded < /sys/kernel/kexec_loaded
+ if test "$loaded" = "1" ; then
+ echo -n "Loaded kernel image found, executing ... "
+ /usr/sbin/kexec --exec --force --no-ifdown
+ echo "${warn}failed, doing normal reboot${norm}"
+ fi
fi
-echo " normal reboot..."
+
+echo -n "Rebooting... "
reboot -d -f -i
# All other standard definitions inherited from initscripts
# Except the PR which is hacked here. The format used is
# a suffix
-PR := "${PR}.25"
+PR := "${PR}.26"
# Avoid a clash on /etc/device_table by ensuring that it gets removed
# from the list of configuration files handled specially by opkg.
# any network file systems which failed to umount before.
update-rc.d -r ${D} umountfs start 70 0 6 .
+ # Remount /sys here, the reboot script needs it to check for kexec
+ update-rc.d -r ${D} sysfs.sh start 80 6 .
+
update-rc.d -r ${D} halt start 90 0 .
update-rc.d -r ${D} reboot start 90 6 .
}