From f71b5c5898b0bde3c1889646a24bfb0332db86c8 Mon Sep 17 00:00:00 2001 From: "Igor Zalatov (from Citadel PC)" Date: Wed, 8 Nov 2023 15:07:24 +0300 Subject: [PATCH] Add script for build image from @themactep work --- general/scripts/compile4programmer.sh | 59 +++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 general/scripts/compile4programmer.sh diff --git a/general/scripts/compile4programmer.sh b/general/scripts/compile4programmer.sh new file mode 100755 index 00000000..934ef0c1 --- /dev/null +++ b/general/scripts/compile4programmer.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# +# Binary file compiler. +# Creates a file for programming onto a flash chip. +# +# Example: +# ./compile4programmer.sh stock-uboot.bin uImage.t31 rootfs.squashfs.t31 8 +# +# Running this command will produce a new binary file +# full4programmer-8MB.bin or full4programmer-16MB.bin +# suitable for flashing with a programmer. +# +# Paul Philippov +# + +if [ $# -lt 4 ]; then + echo "Usage: $0 " + exit 1 +fi + +case "$4" in + 8) + flashsizemb="8MB" + flashsize=$((0x800000)) + kerneloffset=$((0x50000)) + rootfsoffset=$((0x250000)) + ;; + 16) + flashsizemb="16MB" + flashsize=$((0x1000000)) + kerneloffset=$((0x50000)) + rootfsoffset=$((0x350000)) + ;; + *) + echo "Unknown flash size. Use 8 or 16." + exit 2 +esac + +check_file() { + if [ ! -f "$1" ]; then + echo "File $1 not found." + exit 3 + fi +} + +uboot=$1; check_file $uboot +kernel=$2; check_file $kernel +rootfs=$3; check_file $rootfs + +tmpfile=$(mktemp) + +dd if=/dev/zero bs="${flashsize}" skip=0 count=1 | tr '\000' '\377' > $tmpfile +dd if=$uboot bs=1 seek=0 count=$(wc -c $uboot | awk '{print $1}') of=$tmpfile conv=notrunc status=none +dd if=$kernel bs=1 seek="${kerneloffset}" count=$(wc -c $kernel | awk '{print $1}') of=$tmpfile conv=notrunc status=none +dd if=$rootfs bs=1 seek="${rootfsoffset}" count=$(wc -c $rootfs | awk '{print $1}') of=$tmpfile conv=notrunc status=none +mv $tmpfile "full4programmer-${flashsizemb}.bin" + +echo "Done" +exit 0 \ No newline at end of file