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