diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2019-02-15 17:02:23 +0100 |
---|---|---|
committer | Christian Lamparter <chunkeey@gmail.com> | 2019-02-20 18:51:31 +0100 |
commit | c72b1d8468b027f6d42eacfd741e288f552bc27d (patch) | |
tree | 72b02e1386904dcaf804a9d5070f1801676b8c52 /target/linux/gemini/image/dns313_gen_hdd_img.sh | |
parent | 6cdf08f02625975de32cce5ceab2e5d84a0134f0 (diff) | |
download | upstream-c72b1d8468b027f6d42eacfd741e288f552bc27d.tar.gz upstream-c72b1d8468b027f6d42eacfd741e288f552bc27d.tar.bz2 upstream-c72b1d8468b027f6d42eacfd741e288f552bc27d.zip |
gemini: Generate harddisk image for DNS-313
This makes OpenWrt build an Ext2+Ext4 partitioned image
for the D-Link DNS-313 with two blank partitions, a boot
partition on /dev/sda3 and a rootfs partition on
/dev/sda4.
This uses the methods already used in apm821xx including
the tricks to convert the generated Ext2 filesystem
partition to version 1 so that the firmware bootloader
will properly recognize it.
We patch a bit around the build files to make sure we
get the rootfs size set and that genext2fs is properly
built.
Tested on the D-Link DNS-313.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[Fixing and tricksing]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'target/linux/gemini/image/dns313_gen_hdd_img.sh')
-rwxr-xr-x | target/linux/gemini/image/dns313_gen_hdd_img.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/gemini/image/dns313_gen_hdd_img.sh b/target/linux/gemini/image/dns313_gen_hdd_img.sh new file mode 100755 index 0000000000..1eb2c7c575 --- /dev/null +++ b/target/linux/gemini/image/dns313_gen_hdd_img.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -x +[ $# -eq 5 ] || { + echo "SYNTAX: $0 <file> <bootfs image> <rootfs image> <bootfs size> <rootfs size>" + exit 1 +} + +OUTPUT="$1" +BOOTFS="$2" +ROOTFS="$3" +BOOTFSSIZE="$4" +ROOTFSSIZE="$5" + +head=4 +sect=63 + +# Create two empty partitions followed by the boot partition with +# the ./boot/zImage and then the rootfs partition. +set `ptgen -o $OUTPUT -h $head -s $sect -t 83 -n -p 0 -p 0 -p ${BOOTFSSIZE}M -p ${ROOTFSSIZE}M` + +BOOTOFFSET="$(($1 / 512))" +BOOTSIZE="$(($2 / 512))" +ROOTFSOFFSET="$(($3 / 512))" +ROOTFSSIZE="$(($4 / 512))" + +dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc +dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc |