#!/bin/sh
#####################################################################
#
# chgir
#
# Shell script to change ramdisk image on flash memory
#
# 2013/04/26
#
# Usage: chgir imgfile
#
##################################################################### 

# Check argument
if [ $# -lt 1 ]; then
	echo "Usage: chgir {ramdisk-imgfile}"
	exit 1
fi

# Detemine image file
echo "$1" | grep / >& /dev/null
if [ $? -eq 0 ]; then
	IMGFILE="$1"
else
	IMGFILE="`pwd`/$1"
fi

# Check is valid uImage
GZHEADER=`/usr/bin/hexdump -n 3 -e '1/1 "%02X"' $IMGFILE`
if [ "$GZHEADER" != "1F8B08" ]; then
	echo "Wrong file !"
	exit 1
fi

# compare initrd with stored in flash
FLASH_INITRD_HD=/tmp/flashirhd.bin
FILE_INITRD_HD=/tmp/fileirhd.bin

/bin/dd if=/dev/mtd6 of=$FLASH_INITRD_HD bs=10240 count=1 > /dev/null 2>&1
/bin/dd if=$IMGFILE of=$FILE_INITRD_HD bs=10240 count=1 > /dev/null 2>&1
/usr/bin/diff $FLASH_INITRD_HD $FILE_INITRD_HD > /dev/null 2>&1

if [ $? -eq 1 ]; then
	# Update a image on flash
	echo "Changing a ramdisk image on flash memory"
	/usr/sbin/fuc -sd ri $IMGFILE

	rm $FLASH_INITRD_HD $FILE_INITRD_HD
else
	echo "$IMGFILE is same at flash. so skip update."
	echo
fi

