@ Razors
Die build-nfi-image.sh staat hier in usr/bin en is compleet anders als wat jij laat zien???
Uit welke Image heb jij hem?
DIRECTORY=$1
MTDBOOT=2
MTDROOT=3
#SWAPDIR=$DIRECTORY/backup/NFI-Backup
#SSLDIR=$DIRECTORY/backup/NFI-Backup/SSL
SWAPSIZE=$2
if [ "$SWAPSIZE" -lt 1 ]; then
SWAPSIZE=64
fi
if grep -qs 7020 /proc/bus/
DreamBox ; then
BOXTYPE=dm7020
OPTIONS="--eraseblock=0x4000 -n -b"
elif grep -qs DM600PVR /proc/bus/
DreamBox ; then
BOXTYPE=dm600pvr
OPTIONS="--eraseblock=0x4000 -n -b"
elif grep -qs DM500PLUS /proc/bus/
DreamBox ; then
BOXTYPE=dm500plus
OPTIONS="--eraseblock=0x4000 -n -b"
elif grep -qs 'ATI XILLEON HDTV SUPERTOLL' /proc/cpuinfo ; then
BOXTYPE=dm7025
OPTIONS="--eraseblock=0x4000 -n -l"
elif grep -qs 'dm8000' /proc/stb/info/model ; then
BOXTYPE=dm8000
OPTIONS="--eraseblock=0x20000 -n -l"
elif grep -qs 'dm800' /proc/stb/info/model ; then
BOXTYPE=dm800
OPTIONS="--eraseblock=0x4000 -n -l"
else
echo "Box not found !!!"
exit 0
fi
# Edit by Erim Start
echo " "
echo "******************"
echo "** $BOXTYPE found **"
echo "******************"
echo " "
echo "---------------------------------------------------------------"
############# Examine whether data media is present, if not look for alternative ###############
FREESIZE=`df -m "$DIRECTORY" | tr -s " " | tail -n1 | cut -d' ' -f4 | sed "s/Available/0/`
if ! [ "$FREESIZE" -gt "128" ]; then
echo "Data media "$DIRECTORY " could not to be found"
echo "Tring to find alternative data media"
DEVICE=`df -m | grep / | awk '{print $4 " " $1}' | sort -n | cut -d ' ' -f2 | tail -n1`
DIRECTORY=`mount | grep $DEVICE | sort -n | cut -d ' ' -f3`
FREESIZE=`df -m | grep / | awk '{print $4 " " $1}' | sort -n | cut -d ' ' -f1 | tail -n1`
if [ "$FREESIZE" -lt "128" ]; then
echo "No alternative data media could be found"
echo "Probably no data media is mounted"
echo "---------------------------------------------------------------"
exit 0
else
echo "Alternative data media = $DIRECTORY"
fi
fi
############# Examine free data on media ###############
echo "Examine whether 128MB on $DIRECTORY is free"
if [ "$FREESIZE" -lt "128" ]; then
echo "Free memory = "$FREESIZE"MB, break NFI-Backup off"
echo "---------------------------------------------------------------"
exit 0
else
echo "Free memory = "$FREESIZE"MB, OK"
SWAPDIR=$DIRECTORY/backup/NFI-Backup
SSLDIR=$DIRECTORY/backup/NFI-Backup/SSL
mkdir -p $SSLDIR
echo "---------------------------------------------------------------"
fi
###############Examine on manually set SSL############
if ! test -z "$VSNDMAN" -o -n "`echo "$VSNDMAN" | tr -d '[0-9]'`" ; then
echo "Secondstageloaderversion manually up $VSNDMAN set"
VSND=$VSNDMAN
else
###SSL-Version Determining 8000, 800, 7025,7020, 600 and 500Plus ######
echo Secondstageloaderversion from ipkg-list trying to find
VSND=`ipkg list | grep
DreamBox-secondstage | cut -d' ' -f3 |cut -d'-' -f1 | tail -n 1`
########## Check of the SSL out ipkg-list################
if test -z "$VSND" -o -n "`echo "$VSND" | tr -d '[0-9]'`" ; then
echo "No Secondstageloaderversion via ipkg-list found"
############Tries to find most current SSL online###############
echo Trying to find most current Secondstageloaderversion online
wget -q http://www.i-have-a-
DreamBox.com/diverses/secondstageloader/$BOXTYPE -O /tmp/SSLs > /dev/null
IHADSSL=`cat /tmp/SSLs | grep secondstage | cut -d'-' -f3 |cut -d'.' -f1 | tail -n 1`
############ Search dreamboxupdate = 5 #####################
SearchSSL=`expr $IHADSSL "+" 5`
echo "Newer SSL version trying "$IHADSSL" to find on dreamboxupdate"
wget -q http://www.dreamboxupdate.com/download/7020/secondstage-$BOXTYPE-$IHADSSL.bin -O $SSLDIR/secondstage-$BOXTYPE-$IHADSSL.bin 2> /dev/null
IHADSSL=`expr $IHADSSL "+" 1`
while [ $IHADSSL -lt $SearchSSL ] ; do
echo "- Start search for SSL version $IHADSSL -"
wget -q http://www.dreamboxupdate.com/download/7020/secondstage-$BOXTYPE-$IHADSSL.bin -O $SSLDIR/secondstage-$BOXTYPE-$IHADSSL.bin 2> /dev/null
IHADSSL=`expr $IHADSSL "+" 1`
done
rm -rf /tmp/SSLs
VSND=`find $SSLDIR -name "secondstage-$BOXTYPE-*.bin" | sed -e "s#secondstage-$BOXTYPE-##g" | cut -d"/" -f7 | cut -d"." -f1 | sort -n | tail -n 1`
else
echo Secondstageloaderversion from ipkg-list found
fi
fi
#############Examine whether VSND is a numeric value##################
if test -z "$VSND" -o -n "`echo "$VSND" | tr -d '[0-9]'`" ; then
echo "*******************************************************************************"
echo "SSL cannot not to be determined. Either box is off-line or it has"
echo "Secondstageloader on $SSLDIR already. For an off-line Backup download "
echo "secondstageloader.bin and the *.bin.md5 down and place them in "
echo "$SSLDIR. You can find more secondstageloaders here "
echo "Download www.i-have-a-
DreamBox.com/diverses/secondstageloader/$BOXTYPE "
echo "*******************************************************************************"
exit 0
else
echo "---------------------------------------------------------------"
echo "Secondstageloaderversion "$VSND" will be used for the Backup"
fi
echo "---------------------------------------------------------------"
#echo "******************"
#echo "** $BOXTYPE found **"
#echo "******************"
############Trying to determine Flash image###########
if [ $BOXTYPE = "dm8000" -o $BOXTYPE = "dm800" -o $BOXTYPE = "dm7025" ] ;then
echo "Trying to determine Flash image"
if [ -s /usr/lib/ipkg/info/gemini2-image-info.control ] ; then
IMAGEINFO="Gemini-"`cat /usr/lib/ipkg/info/gemini2-image-info.control | grep Version | sed "s/Version: //" | cut -c 0-3`
echo "$IMAGEINFO found"
elif [ `cat /etc/image-version | grep creator | sed "s/creator=//" | cut -d " " -f 1` = "OoZooN" ] ; then
IMAGEINFO=OoZooN-CVS
echo "$IMAGEINFO found"
elif [ `cat /etc/image-version | grep creator | sed "s/creator=//" | cut -d " " -f 1` = "newnigma2" ] ; then
IMAGEINFO=Newnigma2
echo "$IMAGEINFO found"
elif [ `cat /etc/image-version | grep creator | sed "s/creator=//" | cut -d " " -f 1` = "LT" ] ; then
IMAGEINFO=LT-Team
echo "$IMAGEINFO found"
elif [ `cat /etc/image-version | grep creator | sed "s/creator=//" | cut -d " " -f 1` = "MiLo" ] ; then
IMAGEINFO=MiLo
echo "$IMAGEINFO found"
else
IMAGEINFO=backup
echo "Image could not be determined use backup as Backupname"
fi
else
IMAGEINFO=backup
echo "Image could not be determined therefore use backup as Backupname"
fi
echo "---------------------------------------------------------------"
DATE=`date +%Y-%m-%d@%H.%M.%S`
MKFS=/usr/bin/mkfs.jffs2
BUILDIMAGE=/usr/bin/buildimage
BACKUPIMAGE=$SWAPDIR/$IMAGEINFO-$BOXTYPE-$DATE-SSL-$VSND.nfi
SND=secondstage-$BOXTYPE-$VSND.bin
if [ ! -f $MKFS ] ; then
echo $MKFS" not found"
exit 0
fi
if [ ! -f $BUILDIMAGE ] ; then
echo $BUILDIMAGE" not found"
exit 0
fi
############Examine whether SSL on HDD exists, if not to download SSL ##########
mkdir -p $SSLDIR
if [ -f $SSLDIR/$SND ] ; then
cp -r $SSLDIR/$SND /tmp/secondstage.bin 2> /dev/null
echo "SSL in $SSLDIR found, use $SND"
else
echo "download" $SND
wget -q http://sources.dreamboxupdate.com/download/7020/$SND -O $SSLDIR/$SND > /dev/null
###########Examine download####################
if [ -f $SSLDIR/$SND ] ; then
cp -r $SSLDIR/$SND /tmp/secondstage.bin 2> /dev/null
else
echo ""
echo "##############################################################"
echo "# "$SND" could not be downloaded #"
echo "# Your box or dreamboxupdate.com is probably off-line #"
echo "##############################################################"
echo ""
exit 0
fi
fi
############### Examine whether MD5 file exists on HDD #################
if ! [ -f $SSLDIR/$SND.md5 ] ; then
echo "download" $SND.md5
wget -q http://www.i-have-a-
DreamBox.com/diverses/secondstageloader/$BOXTYPE/$SND.md5 -O $SSLDIR/$SND.md5 > /dev/null
fi
echo "---------------------------------------------------------------"
####################MD5 check of the SSL #################
if [ -f $SSLDIR/$SND.md5 ] ; then
md5sum $SSLDIR/$SND > /tmp/SSL.md5
#md5sum -c MD5SUM
if [ `cat /tmp/SSL.md5 | cut -d' ' -f1` = `cat $SSLDIR/$SND.md5 | cut -d' ' -f1` ] ; then
echo "MD5 Check OK"
rm -r /tmp/SSL.md5
else
echo " "
echo "###########################"
echo "#MD5 Check failed #"
echo "#Run NFI Backup again #"
echo "###########################"
echo " "
rm -r /tmp/SSL.md5
rm -r $SSLDIR/$SND.md5
rm -r $SSLDIR/$SND
exit 0
fi
else
echo " "
echo "#######################################################"
echo "#$SND.md5 could not be found #"
echo "#Probably this does not exist yet on the online server#"
echo "#Continue Backup without MD5 check #"
echo "#######################################################"
echo " "
fi
########################################################################
echo "---------------------------------------------------------------"
echo "Examine free work memory, approx. $SWAPSIZE MB needed"
let MEMFREE=`free | grep Total | tr -s " " | cut -d " " -f 4 `/1024
if [ "$MEMFREE" -lt $SWAPSIZE ]; then
echo "Work memory is smaller $SWAPSIZE MB"
# Edit by Erim Stop
#start mod by JackDaniel
echo "create swap on $SWAPDIR with $SWAPSIZE MB"
dd if=/dev/zero of=$SWAPDIR/swapfile_backup bs=1024k count=$SWAPSIZE
mkswap $SWAPDIR/swapfile_backup
swapon $SWAPDIR/swapfile_backup
echo "swap aktivated"
# end mod by JackDaniel
else
echo " Work memory = $MEMFREE MB"
fi
echo "---------------------------------------------------------------"
#start mod by JackDaniel
starttime="$(date +%s)"
echo "- image backup started: `date +%H:%M:%S` -"
echo "---------------------------------------------------------------"
# end mod by JackDaniel
rm -rf $DIRECTORY/bi
mkdir -p $DIRECTORY/bi
mkdir -p /tmp/bi/root
mkdir -p /tmp/bi/boot
mount -t jffs2 /dev/mtdblock/$MTDROOT /tmp/bi/root
mount -t jffs2 /dev/mtdblock/$MTDBOOT /tmp/bi/boot
if [ -s /tmp/secondstage.bin ] ; then
echo "create boot.jffs2"
$MKFS --root=/tmp/bi/boot --faketime --output=$DIRECTORY/bi/boot.jffs2 $OPTIONS
echo "create root.jffs2"
$MKFS --root=/tmp/bi/root --faketime --output=$DIRECTORY/bi/root.jffs2 $OPTIONS
echo "create secondstage"
if [ $BOXTYPE = "dm800" -o $BOXTYPE = "dm8000" ] ; then
cp /tmp/secondstage.bin $DIRECTORY/bi/main.bin.gz
else
gzip -c /tmp/secondstage.bin > $DIRECTORY/bi/main.bin.gz
fi
rm /tmp/secondstage.bin
echo "create" $BOXTYPE "nfi-image"
if [ $BOXTYPE = "dm7025" ] ; then
$BUILDIMAGE $DIRECTORY/bi/main.bin.gz $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/root.jffs2 $BOXTYPE > $BACKUPIMAGE
elif [ $BOXTYPE = "dm800" ] ; then
$BUILDIMAGE $DIRECTORY/bi/main.bin.gz $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/root.jffs2 $BOXTYPE 64 > $BACKUPIMAGE
elif [ $BOXTYPE = "dm8000" ] ; then
$BUILDIMAGE $DIRECTORY/bi/main.bin.gz $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/root.jffs2 $BOXTYPE 64 large > $BACKUPIMAGE
elif [ $BOXTYPE = "dm7020" ] ; then
$BUILDIMAGE $DIRECTORY/bi/main.bin.gz $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/root.jffs2 > $BACKUPIMAGE
elif [ $BOXTYPE = "dm600pvr" ] ; then
$BUILDIMAGE $DIRECTORY/bi/main.bin.gz $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/root.jffs2 $BOXTYPE > $BACKUPIMAGE
elif [ $BOXTYPE = "dm500plus" ] ; then
$BUILDIMAGE $DIRECTORY/bi/main.bin.gz $DIRECTORY/bi/boot.jffs2 $DIRECTORY/bi/root.jffs2 $BOXTYPE > $BACKUPIMAGE
fi
########Query image provided ########
if [ -f $BACKUPIMAGE ] ; then
echo "----------------------------------------------------------------------"
echo "Image create on" $BACKUPIMAGE
echo "----------------------------------------------------------------------"
fi
else
echo "download error"
umount /tmp/bi/root
umount /tmp/bi/boot
rm -rf /tmp/bi
rm -rf $DIRECTORY/bi
exit 0
fi
if [ -s "$SWAPDIR"/swapfile_backup ] ; then #Examine whether Swapfile of Script was created, if so delete.
# start mod by JackDaniel
swapoff $SWAPDIR/swapfile_backup
rm -rf $SWAPDIR/swapfile_backup
echo "--------------------------------"
echo "- deactivated and deleted swap -"
echo "--------------------------------"
fi
stoptime="$(date +%s)"
elapsed_seconds="$(expr $stoptime - $starttime)"
echo "*****************************************************************"
echo "* image backup finshed: `date +%H:%M:%S` *"
echo "* elapsed time was: $((elapsed_seconds / 60)) minutes $((elapsed_seconds % 60)) seconds *"
echo "* English translation by Mobisat (Satmate), coding by others *"
echo "*****************************************************************"
# end mod by JackDaniel
umount /tmp/bi/root
umount /tmp/bi/boot
rm -rf /tmp/bi
rm -rf $DIRECTORY/bi
exit