mir3c/squashfs-root/usr/sbin/boot_check

165 lines
4.4 KiB
Plaintext
Raw Normal View History

2018-05-25 08:49:31 +00:00
#!/bin/sh /etc/rc.common
#this script will run by /etc/init.d/rcS after all rc script.
do_config_backup() {
# In case /data get trashed, backup config after a successful boot
local rec_mtd_name="cfg_bak"
local init_flag
init_flag=`uci get xiaoqiang.common.INITTED`
[ "$init_flag" = "YES" ] || return 0
rec_mtd=$(find_mtd_part "$rec_mtd_name")
[ -z "$rec_mtd" ] && return 0
tar -czf /tmp/cfg_bak.tgz /etc/config > /dev/null 2>&1
mtd erase $rec_mtd_name
mtd write /tmp/cfg_bak.tgz $rec_mtd_name
rm -f /tmp/cfg_bak.tgz
}
elog(){
tmsg="$@"
logger -p local0.warning -t boot_check "boot_check[${$}]: $tmsg"
echo "`date` boot_check[${$}]: $tmsg" >> /dev/console
}
start() {
# 备份上网信息
uci_wan_proto=`uci get network.wan.proto`
nvram set nv_wan_type=$uci_wan_proto
if [ "$uci_wan_proto" = "pppoe" ]; then
uci_pppoe_name=`uci get network.wan.username`
uci_pppoe_pwd=`uci get network.wan.password`
nvram set nv_pppoe_name=$uci_pppoe_name
nvram set nv_pppoe_pwd=$uci_pppoe_pwd
fi
if [ "$uci_wan_proto" = "static" ]; then
uci_wan_ip=`uci get network.wan.ipaddr`
uci_wan_gateway=`uci get network.wan.gateway`
uci_wan_dns=`uci get network.wan.dns`
uci_wan_netmask=`uci get network.wan.netmask`
uci_wan_dns1=`echo "$uci_wan_dns" | awk -F ' ' '{print $1}'`
uci_wan_dns2=`echo "$uci_wan_dns" | awk -F ' ' '{print $2}'`
nvram set nv_wan_ip=$uci_wan_ip
nvram set nv_wan_gateway=$uci_wan_gateway
nvram set nv_wan_dns1=$uci_wan_dns1
nvram set nv_wan_dns2=$uci_wan_dns2
nvram set nv_wan_netmask=$uci_wan_netmask
fi
# 备份Messaging信息
device_id=`uci get messaging.deviceInfo.DEVICE_ID`
channel_secret=`uci get messaging.deviceInfo.CHANNEL_SECRET`
nvram set nv_device_id=$device_id
nvram set nv_channel_secret=$channel_secret
# 如果刚升级的系统需要发送push
upgrad_flag=`nvram get flag_upgrade_push`
# flag 1 is need push
if [ "$upgrad_flag" = "1" ] ; then
nvram set flag_show_upgrade_info=1
nvram unset flag_upgrade_push
nvram commit
feedPush "{\"type\":3}"
/usr/sbin/vasinfo_fw.sh post_ota
fi
#升级上来的rom没设置过privacy的默认开启
#flg_privacy=`uci get xiaoqiang.common.PRIVACY 2>/dev/null`
#if [ -z "$flg_privacy" ]; then
# uci set xiaoqiang.common.PRIVACY=1
# uci commit xiaoqiang
#fi
boot_status="$(cat /proc/xiaoqiang/boot_status 2>/dev/null)"
if [ "$boot_status" = "3" ] ;then
# boot finished
gpio 1 1
gpio 2 1
# blue led is okay
gpio 3 0
md5=`md5sum /dev/mtd4 | awk '{print $1}'`
nvram set normal_firmware_md5=$md5
nvram unset bootcheck_keysrv
nvram unset bootcheck_wl1
nvram unset bootcheck_eth0
ROMVERSION=`uci get /usr/share/xiaoqiang/xiaoqiang_version.version.ROM`
nvram set os1_version=$ROMVERSION
nvram set bootcheck_fails=0
nvram commit
fi
#check merge reboot require
cat $REBOOTFLAGFILE 2>/dev/null | grep -q '^REBOOT=1'
if [ $? -eq 0 ]
then
#TODO: fixme
elog "INFO: reboot for previous script required. --- no reboot, feature disabled."
#sleep 1
#reboot
fi
#stat_points
flg_stat=`nvram get gel_restart_hard_count`
if [ "$flg_stat" = "1" ]; then
logger stat_points_none gel_restart_hard_count=1
nvram unset gel_restart_hard_count
fi
flg_init_pwd=`nvram get flag_init_root_pwd`
if [ "$flg_init_pwd" = "1" ]; then
init_pwd=`mkxqimage -I`
(echo $init_pwd; sleep 1; echo $init_pwd) | passwd root
nvram unset flag_init_root_pwd
fi
nvram set flag_ota_reboot=0
nvram set flag_boot_success=1
nvram set flag_try_sys1_failed=0
nvram set flag_try_sys2_failed=0
curr_os=`cat /proc/mtd | grep rootfs -B 1 | head -n 1 | awk '{print $NF}' | cut -b 2-4`
if [ "$curr_os" = "OS1" ]; then
nvram set flag_last_success=0
else
nvram set flag_last_success=1
fi
flg_ramfs=`nvram get flag_ramfs_upstat`
if [ "$flg_ramfs" = "1" ]; then
nvram unset flag_ramfs_upstat
fi
# daemon: monitor reset button status
nice -n -5 btnd reset 38 & 2>/dev/null
# upload log.zip
if [ -f "/data/usr/log/log.zip" ]; then
elog "upload org log.zip"
/usr/sbin/logupload.lua 0 3 0 & 2>/dev/null
fi
if [ -f "/data/usr/log/sysmonitor.log.gz" ]; then
elog "upload sysmonitor.log.gz"
/usr/sbin/logupload.lua 0 3 0 "/data/usr/log/sysmonitor.log.gz" & 2>/dev/null
fi
nvram commit
do_config_backup
elog "Booting up finished."
}
stop() {
echo "stop"
}