@@ -53,6 +53,7 @@ source "package/fio/Config.in"
source "package/gdb/Config.in"
source "package/iozone/Config.in"
source "package/kexec/Config.in"
+source "package/kexec-lite/Config.in"
source "package/ktap/Config.in"
source "package/latencytop/Config.in"
source "package/lmbench/Config.in"
new file mode 100644
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_KEXEC_LITE
+ bool "kexec-lite"
+ depends on BR2_powerpc
+ select BR2_PACKAGE_LIBELF
+ select BR2_PACKAGE_DTC
+ select BR2_PACKAGE_DTC_PROGRAMS
+ help
+ Kexec is a user space utiltity for loading another kernel
+ and asking the currently running kernel to do something with it.
+
+ This package is a tiny implementation of the kexec userspace
+ components, for devicetree-based platforms.
new file mode 100644
@@ -0,0 +1,34 @@
+From 0a654c20e1b9324c57ba4116b52fb6ab33847e1d Mon Sep 17 00:00:00 2001
+From: Jeremy Kerr <jk@ozlabs.org>
+Date: Thu, 8 Aug 2013 17:16:31 +0800
+Subject: [PATCH] kexec: Implement clean restart for busybox init
+
+Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
+---
+ kexec.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kexec.c b/kexec.c
+index 2edb7df..b2a0c42 100644
+--- a/kexec.c
++++ b/kexec.c
+@@ -27,6 +27,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <syscall.h>
++#include <signal.h>
+ #include <libfdt.h>
+ #include <getopt.h>
+ #include <sys/types.h>
+@@ -818,7 +819,7 @@ int main(int argc, char *argv[])
+ sync();
+ exec_kexec();
+ } else {
+- execlp("shutdown", "shutdown", "-r", "now", NULL);
++ kill(1, SIGQUIT);
+ }
+
+ return -1;
+--
+1.7.10.4
+
new file mode 100644
@@ -0,0 +1,22 @@
+################################################################################
+#
+# kexec-lite
+#
+################################################################################
+
+KEXEC_LITE_VERSION = 0e30677d8232595c135772e1121b7be98c118e13
+KEXEC_LITE_SITE = $(call github,antonblanchard,kexec-lite,$(KEXEC_LITE_VERSION))
+KEXEC_LITE_LICENSE = GPL
+KEXEC_LITE_DEPENDENCIES = libelf dtc
+
+define KEXEC_LITE_BUILD_CMDS
+ $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ -C $(@D) all
+endef
+
+define KEXEC_LITE_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 755 $(@D)/kexec $(TARGET_DIR)/usr/sbin/
+endef
+
+$(eval $(generic-package))
Kexec-lite is a tiny impementation of kexec for devicetree-based platforms. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> --- package/Config.in | 1 package/kexec-lite/Config.in | 12 +++ package/kexec-lite/kexec-lite-01-clean-restart.patch | 34 +++++++++++ package/kexec-lite/kexec-lite.mk | 22 +++++++ 4 files changed, 69 insertions(+)