diff --git a/building.sh b/building.sh index 3c4f3e59..3bde1a34 100755 --- a/building.sh +++ b/building.sh @@ -652,7 +652,7 @@ xm550() { # hi3516cv200 # testing.. # hi3518ev200 # testing.. # hi3518ev200_domsip # DomSip -hi3518ev200_hs303 # OpenIPC +# hi3518ev200_hs303 # OpenIPC # # hi3516av100 # OpenIPC # hi3516av100_ultimate # OpenIPC_ultimate version diff --git a/general/overlay/init b/general/overlay/init index b80be2c1..b293f766 100755 --- a/general/overlay/init +++ b/general/overlay/init @@ -5,8 +5,8 @@ on_exit() mountpoint -q /proc && umount /proc exec /sbin/init $* } -trap on_exit 0 +trap on_exit 0 mount -t proc proc /proc || exit grep -q overlay /proc/filesystems || exit @@ -14,20 +14,24 @@ grep -q overlay /proc/filesystems || exit if grep -q ubifs /proc/cmdline; then mount -t ubifs ubi0:rootfs_data /overlay else -mount -t jffs2 /dev/$(awk -F ':' '/rootfs_data/ {print $1}' /proc/mtd | sed 's/mtd/mtdblock/') /overlay || \ - mount -t ubifs ubi0:rootfs_data /overlay || mount -t tmpfs tmpfs /overlay || exit + mtdblkdev=`awk -F ':' '/rootfs_data/ {print $1}' /proc/mtd | sed 's/mtd/mtdblock/'` + mtdchrdev=`grep 'rootfs_data' /proc/mtd | cut -d: -f1` + mount -t jffs2 /dev/${mtdblkdev} /overlay + + if [ $? -ne 0 ] || { dmesg | grep "jffs2.*: Magic bitmask.*not found" > /dev/null 2>&1; } then + echo "jffs2 health check error, format required!" + flash_eraseall -j /dev/${mtdchrdev} + mount -t jffs2 /dev/${mtdblkdev} /overlay || mount -t tmpfs tmpfs /overlay || exit + fi fi if grep -q overlayfs /proc/filesystems; then - mount -t overlayfs overlayfs -o lowerdir=/,upperdir=/overlay,ro /mnt \ - || { umount /overlay; exit; } + mount -t overlayfs overlayfs -o lowerdir=/,upperdir=/overlay,ro /mnt || { umount /overlay; exit; } else overlay_rootdir=/overlay/root overlay_workdir=/overlay/work mkdir -p ${overlay_rootdir} ${overlay_workdir} - mount -t overlay overlay \ - -o lowerdir=/,upperdir=${overlay_rootdir},workdir=${overlay_workdir} /mnt \ - || { umount /overlay; exit; } + mount -t overlay overlay -o lowerdir=/,upperdir=${overlay_rootdir},workdir=${overlay_workdir} /mnt || { umount /overlay; exit; } fi pivot_root /mnt /mnt/rom