zoukankan      html  css  js  c++  java
  • 自动升级shell

    make_version.sh

    #!/bin/bash
    IMAGE_DIR="./image/output/images"
    SCRIPTS_DIR="./scripts"
    AUTO_UPDATE_FILE="auto_update.txt"
    VERSION_FILE="[[version"
    SET_CONFIG_FILE="set_config"
    
    auto_update_add_version()
    {
    	if [ ! -f $AUTO_UPDATE_FILE ]; then
    		echo "$AUTO_UPDATE_FILE"" does not exist."
    		exit 0
    	fi
    	
    	chmod u+x $AUTO_UPDATE_FILE
    
    	sed -i '/version/d' $AUTO_UPDATE_FILE
    	sed -i '/mxp/i estar scripts/[[version' $AUTO_UPDATE_FILE
    }
    
    add_version_file()
    {
    	if [ -f $VERSION_FILE ]; then
    		#echo "remove old ""$VERSION_FILE"
    		chmod u+x $VERSION_FILE
    		rm -f $VERSION_FILE
    	fi
    	
    	read -p "Write CarDV version info? (e: y/N):" cardv_ver
    	
    	if [ ${cardv_ver} == "y" ]
    	then
    		read -p "Input MachineName (e: FC_CarDV):" machine_name
    		if [ ! -n "$machine_name" ]
    		then
    			machine_name="FC_CarDV"
    		fi
    		echo "MachineName: ${machine_name}"
    		
    		read -p "Input Product Name (e: F1):" product_name
    		if [ ! -n "$product_name" ]
    		then
    			product_name="F1"
    		fi		
    		echo "Product Name: ${product_name}"	
    		
    		read -p "Input Firmware Version (e: 00 ~ 99):" fw_version
    		if [ ! -n "$fw_version" ]
    		then
    			fw_version="00"
    		fi		
    		echo "Firmware Version: ${fw_version}"		
    		
    		echo "choice: ${cardv_ver}, CarDV version info: ${machine_name} ${product_name} ${fw_version}"
    		
    		if [ ! -f $VERSION_FILE ]; then		
    			echo "# <- this is for comment / total file size must be less than 4KB" >> $VERSION_FILE
    			echo "# command machine_name product_name fw_version" >> $VERSION_FILE
    			echo "sdver ${machine_name} ${product_name} ${fw_version}" >> $VERSION_FILE
    			echo "# command enable/disable upgrade_status" >> $VERSION_FILE
    			echo "sdupgrade 0 0" >> $VERSION_FILE			
    			echo "% <- this is end of file symbol" >> $VERSION_FILE		
    		fi
    	fi
    	
    	if [ ${cardv_ver} == "N" ]
    	then
    		echo "choice: ${cardv_ver}, default version info: FC_CarDV F1 00"
    		
    		if [ ! -f $VERSION_FILE ]; then		
    			echo "# <- this is for comment / total file size must be less than 4KB" >> $VERSION_FILE
    			echo "# command machine_name product_name fw_version" >> $VERSION_FILE
    			echo "sdver FC_CarDV F1 00" >> $VERSION_FILE
    			echo "# command enable/disable upgrade_status" >> $VERSION_FILE
    			echo "sdupgrade 1 1" >> $VERSION_FILE
    			echo "% <- this is end of file symbol" >> $VERSION_FILE		
    		fi
    	fi
    }
    
    change_set_config()
    {
    	if [ ! -f $SET_CONFIG_FILE ]; then
    		echo "$SET_CONFIG_FILE"" does not exist."
    		exit 0
    	fi
    	
    	if [ "`cat $SET_CONFIG_FILE | grep -c reset`" != 0 ];then
    		chmod u+x $SET_CONFIG_FILE
    
    		sed -i '/this is end/i sf probe 0' $SET_CONFIG_FILE
    		sed -i '/this is end/i sf read 0x22000000 ${sf_kernel_start} ${sf_kernel_size}' $SET_CONFIG_FILE
    		sed -i '/this is end/i bootm 0x22000000' $SET_CONFIG_FILE
    		sed -i '/reset/d' $SET_CONFIG_FILE
    	fi
    }
    
    #===========================================================
    #chmod -R 777 $IMAGE_DIR
    cd $IMAGE_DIR
    auto_update_add_version
    
    cd $SCRIPTS_DIR
    add_version_file
    change_set_config
    

      #./make_version.sh

      第一次提示“y/N” 表示接下来的操作是手动(y)还是自动(N);

      自动(N)会为镜像自动生成 

          机器名(现用做WIFI  SSID):XX_DVR

          产品名:XX

          软件版本(00 ~ 99):00

      手动(y)需要手动输入上面三个参数,没有输入直接回车会生成默认参数;

      软件自动升级会做软件版本判断,版本不同则执行升级。所以,自动升级需要手动(y)输入软件版本号且必须与板上软件版本号不同;

  • 相关阅读:
    富士康前端一面
    中孚前端面筋
    至真科技校招前端面筋
    SysFader:iexplore.exe错误
    设置文件属性
    SQL2000数据库定期自动备份与修改
    如何配置jdk1.5的环境变量及运行java程序
    ResultSet的getDate()、getTime()和getTimestamp()比较
    Java BigDecimal详解
    MVVM教程(一):MVVM简介与准备工作
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/14903610.html
Copyright © 2011-2022 走看看