Function move_config should be called after or during preinit_mount_root
hook in do_mount_root function. At this state sysupgrade.tgz is not in its
place during that time when do_mount_root is called. Function move_config
is called later so the sysupgrade.tgz stays in root directory to the second 
restart when it is unpacked properly.

This patch adds move_config function to preinit_mount_root hook instead
of preinit_main and changes the filename of script to be called before
80_mount_root is called. It will prepare the sysupgrade archive for 
do_mount_root
within preinit_mount_root hook.

This issue was introduced for target x86. Since the target for x86_64 is
similar to x86, this issue is present also in this target. It solves the
ticket #15042 and #14088.

Signed-off-by: Jiri Slachta <slac...@cesnet.cz>
---
 .../x86_64/base-files/lib/preinit/79_move_config   |   22 ++++++++++++++++++++
 .../x86_64/base-files/lib/preinit/89_move_config   |   22 --------------------
 2 files changed, 22 insertions(+), 22 deletions(-)
 create mode 100644 target/linux/x86_64/base-files/lib/preinit/79_move_config
 delete mode 100644 target/linux/x86_64/base-files/lib/preinit/89_move_config

diff --git a/target/linux/x86_64/base-files/lib/preinit/79_move_config 
b/target/linux/x86_64/base-files/lib/preinit/79_move_config
new file mode 100644
index 0000000..0bffbab
--- /dev/null
+++ b/target/linux/x86_64/base-files/lib/preinit/79_move_config
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Copyright (C) 2012 OpenWrt.org
+
+move_config() {
+       local rootfsdev
+       local rootfstype
+       
+       rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { 
print $2 }' < /proc/cmdline)"
+       case "$rootfstype" in
+               squashfs|jffs2)
+                       rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == 
"block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < 
/proc/cmdline)";;
+               ext4)
+                       rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == 
"root") { print $2 }' < /proc/cmdline)";;
+       esac
+
+       mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
+       mv -f /mnt/sysupgrade.tgz /
+       umount /mnt
+}
+
+boot_hook_add preinit_mount_root move_config
+
diff --git a/target/linux/x86_64/base-files/lib/preinit/89_move_config 
b/target/linux/x86_64/base-files/lib/preinit/89_move_config
deleted file mode 100644
index ba337e1..0000000
--- a/target/linux/x86_64/base-files/lib/preinit/89_move_config
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2012 OpenWrt.org
-
-move_config() {
-       local rootfsdev
-       local rootfstype
-       
-       rootfstype="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == "rootfstype") { 
print $2 }' < /proc/cmdline)"
-       case "$rootfstype" in
-               squashfs|jffs2)
-                       rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == 
"block2mtd.block2mtd") { print substr($2,1,index($2, ",")-1) }' < 
/proc/cmdline)";;
-               ext4)
-                       rootfsdev="$(awk 'BEGIN { RS=" "; FS="="; } ($1 == 
"root") { print $2 }' < /proc/cmdline)";;
-       esac
-
-       mount -t ext4 -o rw,noatime "${rootfsdev%[0-9]}1" /mnt
-       mv -f /mnt/sysupgrade.tgz /
-       umount /mnt
-}
-
-boot_hook_add preinit_main move_config
-
-- 
1.7.9.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to