mir3c/squashfs-root/usr/sbin/boot_check

165 lines
4.4 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"
}