summaryrefslogtreecommitdiffstats
path: root/scripts/gen_image_generic.sh
diff options
context:
space:
mode:
authorStijn Tintel <stijn@linux-ipv6.be>2017-07-11 02:49:34 +0200
committerStijn Tintel <stijn@linux-ipv6.be>2017-07-14 04:09:16 +0200
commita576ed5437b00e0984712c6f38f8c11b0ed15b48 (patch)
tree4bb4f8e16df8e9d8f2de1004b1b5626af8347464 /scripts/gen_image_generic.sh
parentc2a11bc8e44af3259a4bed99b46e8a7db6a18c81 (diff)
downloadopenwrt-a576ed5437b00e0984712c6f38f8c11b0ed15b48.tar.gz
openwrt-a576ed5437b00e0984712c6f38f8c11b0ed15b48.tar.bz2
openwrt-a576ed5437b00e0984712c6f38f8c11b0ed15b48.zip
scripts/gen_image_generic.sh: move from x86/image
The script can also be useful for other targets. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Diffstat (limited to 'scripts/gen_image_generic.sh')
-rwxr-xr-xscripts/gen_image_generic.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/gen_image_generic.sh b/scripts/gen_image_generic.sh
new file mode 100755
index 0000000000..17d969b96b
--- /dev/null
+++ b/scripts/gen_image_generic.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+# Copyright (C) 2006-2012 OpenWrt.org
+set -x
+[ $# == 5 -o $# == 6 ] || {
+ echo "SYNTAX: $0 <file> <kernel size> <kernel directory> <rootfs size> <rootfs image> [<align>]"
+ exit 1
+}
+
+OUTPUT="$1"
+KERNELSIZE="$2"
+KERNELDIR="$3"
+ROOTFSSIZE="$4"
+ROOTFSIMAGE="$5"
+ALIGN="$6"
+
+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}`
+
+KERNELOFFSET="$(($1 / 512))"
+KERNELSIZE="$2"
+ROOTFSOFFSET="$(($3 / 512))"
+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"
+dd if="$OUTPUT.kernel" of="$OUTPUT" bs=512 seek="$KERNELOFFSET" conv=notrunc
+rm -f "$OUTPUT.kernel"