#!/bin/sh BLKSZ=65536 [ -f "$1" -a -f "$2" ] || { echo "Usage: $0 [output file]" exit 1 } IMAGE=${3:-openwrt-combined.img} # Make sure provided images are 64k aligned. kern="${IMAGE}.kernel" root="${IMAGE}.rootfs" dd if="$1" of="$kern" bs=$BLKSZ conv=sync 2>/dev/null dd if="$2" of="$root" bs=$BLKSZ conv=sync 2>/dev/null # Calculate md5sum over combined kernel and rootfs image. md5=$(cat "$kern" "$root" | md5sum -) # Write image header followed by kernel and rootfs image. # The header is padded to 64k, format is: # CI magic word ("Combined Image") # length of kernel encoded as zero padded 8 digit hex # length of rootfs encoded as zero padded 8 digit hex # checksum of the combined kernel and rootfs image ( printf "CI%08x%08x%32s" \ $(stat -c "%s" "$kern") $(stat -c "%s" "$root") "${md5%% *}" | \ dd bs=$BLKSZ conv=sync; cat "$kern" "$root" ) > ${IMAGE} 2>/dev/null # Clean up. rm -f "$kern" "$root" r_breaker'>barrier_breaker upstream openwrtJames
aboutsummaryrefslogtreecommitdiffstats
blob: 8bb384bd538fbc4a3a249d666cd8dc216e7fb63d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34