#!/bin/sh local_check_sum() { if [ ! -f $1 ] || [ ! -f $2 ];then return 1 fi local file_cksum=`/sbin/cksum $1` local file_crc=`echo $file_cksum | cut -d ' ' -f 1` local file_size=`echo $file_cksum | cut -d ' ' -f 2` local cksum_cksum=`cat $2` local cksum_crc=`echo $cksum_cksum | cut -d ' ' -f 1` local cksum_size=`echo $cksum_cksum | cut -d ' ' -f 2` if [ $file_crc = $cksum_crc ] && [ $file_size = $cksum_size ]; then return 0 fi return 1 } install_PKGs() { local FLASH_TMP="/flashfs_tmp" # check if the HAL subsystem exist if [ -x /sbin/hal_app ]; then local BOOT_DEV=$(/sbin/hal_app --get_boot_pd port_id=0) else local BOOT_DEV="/dev/sdx" fi local FLASH_RFS1=${BOOT_DEV}2 local FLASH_RFS2=${BOOT_DEV}3 local _INSTALL_PATH=$1 local BOOT_CONF=`/bin/cat /etc/default_config/BOOT.conf` [ "x${BOOT_CONF}" = "xTS-NASX86" ] || return 0 [ -d $FLASH_TMP ] || /bin/mkdir $FLASH_TMP /bin/mount $FLASH_RFS1 $FLASH_TMP -o ro [ -d ${_INSTALL_PATH} ] || /bin/mkdir ${_INSTALL_PATH} [ -d ${_INSTALL_PATH} ] || return 1 local_check_sum "$FLASH_TMP/boot/qpkg.tar" "$FLASH_TMP/boot/qpkg.tar.cksum" if [ $? = 0 ]; then /bin/tar xf $FLASH_TMP/boot/qpkg.tar -C ${_INSTALL_PATH} /bin/umount $FLASH_RFS1 else /bin/umount $FLASH_RFS1 /bin/mount $FLASH_RFS2 $FLASH_TMP -o ro local_check_sum "$FLASH_TMP/boot/qpkg.tar" "$FLASH_TMP/boot/qpkg.tar.cksum" [ $? = 0 ] && /bin/tar xf $FLASH_TMP/boot/qpkg.tar -C ${_INSTALL_PATH} /bin/umount $FLASH_RFS2 fi /bin/rmdir $FLASH_TMP } FindDefVol() { VOLMPS="HDA_DATA HDB_DATA HDC_DATA HDD_DATA HDE_DATA HDF_DATA HDG_DATA HDH_DATA HDI_DATA HDJ_DATA HDK_DATA HDL_DATA HDM_DATA HDN_DATA HDO_DATA HDP_DATA MD0_DATA MD1_DATA MD2_DATA MD3_DATA MD4_DATA MD5_DATA" [ -x /usr/bin/dirname ] || /bin/ln -sf /bin/busybox /usr/bin/dirname _pdir=`/sbin/getcfg Public path -f /etc/config/smb.conf` if [ ! -z $_pdir ] && [ -d $_pdir ];then DEF_VOLMP=$(/usr/bin/dirname "$_pdir") else DEF_VOLMP= fi if [ -z $DEF_VOLMP ]; then PubShare=`/sbin/getcfg SHARE_DEF defPublic -d Public -f /etc/config/def_share.info` for _vn in $VOLMPS; do [ -d "/share/$_vn/${PubShare}" ] && DEF_VOLMP="/share/$_vn" done fi if [ ! -z "$DEF_VOLMP" ] && [ -d "$DEF_VOLMP" ]; then /bin/grep "$DEF_VOLMP" /proc/mounts 1>/dev/null 2>/dev/null return $? fi return 1 }