From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Kerr Date: Thu, 16 Jan 2014 16:52:18 +0800 Subject: [Buildroot] [RFC, PATCH 5/8] package/kexec-lite: Add a package for the kexec-lite tools In-Reply-To: <1389862338.917573.283530987294.0.gpush@pablo> Message-ID: <1389862338.919140.855251422258.5.gpush@pablo> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Kexec-lite is a tiny impementation of kexec for devicetree-based platforms. Signed-off-by: Jeremy Kerr --- package/Config.in | 1 package/kexec-lite/Config.in | 9 +++ package/kexec-lite/kexec-lite-clean-restart.patch | 34 ++++++++++++++ package/kexec-lite/kexec-lite.mk | 20 ++++++++ 4 files changed, 64 insertions(+) diff --git a/package/Config.in b/package/Config.in index 61f4c9e0..f5161475 100644 --- a/package/Config.in +++ b/package/Config.in @@ -52,6 +52,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" diff --git a/package/kexec-lite/Config.in b/package/kexec-lite/Config.in new file mode 100644 index 00000000..0dc05155 --- /dev/null +++ b/package/kexec-lite/Config.in @@ -0,0 +1,9 @@ +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. diff --git a/package/kexec-lite/kexec-lite-clean-restart.patch b/package/kexec-lite/kexec-lite-clean-restart.patch new file mode 100644 index 00000000..faaa93a0 --- /dev/null +++ b/package/kexec-lite/kexec-lite-clean-restart.patch @@ -0,0 +1,34 @@ +From 0a654c20e1b9324c57ba4116b52fb6ab33847e1d Mon Sep 17 00:00:00 2001 +From: Jeremy Kerr +Date: Thu, 8 Aug 2013 17:16:31 +0800 +Subject: [PATCH] kexec: Implement clean restart for busybox init + +Signed-off-by: Jeremy Kerr +--- + 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 + #include + #include ++#include + #include + #include + #include +@@ -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 + diff --git a/package/kexec-lite/kexec-lite.mk b/package/kexec-lite/kexec-lite.mk new file mode 100644 index 00000000..4d844f43 --- /dev/null +++ b/package/kexec-lite/kexec-lite.mk @@ -0,0 +1,20 @@ +################################################################################ +# +# kexec +# +################################################################################ + +KEXEC_LITE_VERSION = 6c762a7 +KEXEC_LITE_SITE = git://github.com/antonblanchard/kexec-lite +KEXEC_LITE_LICENSE = GPL +KEXEC_LITE_DEPENDENCIES = libelf dtc + +define KEXEC_LITE_BUILD_CMDS + $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all +endef + +define KEXEC_LITE_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 755 $(@D)/kexec $(TARGET_DIR)/usr/sbin/ +endef + +$(eval $(generic-package))