aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2008-08-12 06:02:06 +0000
committerFlorian Fainelli <florian@openwrt.org>2008-08-12 06:02:06 +0000
commit8dc883b9769f0b8733cee949a1c2959c4542168c (patch)
tree16ad8818c89da4ea0225ec4b9d679a3e9da2dc71
parentc9f2df5cea731976a7766dda5d1a4a64d9bba8ea (diff)
downloadupstream-8dc883b9769f0b8733cee949a1c2959c4542168c.tar.gz
upstream-8dc883b9769f0b8733cee949a1c2959c4542168c.tar.bz2
upstream-8dc883b9769f0b8733cee949a1c2959c4542168c.zip
Allow routerboard users to kexec into the newly installed kernel if kexec-tools is installed
SVN-Revision: 12286
-rwxr-xr-xtarget/linux/adm5120/router_le/base-files/sbin/wget2nand5
-rw-r--r--target/linux/adm5120/router_le/config-2.6.261
-rwxr-xr-xtarget/linux/rb532/base-files/sbin/cf2nand5
-rwxr-xr-xtarget/linux/rb532/base-files/sbin/wget2nand6
-rw-r--r--target/linux/rb532/config-2.6.231
5 files changed, 18 insertions, 0 deletions
diff --git a/target/linux/adm5120/router_le/base-files/sbin/wget2nand b/target/linux/adm5120/router_le/base-files/sbin/wget2nand
index 50e9ddb4fb..20be45826b 100755
--- a/target/linux/adm5120/router_le/base-files/sbin/wget2nand
+++ b/target/linux/adm5120/router_le/base-files/sbin/wget2nand
@@ -63,6 +63,11 @@ echo "chmod ugo+x /" > /tmp/wget2nand-rootfs/etc/uci-defaults/set_root_permissio
sync
ls /tmp/wget2nand-kernel/
ls /tmp/wget2nand-rootfs/
+# use kexec if present
+[ -x /usr/sbin/kexec ] && {
+ kexec -l /tmp/wget2nand-kernel/kernel --command-line="$(cat /proc/cmdline) rootfstype=yaffs2 root=$mtd_kernel"
+ kexec -e
+}
# unmount the partitions and remove the directories into which they were mounted
umount /tmp/wget2nand-kernel
umount /tmp/wget2nand-rootfs
diff --git a/target/linux/adm5120/router_le/config-2.6.26 b/target/linux/adm5120/router_le/config-2.6.26
index 622d741869..4792f6445e 100644
--- a/target/linux/adm5120/router_le/config-2.6.26
+++ b/target/linux/adm5120/router_le/config-2.6.26
@@ -143,6 +143,7 @@ CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IRQ_CPU=y
# CONFIG_IWLWIFI_LEDS is not set
# CONFIG_JOLIET is not set
+CONFIG_KEXEC=y
# CONFIG_LEDS_ALIX is not set
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_TRIGGER_ADM5120_SWITCH=m
diff --git a/target/linux/rb532/base-files/sbin/cf2nand b/target/linux/rb532/base-files/sbin/cf2nand
index 146aa4f112..5b838dbbb9 100755
--- a/target/linux/rb532/base-files/sbin/cf2nand
+++ b/target/linux/rb532/base-files/sbin/cf2nand
@@ -53,6 +53,11 @@ echo "Copying filesystem..."
( cd /tmp/cf2nand/rootfs; tar c . ) | ( cd /tmp/cf2nand/p2; tar x )
echo "chmod ugo+x /" > /tmp/cf2nand/p2/etc/uci-defaults/set_root_permission
sync
+# Use kexec is present
+[ -x /usr/bin/kexec ] && {
+ kexec -l /tmp/cf2nand/p1/kernel --command-line="$(cat /proc/cmdline) root=/dev/mtdblock1 rootfstype=yaffs2 init=/etc/preinit"
+ kexec -e
+}
umount /tmp/cf2nand/p2
rmdir /tmp/cf2nand/p2
diff --git a/target/linux/rb532/base-files/sbin/wget2nand b/target/linux/rb532/base-files/sbin/wget2nand
index 2101195bca..b0f4205e78 100755
--- a/target/linux/rb532/base-files/sbin/wget2nand
+++ b/target/linux/rb532/base-files/sbin/wget2nand
@@ -55,6 +55,12 @@ echo "chmod ugo+x /" > /tmp/wget2nand/etc/uci-defaults/set_root_permission
sync
ls /tmp/wget2nand-boot/
ls /tmp/wget2nand/
+# use kexec if present
+[ -x /usr/bin/kexec ] && {
+ kexec -l /tmp/wget2nand-boot/kernel --command-line="$(cat /proc/cmdline) root=$main rootfstype=yaffs2 init=/etc/preinit"
+ kexec -e
+}
+
# unmount the partitions and remove the directories into which they were mounted
umount /tmp/wget2nand-boot
umount /tmp/wget2nand
diff --git a/target/linux/rb532/config-2.6.23 b/target/linux/rb532/config-2.6.23
index fcfd6103ae..53c1517530 100644
--- a/target/linux/rb532/config-2.6.23
+++ b/target/linux/rb532/config-2.6.23
@@ -60,6 +60,7 @@ CONFIG_INITRAMFS_SOURCE=""
CONFIG_INPUT=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_IRQ_CPU=y
+CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ATKBD is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_KEYBOARD_LKKBD is not set