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