X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=scripts%2Fgen_image_generic.sh;h=206ba7f3fa520547ce2dc2b4c5f54b914d10b0d0;hb=HEAD;hp=17d969b96b448262743e1c3a18e86b12e4917cac;hpb=a576ed5437b00e0984712c6f38f8c11b0ed15b48;p=openwrt%2F.git diff --git a/scripts/gen_image_generic.sh b/scripts/gen_image_generic.sh index 17d969b96b..17888eac60 100755 --- a/scripts/gen_image_generic.sh +++ b/scripts/gen_image_generic.sh @@ -1,10 +1,10 @@ -#!/usr/bin/env bash +#!/bin/sh # Copyright (C) 2006-2012 OpenWrt.org -set -x -[ $# == 5 -o $# == 6 ] || { +set -e -x +if [ $# -ne 5 ] && [ $# -ne 6 ]; then echo "SYNTAX: $0 []" exit 1 -} +fi OUTPUT="$1" KERNELSIZE="$2" @@ -17,10 +17,9 @@ rm -f "$OUTPUT" head=16 sect=63 -cyl=$(( ($KERNELSIZE + $ROOTFSSIZE) * 1024 * 1024 / ($head * $sect * 512))) # create partition table -set `ptgen -o "$OUTPUT" -h $head -s $sect -p ${KERNELSIZE}m -p ${ROOTFSSIZE}m ${ALIGN:+-l $ALIGN} ${SIGNATURE:+-S 0x$SIGNATURE}` +set $(ptgen -o "$OUTPUT" -h $head -s $sect ${GUID:+-g} -p "${KERNELSIZE}m" -p "${ROOTFSSIZE}m" ${ALIGN:+-l $ALIGN} ${SIGNATURE:+-S 0x$SIGNATURE} ${GUID:+-G $GUID}) KERNELOFFSET="$(($1 / 512))" KERNELSIZE="$2" @@ -30,8 +29,12 @@ ROOTFSSIZE="$(($4 / 512))" [ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc count="$ROOTFSSIZE" dd if="$ROOTFSIMAGE" of="$OUTPUT" bs=512 seek="$ROOTFSOFFSET" conv=notrunc -[ -n "$NOGRUB" ] && exit 0 - -make_ext4fs -J -l "$KERNELSIZE" "$OUTPUT.kernel" "$KERNELDIR" +if [ -n "$GUID" ]; then + [ -n "$PADDING" ] && dd if=/dev/zero of="$OUTPUT" bs=512 seek="$((ROOTFSOFFSET + ROOTFSSIZE))" conv=notrunc count="$sect" + mkfs.fat -n kernel -C "$OUTPUT.kernel" -S 512 "$((KERNELSIZE / 1024))" + mcopy -s -i "$OUTPUT.kernel" "$KERNELDIR"/* ::/ +else + make_ext4fs -J -L kernel -l "$KERNELSIZE" "$OUTPUT.kernel" "$KERNELDIR" +fi dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc rm -f "$OUTPUT.kernel"