summaryrefslogtreecommitdiffstats
path: root/package/base-files/files.old/lib
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-25 19:02:32 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-04-25 19:02:32 +0000
commitb5367474cba180d7b2555e4e30421a7340f63264 (patch)
tree081ef59391b9859af54a286bc74b9bb533cfcb58 /package/base-files/files.old/lib
parent533fc89abaf81ccf6965f1d1c917421238a83817 (diff)
mount_root: prepare base-files
Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36429 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/base-files/files.old/lib')
-rw-r--r--package/base-files/files.old/lib/firstboot/05_firstboot_skip10
-rw-r--r--package/base-files/files.old/lib/firstboot/10_determine_parts46
-rw-r--r--package/base-files/files.old/lib/firstboot/10_no_fo_clear_overlay17
-rw-r--r--package/base-files/files.old/lib/firstboot/10_reset_has_mini_fo12
-rw-r--r--package/base-files/files.old/lib/firstboot/20_has_mini_fo13
-rw-r--r--package/base-files/files.old/lib/firstboot/20_no_fo_mount_jffs15
-rw-r--r--package/base-files/files.old/lib/firstboot/20_reset_clear_jffs14
-rw-r--r--package/base-files/files.old/lib/firstboot/30_is_rootfs_mounted10
-rw-r--r--package/base-files/files.old/lib/firstboot/30_no_fo_pivot11
-rw-r--r--package/base-files/files.old/lib/firstboot/30_reset_copy_rom13
-rw-r--r--package/base-files/files.old/lib/firstboot/40_copy_ramoverlay15
-rw-r--r--package/base-files/files.old/lib/firstboot/40_no_fo_copy_ramoverlay14
-rw-r--r--package/base-files/files.old/lib/firstboot/50_pivot17
-rw-r--r--package/base-files/files.old/lib/firstboot/99_10_no_fo_cleanup13
-rw-r--r--package/base-files/files.old/lib/firstboot/99_10_with_fo_cleanup2
-rw-r--r--package/base-files/files.old/lib/preinit/05_mount_skip13
-rw-r--r--package/base-files/files.old/lib/preinit/10_check_for_mtd20
-rw-r--r--package/base-files/files.old/lib/preinit/20_check_jffs2_ready19
-rw-r--r--package/base-files/files.old/lib/preinit/40_mount_jffs226
-rw-r--r--package/base-files/files.old/lib/preinit/41_merge_overlay_hooks24
-rw-r--r--package/base-files/files.old/lib/preinit/70_pivot_jffs2_root14
-rw-r--r--package/base-files/files.old/lib/preinit/90_mount_no_jffs212
-rw-r--r--package/base-files/files.old/lib/preinit/90_restore_config17
-rw-r--r--package/base-files/files.old/lib/preinit/99_10_mount_no_mtd12
24 files changed, 378 insertions, 1 deletions
diff --git a/package/base-files/files.old/lib/firstboot/05_firstboot_skip b/package/base-files/files.old/lib/firstboot/05_firstboot_skip
new file mode 100644
index 000000000..5f44df621
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/05_firstboot_skip
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+check_skip() {
+ if [ "$firstboot_skip_next" = "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
diff --git a/package/base-files/files.old/lib/firstboot/10_determine_parts b/package/base-files/files.old/lib/firstboot/10_determine_parts
new file mode 100644
index 000000000..3f56e32a8
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/10_determine_parts
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+set_mtd_part() {
+ partname="rootfs_data"
+ mtdpart="$(find_mtd_part $partname)"
+}
+
+set_rom_part() {
+ rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
+}
+
+set_jffs_part() {
+ jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
+}
+
+determine_mtd_part() {
+ set_mtd_part
+ if [ -z "$mtdpart" ]; then
+ echo "MTD partition not found."
+ exit 1
+ fi
+}
+
+determine_rom_part() {
+ check_skip || {
+ set_rom_part
+ if [ -z "$rom" ]; then
+ echo "You do not have a squashfs partition; aborting"
+ echo "(firstboot cannot be run on jffs2 based firmwares)"
+ exit 1
+ fi
+ }
+}
+
+determine_jffs2_part() {
+ check_skip || {
+ set_jffs_part
+ }
+}
+
+boot_hook_add switch2jffs determine_mtd_part
+boot_hook_add jffs2reset determine_mtd_part
+boot_hook_add switch2jffs determine_rom_part
+boot_hook_add jffs2reset determine_rom_part
+boot_hook_add switch2jffs determine_jffs2_part
+boot_hook_add jffs2reset determine_jffs2_part
diff --git a/package/base-files/files.old/lib/firstboot/10_no_fo_clear_overlay b/package/base-files/files.old/lib/firstboot/10_no_fo_clear_overlay
new file mode 100644
index 000000000..8a7d9b066
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/10_no_fo_clear_overlay
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+no_fo_clear_overlay() {
+ # switch back to squashfs temporarily
+ pivot /rom /mnt
+
+ # get rid of the old overlay
+ umount -l /mnt
+
+ # another umount to get rid of the bind from /tmp/root
+ umount -l /mnt
+}
+
+boot_hook_add no_fo no_fo_clear_overlay
diff --git a/package/base-files/files.old/lib/firstboot/10_reset_has_mini_fo b/package/base-files/files.old/lib/firstboot/10_reset_has_mini_fo
new file mode 100644
index 000000000..4e285840a
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/10_reset_has_mini_fo
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+reset_check_for_overlay() {
+ if grep -qE '(mini_fo|overlay)' /proc/filesystems; then
+ reset_has_fo=true
+ fi
+}
+
+boot_hook_add jffs2reset reset_check_for_overlay
diff --git a/package/base-files/files.old/lib/firstboot/20_has_mini_fo b/package/base-files/files.old/lib/firstboot/20_has_mini_fo
new file mode 100644
index 000000000..8ca6a4fe5
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/20_has_mini_fo
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+check_for_overlay() {
+ if ! grep -qE '(mini_fo|overlay)' /proc/filesystems; then
+ boot_run_hook no_fo
+ exit 1
+ fi
+}
+
+boot_hook_add switch2jffs check_for_overlay
diff --git a/package/base-files/files.old/lib/firstboot/20_no_fo_mount_jffs b/package/base-files/files.old/lib/firstboot/20_no_fo_mount_jffs
new file mode 100644
index 000000000..c03714fa6
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/20_no_fo_mount_jffs
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+no_fo_mount_jffs() {
+ # initialize jffs2
+ mount -o noatime "$mtdpart" /overlay -t jffs2 || exit
+
+ # workaround to ensure that union can attach properly
+ sync
+ ls /overlay >/dev/null
+}
+
+boot_hook_add no_fo no_fo_mount_jffs
diff --git a/package/base-files/files.old/lib/firstboot/20_reset_clear_jffs b/package/base-files/files.old/lib/firstboot/20_reset_clear_jffs
new file mode 100644
index 000000000..a3cd24fe9
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/20_reset_clear_jffs
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+reset_clear_jffs() {
+ [ "$reset_has_fo" = "true" ] && {
+ rm -rf $jffs/* 2>&-
+ mount -o remount $jffs / 2>&-
+ exit 0
+ } || reset_has_fo=false
+}
+
+boot_hook_add jffs2reset reset_clear_jffs
diff --git a/package/base-files/files.old/lib/firstboot/30_is_rootfs_mounted b/package/base-files/files.old/lib/firstboot/30_is_rootfs_mounted
new file mode 100644
index 000000000..7233fd903
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/30_is_rootfs_mounted
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+skip_if_rootfs_mounted() {
+ mount -o noatime -t jffs2 "$mtdpart" /rom/overlay || exit
+}
+
+boot_hook_add switch2jffs skip_if_rootfs_mounted
diff --git a/package/base-files/files.old/lib/firstboot/30_no_fo_pivot b/package/base-files/files.old/lib/firstboot/30_no_fo_pivot
new file mode 100644
index 000000000..b5c2601ee
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/30_no_fo_pivot
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+no_fo_pivot() {
+ # switch to the new (empty) jffs2
+ fopivot /overlay /rom 1
+}
+
+boot_hook_add no_fo no_fo_pivot
diff --git a/package/base-files/files.old/lib/firstboot/30_reset_copy_rom b/package/base-files/files.old/lib/firstboot/30_reset_copy_rom
new file mode 100644
index 000000000..d91c68947
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/30_reset_copy_rom
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+reset_copy_rom() {
+ [ "$reset_has_fo" != "true" ] && {
+ dupe $jffs $rom
+ exit 0
+ }
+}
+
+boot_hook_add jffs2reset reset_copy_rom
diff --git a/package/base-files/files.old/lib/firstboot/40_copy_ramoverlay b/package/base-files/files.old/lib/firstboot/40_copy_ramoverlay
new file mode 100644
index 000000000..39c2edacb
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/40_copy_ramoverlay
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+copy_ramoverlay() {
+ # try to avoid fs changing while copying
+ mount -o remount,ro none / 2>&-
+ # copy ramoverlay to jffs2
+ echo -n "copying files ... "
+ cp -a /tmp/root/* /rom/overlay 2>&-
+ echo "done"
+}
+
+boot_hook_add switch2jffs copy_ramoverlay
diff --git a/package/base-files/files.old/lib/firstboot/40_no_fo_copy_ramoverlay b/package/base-files/files.old/lib/firstboot/40_no_fo_copy_ramoverlay
new file mode 100644
index 000000000..ced7c1b66
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/40_no_fo_copy_ramoverlay
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+no_fo_copy_ramoverlay() {
+ # copy ramoverlay to jffs2, must be done after switching
+ # to the new rootfs to avoid creating opaque directories
+ echo -n "copying files ... "
+ cp -a /tmp/root/* / >/dev/null 2>&1
+ sync
+}
+
+boot_hook_add no_fo no_fo_ramoverlay
diff --git a/package/base-files/files.old/lib/firstboot/50_pivot b/package/base-files/files.old/lib/firstboot/50_pivot
new file mode 100644
index 000000000..53801d7a8
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/50_pivot
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+with_fo_pivot() {
+ # switch back to squashfs (temporarily)
+ # and park the ramdisk ontop of /tmp/root
+ pivot /rom /mnt
+ mount -o move /mnt /tmp/root
+
+ # /overlay is the overlay
+ # /rom is the readonly
+ fopivot /overlay /rom
+}
+
+boot_hook_add switch2jffs with_fo_pivot
diff --git a/package/base-files/files.old/lib/firstboot/99_10_no_fo_cleanup b/package/base-files/files.old/lib/firstboot/99_10_no_fo_cleanup
new file mode 100644
index 000000000..6dedcb1e8
--- /dev/null
+++ b/package/base-files/files.old/lib/firstboot/99_10_no_fo_cleanup
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+no_fo_cleanup() {
+ echo "done"
+ umount -l /overlay
+ umount -l /tmp/root
+ exit 0
+}
+
+boot_hook_add no_fo no_fo_cleanup
diff --git a/package/base-files/files.old/lib/firstboot/99_10_with_fo_cleanup b/package/base-files/files.old/lib/firstboot/99_10_with_fo_cleanup
index 0181b39d4..560169901 100644
--- a/package/base-files/files.old/lib/firstboot/99_10_with_fo_cleanup
+++ b/package/base-files/files.old/lib/firstboot/99_10_with_fo_cleanup
@@ -6,7 +6,7 @@
with_fo_cleanup() {
# try to get rid of /tmp/root
# this will almost always fail
- umount /tmp/root 2>&-
+ umount -l /tmp/root 2>&-
grep -q overlay /proc/filesystems && {
cd /
(
diff --git a/package/base-files/files.old/lib/preinit/05_mount_skip b/package/base-files/files.old/lib/preinit/05_mount_skip
new file mode 100644
index 000000000..c2b7ee79d
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/05_mount_skip
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+check_skip() {
+ if [ "$pi_mount_skip_next" = "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
diff --git a/package/base-files/files.old/lib/preinit/10_check_for_mtd b/package/base-files/files.old/lib/preinit/10_check_for_mtd
new file mode 100644
index 000000000..6a7bd307f
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/10_check_for_mtd
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+mount_no_mtd() {
+ mtd unlock rootfs
+ mount -o noatime,remount,rw /dev/root /
+}
+
+check_for_mtd() {
+ check_skip || {
+ grep -qs rootfs_data /proc/mtd || {
+ mount_no_mtd && pi_mount_skip_next=true
+ }
+ }
+}
+
+boot_hook_add preinit_mount_root check_for_mtd
+
diff --git a/package/base-files/files.old/lib/preinit/20_check_jffs2_ready b/package/base-files/files.old/lib/preinit/20_check_jffs2_ready
new file mode 100644
index 000000000..3c5cf67e8
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/20_check_jffs2_ready
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+mount_no_jffs2() {
+ echo "jffs2 not ready yet; using ramdisk"
+ ramoverlay
+}
+
+check_for_jffs2() {
+ check_skip || {
+ jffs2_ready || {
+ mount_no_jffs2 && pi_mount_skip_next=true
+ }
+ }
+}
+
+boot_hook_add preinit_mount_root check_for_jffs2
+
diff --git a/package/base-files/files.old/lib/preinit/40_mount_jffs2 b/package/base-files/files.old/lib/preinit/40_mount_jffs2
new file mode 100644
index 000000000..ded785ed5
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/40_mount_jffs2
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+find_mount_jffs2() {
+ mkdir -p /tmp/overlay
+ mount -o noatime -t jffs2 "$(find_mtd_part rootfs_data)" /tmp/overlay
+ mtd -qq unlock rootfs_data
+}
+
+jffs2_not_mounted() {
+ if [ "$pi_jffs2_mount_success" != "true" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+do_mount_jffs2() {
+ check_skip || {
+ find_mount_jffs2 && pi_jffs2_mount_success=true
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_jffs2
+
diff --git a/package/base-files/files.old/lib/preinit/41_merge_overlay_hooks b/package/base-files/files.old/lib/preinit/41_merge_overlay_hooks
new file mode 100644
index 000000000..4ca6877be
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/41_merge_overlay_hooks
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Copyright (C) 2010 OpenWrt.org
+
+merge_overlay_hooks() {
+ jffs2_not_mounted || [ ! -d /tmp/overlay/lib/preinit ] || {
+ echo "- merge overlay components -"
+
+ mkdir -p /tmp/preinit-hook-merge
+ ln -sf /lib/preinit/* /tmp/overlay/lib/preinit/[0-9][0-9]_* /tmp/preinit-hook-merge/
+
+ boot_hook_splice_start
+
+ local pipart
+ for pipart in /tmp/preinit-hook-merge/*; do
+ . $pipart
+ done
+
+ boot_hook_splice_finish
+
+ rm -rf /tmp/preinit-hook-merge
+ }
+}
+
+boot_hook_add preinit_mount_root merge_overlay_hooks
diff --git a/package/base-files/files.old/lib/preinit/70_pivot_jffs2_root b/package/base-files/files.old/lib/preinit/70_pivot_jffs2_root
new file mode 100644
index 000000000..b76f111ca
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/70_pivot_jffs2_root
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+rootfs_pivot() {
+ check_skip || jffs2_not_mounted || {
+ echo "switching to jffs2"
+ mount -o noatime,move /tmp/overlay /overlay 2>&-
+ fopivot /overlay /rom && pi_mount_skip_next=true
+ }
+}
+
+boot_hook_add preinit_mount_root rootfs_pivot
+
diff --git a/package/base-files/files.old/lib/preinit/90_mount_no_jffs2 b/package/base-files/files.old/lib/preinit/90_mount_no_jffs2
new file mode 100644
index 000000000..d8ad4ae11
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/90_mount_no_jffs2
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_no_jffs2() {
+ check_skip || {
+ mount_no_jffs2 && pi_mount_skip_next=true
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_no_jffs2
+
diff --git a/package/base-files/files.old/lib/preinit/90_restore_config b/package/base-files/files.old/lib/preinit/90_restore_config
new file mode 100644
index 000000000..210bf6184
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/90_restore_config
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Copyright (C) 2006 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+restore_config() {
+ [ -f /sysupgrade.tgz ] && {
+ echo "- config restore -"
+ cd /
+ mv sysupgrade.tgz /tmp
+ tar xzf /tmp/sysupgrade.tgz
+ rm -f /tmp/sysupgrade.tgz
+ sync
+ }
+}
+
+boot_hook_add preinit_main restore_config
+
diff --git a/package/base-files/files.old/lib/preinit/99_10_mount_no_mtd b/package/base-files/files.old/lib/preinit/99_10_mount_no_mtd
new file mode 100644
index 000000000..c4f38e415
--- /dev/null
+++ b/package/base-files/files.old/lib/preinit/99_10_mount_no_mtd
@@ -0,0 +1,12 @@
+#!/bin/sh
+# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2010 Vertical Communications
+
+do_mount_no_mtd() {
+ check_skip || {
+ mount_no_mtd
+ }
+}
+
+boot_hook_add preinit_mount_root do_mount_no_mtd
+