--- elwix/install2img.sh 2013/08/05 09:06:14 1.6.2.3 +++ elwix/install2img.sh 2014/09/11 22:55:36 1.7.6.1 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: install2img.sh,v 1.6.2.3 2013/08/05 09:06:14 misho Exp $ +# $Id: install2img.sh,v 1.7.6.1 2014/09/11 22:55:36 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -52,6 +52,30 @@ initdev() exit 3 fi + disklabel $1 2>&- | awk -vcfgsize=${CFG_NAND_SIZE:-65536} '($1 == "a:") { + cfgsize /= 512; + for (i = 1; i <= NF; i++) { + if (i == 2) + printf("%s ", $i - cfgsize); + else if (i == 3) { + offset = $i; + printf("%s ", cfgsize + offset); + } else + printf("%s ", $i); + } + printf("\n"); + printf("g: %d %d cfg 0 0 0\n", cfgsize, offset); + next; + } + { printf("%s\n", $0); }' >/tmp/disklabel.tmp + if disklabel -R -m ${TARGET} $1 /tmp/disklabel.tmp; then +# rm -f /tmp/disklabel.tmp + echo "OK" + else + echo "Failed!" + exit 3 + fi + if newfs -b8192 -f1024 -m0 -Lelwix ${1}a; then echo "+++ Formatting ... OK" else @@ -131,14 +155,17 @@ gencksum() if [ -z "$1" -o ! -r "$1" ]; then echo - echo "Error:: ELWIX OS tar file not found!" + echo "Error:: ELWIX OS tar file '$1' not found!" echo exit 2 else - IMGNAME=$(basename $1 | sed -e "s/.tar.gz/.img/") + IMGNAME=$(basename $1 | sed -e "s/.tar.gz//") + MD5CHK="${REL}/${IMGNAME}.md5" + SHA1CHK="${REL}/${IMGNAME}.sha1" + IMG="${REL}/${IMGNAME}.img" fi -mkdevice $IMGNAME ${2:-"${IMG_SIZE}"} +mkdevice $IMG ${2:-"${IMG_SIZE}"} initdev $DEV mountdev $DEV install2 $1 @@ -146,6 +173,6 @@ umountdev #enablejfs $DEV boot2dev $DEV cleandev $DEV -gencksum $IMGNAME $MD5CHK $SHA1CHK +gencksum $IMG $MD5CHK $SHA1CHK echo "ELWIX OS image $IMGNAME complete."