[ath79] DTB update mechanism

Seems so...

kernel-bin = vmlinux
append-dtb = image-ar7241_tplink_tl-mr3220-v1.dtb
lzma = ./staging_dir/host/bin/lzma e -lc1 -lp2 -pb2
uImage = ./staging_dir/host/bin/mkimage -A mips -O linux -T kernel -C lzma -a 0x80060000 -e 0x80060000 -n "OpenWRT Linux" -M 0x4f4b4c49 -d
loader-okli = loader-tplink_tl-mr3220-v1.gz

So try something like:

$ cd path/to/image-builder-root/
$ mv build_dir/target-mips_24kc_musl/linux-ath79_tiny/tplink_tl-mr3220-v1-kernel.bin build_dir/target-mips_24kc_musl/linux-ath79_tiny/tplink_tl-mr3220-v1-kernel.bin.org
$ cat build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux build_dir/target-mips_24kc_musl/linux-ath79_tiny/image-ar7241_tplink_tl-mr3220-v1.dtb > build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux-with-dtb
$ ./staging_dir/host/bin/lzma e -lc1 -lp2 -pb2 build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux-with-dtb build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux-with-dtb.lzma
$ dd if=build_dir/target-mips_24kc_musl/linux-ath79_tiny/loader-tplink_tl-mr3220-v1.gz bs=7680 conv=sync of=build_dir/target-mips_24kc_musl/linux-ath79_tiny/loader-tplink_tl-mr3220-v1.gz.padded
$ ./staging_dir/host/bin/mkimage -A mips -O linux -T kernel -C lzma -a 0x80060000 -e 0x80060000 -n "OpenWRT Linux" -M 0x4f4b4c49 -d build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux-with-dtb.lzma build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux-with-dtb.uImage
$ cat build_dir/target-mips_24kc_musl/linux-ath79_tiny/loader-tplink_tl-mr3220-v1.gz.padded build_dir/target-mips_24kc_musl/linux-ath79_tiny/vmlinux-with-dtb.uImage > build_dir/target-mips_24kc_musl/linux-ath79_tiny/tplink_tl-mr3220-v1-kernel.bin

DonĀ“t forget to fix dtb before this!

It does produce the same output with binwalk:

$ binwalk build_dir/target-mips_24kc_musl/linux-ath79_tiny/tplink_tl-mr3220-v1-kernel.bin.org

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
7744          0x1E40          LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 4454620 bytes
$ binwalk build_dir/target-mips_24kc_musl/linux-ath79_tiny/tplink_tl-mr3220-v1-kernel.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             gzip compressed data, maximum compression, from Unix, last modified: 1970-01-01 00:00:00 (null date)
7744          0x1E40          LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 4454620 bytes

EDIT: Updated step with mkimage