|
@@ -0,0 +1,59 @@
|
|
|
+#!/usr/bin/env bash
|
|
|
+#
|
|
|
+# Licensed under the terms of the GNU GPL License version 2 or later.
|
|
|
+# Author: Piotr Dymacz <[email protected]>, based on mkits.sh.
|
|
|
+#
|
|
|
+# Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x
|
|
|
+# and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot
|
|
|
+# for verifying and extracting them. Based on 'images' sections names,
|
|
|
+# corresponding mtd partitions are flashed.
|
|
|
+# This is a simple script for generating FIT images tree source files,
|
|
|
+# compatible with the QSDK sysupgrade format. Resulting images can be
|
|
|
+# used for initial (factory -> OpenWrt) installation and would work
|
|
|
+# both in CLI and GUI. The script is also universal in a way it allows
|
|
|
+# to include as many sections as needed.
|
|
|
+#
|
|
|
+
|
|
|
+usage() {
|
|
|
+ echo "Usage: `basename $0` output img0_name img0_file [[img1_name img1_file] ...]"
|
|
|
+ exit 1
|
|
|
+}
|
|
|
+
|
|
|
+# We need at least 3 arguments
|
|
|
+[ "$#" -lt 3 ] && usage
|
|
|
+
|
|
|
+# Target output file
|
|
|
+OUTPUT="$1"; shift
|
|
|
+
|
|
|
+# Create a default, fully populated DTS file
|
|
|
+echo "\
|
|
|
+/dts-v1/;
|
|
|
+
|
|
|
+/ {
|
|
|
+ description = \"OpenWrt factory image\";
|
|
|
+ #address-cells = <1>;
|
|
|
+
|
|
|
+ images {" > ${OUTPUT}
|
|
|
+
|
|
|
+while [ -n "$1" -a -n "$2" ]; do
|
|
|
+ [ -f "$2" ] || usage
|
|
|
+
|
|
|
+ name="$1"; shift
|
|
|
+ file="$1"; shift
|
|
|
+
|
|
|
+ echo \
|
|
|
+" ${name} {
|
|
|
+ description = \"${name}\";
|
|
|
+ data = /incbin/(\"${file}\");
|
|
|
+ type = \"Firmware\";
|
|
|
+ arch = \"ARM\";
|
|
|
+ compression = \"none\";
|
|
|
+ hash@1 {
|
|
|
+ algo = \"crc32\";
|
|
|
+ };
|
|
|
+ };" >> ${OUTPUT}
|
|
|
+done
|
|
|
+
|
|
|
+echo \
|
|
|
+" };
|
|
|
+};" >> ${OUTPUT}
|