--- elwix/install2img.sh 2011/07/21 14:26:08 1.1.2.1 +++ elwix/install2img.sh 2014/09/12 00:29:27 1.7.6.2 @@ -5,7 +5,7 @@ # (C) AITNET ltd - Sofia/Bulgaria # by Michael Pounov # -# $Id: install2img.sh,v 1.1.2.1 2011/07/21 14:26:08 misho Exp $ +# $Id: install2img.sh,v 1.7.6.2 2014/09/12 00:29:27 misho Exp $ # [ -r ./config/rc.elwix ] && . ./config/rc.elwix @@ -29,15 +29,15 @@ DEV="" mkdevice() { echo "+++ Make prepare file image ... " - rm -f $IMG - dd if=/dev/zero of=${IMG} bs=1024 count=${IMG_SIZE} + rm -f $1 + dd if=/dev/zero of=$1 bs=1024 count=$2 - echo -n "+++ Assign memory device to image ... " - DEV=`mdconfig -a -tvnode -f ${IMG}` + echo -n "+++ Assign memory device to image $1 ... " + DEV=`mdconfig -a -tvnode -f $1` echo $DEV if [ -z "$DEV" ]; then - rm -f $IMG + rm -f $1 exit 3 fi } @@ -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 @@ -95,7 +119,7 @@ enablejfs() boot2dev() { echo -n "+++ Installboot to device $1 ... " - if disklabel -B $1; then + if disklabel -B -b ${WORLD}/boot/boot -m ${TARGET} $1; then echo "OK" else echo "Failed!" @@ -119,25 +143,36 @@ cleandev() mdconfig -d -u $1 } +gencksum() +{ + echo -n "+++ Generate check sums ... " + md5 $1 >$2 + sha1 $1 >$3 + echo "OK" +} + ### main() -if [ ! -r ${1:-"${REL}/${OS}"} ]; then +if [ -z "$1" -o ! -r "$1" ]; then echo - echo "Error:: ELWIX OS file not found!" + echo "Error:: ELWIX OS tar file '$1' not found!" echo exit 2 +else + IMGNAME=$(basename $1 | sed -e "s/.tar.gz//") + MD5CHK="${REL}/${IMGNAME}.md5" + SHA1CHK="${REL}/${IMGNAME}.sha1" + IMG="${REL}/${IMGNAME}.img" fi -mkdevice - +mkdevice $IMG ${2:-"${IMG_SIZE}"} initdev $DEV - mountdev $DEV -install2 ${1:-"$REL/$OS"} +install2 $1 umountdev - #enablejfs $DEV boot2dev $DEV - cleandev $DEV -echo "ELWIX OS image complete." +gencksum $IMG $MD5CHK $SHA1CHK + +echo "ELWIX OS image $IMGNAME complete."