diff options
author | Mike Westerhof <mwester@dls.net> | 2011-01-30 09:11:23 -0600 |
---|---|---|
committer | Mike Westerhof <mwester@dls.net> | 2011-01-30 09:11:23 -0600 |
commit | aa479cdc92fa0549b351d600bd406d4f18c193f8 (patch) | |
tree | 392e6b0752a094e07f70e84de190325964ec6943 /recipes/initscripts | |
parent | 45415fcd2351e676773b61a504d38b89ac057389 (diff) | |
download | openembedded-aa479cdc92fa0549b351d600bd406d4f18c193f8.tar.gz |
SlugOS: initscripts - rework reboot for clean kexec
(Borrowed extensively from the HIPOX reboot/kexec technique)
Signed-off-by: Mike Westerhof <mike@mwester.net>
Diffstat (limited to 'recipes/initscripts')
-rwxr-xr-x | recipes/initscripts/initscripts-1.0/slugos/reboot | 17 | ||||
-rw-r--r-- | recipes/initscripts/initscripts-slugos_1.0.bb | 5 |
2 files changed, 14 insertions, 8 deletions
diff --git a/recipes/initscripts/initscripts-1.0/slugos/reboot b/recipes/initscripts/initscripts-1.0/slugos/reboot index f98b87f033..ca640fea06 100755 --- a/recipes/initscripts/initscripts-1.0/slugos/reboot +++ b/recipes/initscripts/initscripts-1.0/slugos/reboot @@ -2,15 +2,18 @@ # # 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 diff --git a/recipes/initscripts/initscripts-slugos_1.0.bb b/recipes/initscripts/initscripts-slugos_1.0.bb index b048277db5..ce80fe545d 100644 --- a/recipes/initscripts/initscripts-slugos_1.0.bb +++ b/recipes/initscripts/initscripts-slugos_1.0.bb @@ -17,7 +17,7 @@ RDEPENDS_${PN} = "update-rc.d" # 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. @@ -174,6 +174,9 @@ do_install_append() { # 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 . } |