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)输入软件版本号且必须与板上软件版本号不同;

  • 相关阅读:
    go语言学习之从例子开始
    分享一个不错的Unittest测试报告
    selenium各种定位方法(转)
    HTMLTESTRunner自动化测试报告增加截图功能
    selenium之chrome驱动版本
    Python基础(六) python生成xml测试报告
    vue+elementUI 表头按钮
    vue+elementUI滚动条
    vue表格表头添加按钮
    elementUI升级版本后Dialog弹空不显示问题
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/14903610.html
Copyright © 2011-2022 走看看