Date:2010-03-21 18:16:50 (3 years 2 months ago)
Author:florian
Commit:9e7554db871433758f661e85f8ff95501b62d935
Message:change from /jffs to /overlay, patch from Daniel Dickinson

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20356 3c298f89-4303-0410-b956-a3cf2f4a3e73
Files: include/image.mk (1 diff)
package/base-files/Makefile (1 diff)
package/base-files/files/lib/firstboot/20_no_fo_mount_jffs (1 diff)
package/base-files/files/lib/firstboot/30_is_rootfs_mounted (1 diff)
package/base-files/files/lib/firstboot/30_no_fo_pivot (1 diff)
package/base-files/files/lib/firstboot/40_copy_ramoverlay (1 diff)
package/base-files/files/lib/firstboot/50_pivot (1 diff)
package/base-files/files/lib/firstboot/99_10_no_fo_cleanup (1 diff)
package/base-files/files/lib/functions/boot.sh (2 diffs)
package/base-files/files/lib/preinit/40_mount_jffs2 (1 diff)
package/base-files/files/lib/preinit/70_pivot_jffs2_root (1 diff)
package/base-files/files/lib/upgrade/common.sh (3 diffs)
package/base-files/files/sbin/firstboot (1 diff)
package/block-extroot/files/50_determine_usb_root (1 diff)
package/block-extroot/files/60_pivot_usb_root (1 diff)
package/opkg/files/opkg.conf (1 diff)

Change Details

