mirror of
				https://github.com/optim-enterprises-bv/openwrt-ipq.git
				synced 2025-10-30 01:43:02 +00:00 
			
		
		
		
	 b993b68b6c
			
		
	
	b993b68b6c
	
	
	
		
			
			Before this commit, it was assumed that mkhash is in the PATH. While
this was fine for the normal build workflow, this led to some issues if
    make TOPDIR="$(pwd)" -C "$pkgdir" compile
was called manually. In most of the cases, I just saw warnings like this:
    make: Entering directory '/home/.../package/gluon-status-page'
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    bash: line 1: mkhash: command not found
    [...]
While these were only warnings and the package still compiled sucessfully,
I also observed that some package even fail to build because of this.
After applying this commit, the variable $(MKHASH) is introduced. This
variable points to $(STAGING_DIR_HOST)/bin/mkhash, which is always the
correct path.
Signed-off-by: Leonardo Mörlein <me@irrelefant.net>
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| BLKSZ=65536
 | |
| 
 | |
| [ -f "$1" -a -f "$2" ] || {
 | |
| 	echo "Usage: $0 <kernel image> <rootfs image> [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" | $MKHASH md5)
 | |
| 
 | |
| # Write image header followed by kernel and rootfs image.
 | |
| # The header is padded to 64k, format is:
 | |
| #  CI               magic word ("Combined Image")
 | |
| #  <kernel length>  length of kernel encoded as zero padded 8 digit hex
 | |
| #  <rootfs length>  length of rootfs encoded as zero padded 8 digit hex
 | |
| #  <md5sum>         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"
 |