include/image.mk
6262        $(call Image/Build,jffs2-$(1))
6363    endef
6464    define Image/mkfs/jffs2
65        rm -rf $(TARGET_DIR)/jffs
6665        $(foreach SZ,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/sub,$(SZ)))
6766    endef
6867  endif
6968
7069  ifeq ($(CONFIG_TARGET_ROOTFS_SQUASHFS),y)
7170    define Image/mkfs/squashfs
72        @mkdir -p $(TARGET_DIR)/jffs
71        @mkdir -p $(TARGET_DIR)/overlay
7372        $(MKSQUASHFS_CMD) $(TARGET_DIR) $(KDIR)/root.squashfs -nopad -noappend -root-owned $(SQUASHFS_OPTS)
7473        $(call Image/Build,squashfs)
7574    endef
package/base-files/Makefile
364364    mkdir -p $(1)/dev
365365    mkdir -p $(1)/etc/crontabs
366366    mkdir -p $(1)/etc/rc.d
367    mkdir -p $(1)/jffs
367    mkdir -p $(1)/overlay
368368    mkdir -p $(1)/lib/firmware
369369    $(if $(LIB_SUFFIX),-ln -s lib $(1)/lib$(LIB_SUFFIX))
370370    mkdir -p $(1)/mnt
package/base-files/files/lib/firstboot/20_no_fo_mount_jffs
55
66no_fo_mount_jffs() {
77    # initialize jffs2
8    mount "$mtdpart" /jffs -t jffs2 || exit
8    mount "$mtdpart" /overlay -t jffs2 || exit
99
1010    # workaround to ensure that union can attach properly
1111    sync
12    ls /jffs >/dev/null
12    ls /overlay >/dev/null
1313}
1414
1515boot_hook_add no_fo no_fo_mount_jffs
package/base-files/files/lib/firstboot/30_is_rootfs_mounted
44# Copyright (C) 2010 Vertical Communications
55
66skip_if_rootfs_mounted() {
7    mount "$mtdpart" /rom/jffs -t jffs2 || exit
7    mount "$mtdpart" /rom/overlay -t jffs2 || exit
88}
99
1010boot_hook_add switch2jffs skip_if_rootfs_mounted
package/base-files/files/lib/firstboot/30_no_fo_pivot
55
66no_fo_pivot() {
77    # switch to the new (empty) jffs2
8    fopivot /jffs /rom 1
8    fopivot /overlay /rom 1
99}
1010
1111boot_hook_add no_fo no_fo_pivot
package/base-files/files/lib/firstboot/40_copy_ramoverlay
88    mount -o remount,ro none / 2>&-
99    # copy ramoverlay to jffs2
1010    echo -n "copying files ... "
11    cp -a /tmp/root/* /rom/jffs 2>&-
11    cp -a /tmp/root/* /rom/overlay 2>&-
1212    echo "done"
1313}
1414
package/base-files/files/lib/firstboot/50_pivot
99    pivot /rom /mnt
1010    mount -o move /mnt /tmp/root
1111
12    # /jffs is the overlay
12    # /overlay is the overlay
1313    # /rom is the readonly
14    fopivot /jffs /rom
14    fopivot /overlay /rom
1515}
1616
1717boot_hook_add switch2jffs with_fo_pivot
package/base-files/files/lib/firstboot/99_10_no_fo_cleanup
55
66no_fo_cleanup() {
77    echo "done"
8    umount -l /jffs
8    umount -l /overlay
99    umount -l /tmp/root
1010    exit 0
1111}
package/base-files/files/lib/functions/boot.sh
4242    {
4343        cd $2
4444        find . -xdev -type d
45        echo "./dev ./jffs ./mnt ./proc ./tmp"
45        echo "./dev ./overlay ./mnt ./proc ./tmp"
4646        # xdev skips mounted directories
4747        cd $1
4848    } | xargs mkdir -p
...... 
6969        mount -o move $2/dev /dev
7070        mount -o move $2/tmp /tmp
7171        mount -o move $2/sys /sys 2>&-
72        mount -o move $2/jffs /jffs 2>&-
7372        mount -o move $2/overlay /overlay 2>&-
7473        return 0
7574    }
package/base-files/files/lib/preinit/40_mount_jffs2
33# Copyright (C) 2010 Vertical Communications
44
55find_mount_jffs2() {
6    mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2
6    mkdir -p /tmp/overlay
7    mount "$(find_mtd_part rootfs_data)" /tmp/overlay -t jffs2
78}
89
910jffs2_not_mounted() {
package/base-files/files/lib/preinit/70_pivot_jffs2_root
55rootfs_pivot() {
66    check_skip || jffs2_not_mounted || {
77    echo "switching to jffs2"
8    fopivot /jffs /rom && pi_mount_skip_next=true
8    mount -o move /tmp/overlay /overlay 2>&-
9    fopivot /overlay /rom && pi_mount_skip_next=true
910    }
1011}
1112
package/base-files/files/lib/upgrade/common.sh
3535
3636pivot() { # <new_root> <old_root>
3737    mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
38    mkdir -p $1$2 $1/proc $1/dev $1/tmp $1/jffs && \
38    mkdir -p $1$2 $1/proc $1/dev $1/tmp $1/overlay && \
3939    mount -o move /proc $1/proc && \
4040    pivot_root $1 $1$2 || {
4141        umount $1 $1
...... 
4343    }
4444    mount -o move $2/dev /dev
4545    mount -o move $2/tmp /tmp
46    mount -o move $2/jffs /jffs 2>&-
46    mount -o move $2/overlay /overlay 2>&-
4747    return 0
4848}
4949
...... 
6363    mount -o remount,ro /mnt
6464    umount -l /mnt
6565
66    grep /jffs /proc/mounts > /dev/null && {
67        mount -o remount,ro /jffs
68        umount -l /jffs
66    grep /overlay /proc/mounts > /dev/null && {
67        mount -o remount,ro /overlay
68        umount -l /overlay
6969    }
7070
7171    # spawn a new shell from ramdisk to reduce the probability of cache issues
package/base-files/files/sbin/firstboot
2727    boot_run_hook jffs2reset
2828    else
2929    mtd erase "$partname"
30    mount "$mtdpart" /jffs -t jffs2
31    fopivot /jffs /rom 1
30    mount "$mtdpart" /overlay -t jffs2
31    fopivot /overlay /rom 1
3232    fi
3333fi
3434
package/block-extroot/files/50_determine_usb_root
1616    # extroot requires extroot and fstab config files, therefore
1717    # we assume configuration is incomplete and not to be used if either of them
1818    # is missing (for jffs versions of these files on squashfs image)
19    if [ "$jffs" = "/jffs" ] && [ -r "/jffs/etc/config/fstab" ]; then
20        UCI_CONFIG_DIR="/jffs/etc/config"
19    if [ "$jffs" = "/tmp/overlay" ] && [ -r "/tmp/overlay/etc/config/fstab" ]; then
20        UCI_CONFIG_DIR="/tmp/overlay/etc/config"
2121        ER_IS_SQUASHFS=true
2222    fi
2323
package/block-extroot/files/60_pivot_usb_root
1010    check_skip || [ "$pi_extroot_mount_success" != "true" ] || {
1111        echo "switching to external rootfs"
1212        if [ "$ER_IS_SQUASHFS" = "true" ]; then
13            umount /jffs
13            umount /tmp/overlay
1414        fi
1515        mount -o remount,ro / && fopivot /overlay /rom && pi_mount_skip_next=true
1616    }
package/opkg/files/opkg.conf
22dest root /
33dest ram /tmp
44lists_dir ext /var/opkg-lists
5option overlay_root /jffs
5option overlay_root /overlay

Archive Download the corresponding diff file



interactive