update(mpp): close mpp log.

This commit is contained in:
kangjun
2024-09-06 14:42:14 +08:00
parent c87ef401f1
commit 28f5653853
10 changed files with 18 additions and 337 deletions

View File

@@ -5,7 +5,6 @@ MOUNT_OVERLAY=1
################################## functions ##################################
#mkfs_jffs2() <device in /dev/by-name>
mkfs_jffs2() {
! [ -x /usr/sbin/mkfs.jffs2 ] \
&& ! [ -x /sbin/mkfs.jffs2 ] \
@@ -142,105 +141,6 @@ mount_usr(){
}
mount_sec_storage(){
[ -e /dev/by-name/sec_storage ] || return
local root_dev="$(readlink /dev/by-name/rootfs)"
# mount sec_storage
if [ -h /dev/by-name/sec_storage -a -d /data/tee ]; then
case "${root_dev}" in
/dev/mtdblock*)
/bin/busybox mount -t jffs2 /dev/by-name/sec_storage /data/tee 2>/dev/null
if [ "$?" -ne "0" ]; then
mkfs_jffs2 "/dev/by-name/sec_storage"
/bin/busybox mount -t jffs2 /dev/by-name/sec_storage /data/tee 2>/dev/null
fi
;;
/dev/ubi*)
/bin/busybox mount -t ubifs /dev/by-name/sec_storage /data/tee 2>/dev/null
if [ "$?" -ne "0" ]; then
mkfs_ubifs "/dev/by-name/sec_storage"
/bin/busybox mount -t ubifs /dev/by-name/sec_storage /data/tee 2>/dev/null
fi
;;
*)
/usr/sbin/fsck.ext4 -y /dev/by-name/sec_storage &>/dev/null
/bin/busybox mount -t ext4 /dev/by-name/sec_storage /data/tee 2>/dev/null
if [ "$?" -ne "0" ]; then
mkfs.ext4 /dev/by-name/sec_storage >/dev/null
/bin/busybox mount -t ext4 /dev/by-name/sec_storage /data/tee 2>/dev/null
fi
;;
esac
fi
}
mount_single_app(){
/usr/sbin/fsck.ext4 -y /dev/by-name/app &>/dev/null
/bin/mount /dev/by-name/app /mnt/app
}
mount_dual_app(){
local appAB=$(fw_printenv -n appAB)
local first_app=app
local second_app=app_sub
local applimit=$(fw_printenv -n applimit)
[ x"$applimit" != x"" -a "$applimit" -ne 0 ] && {
local appcount=$(fw_printenv -n appcount)
let appcount+=1
[ "$appcount" -gt "$applimit" ] && {
echo "Warning: applimit ($applimit) exceeded. Switch app partition."
if [ x"$appAB" = x"A" ]; then
appAB=B
elif [ x"$appAB" = x"B" ]; then
appAB=A
else
echo "check appAB error: appAB=$appAB"
appAB=A
fi
fw_setenv appAB $appAB
echo "Switch appAB to $appAB"
appcount=1
}
fw_setenv appcount $appcount
}
echo "appAB=$appAB"
if [ x"$appAB" = x"A" ]; then
first_app=app
second_app=app_sub
elif [ x"$appAB" = x"B" ]; then
first_app=app_sub
second_app=app
else
echo "check appAB error: appAB=$appAB"
fi
/usr/sbin/fsck.ext4 -y /dev/by-name/$first_app &> /dev/null
/bin/mount -t ext4 /dev/by-name/$first_app /mnt/app \
&& echo "mount $first_app success" \
&& return
echo "mount $first_app fail, now try mount $second_app"
#mount first_app fail, try second_app
/usr/sbin/fsck.ext4 -y /dev/by-name/$second_app &> /dev/null
/bin/mount -t ext4 /dev/by-name/$second_app /mnt/app \
&& echo "mount $second_app success" \
&& return
echo "mount app fail"
}
mount_app() {
[ -L /dev/by-name/app ] || return
if [ -L /dev/by-name/app_sub ]; then
mount_dual_app
else
mount_single_app
fi
}
mount_overlay() {
@@ -360,179 +260,10 @@ set_parts_by_name() {
etc_part=/dev/nande
#hardcode rootfs_data partition as nande
mount_etc_hardcode() {
# fix fs
/usr/sbin/fsck.ext4 -y $etc_part &>/dev/null
/bin/mount -t ext4 $etc_part /etc \
&& [ -e /etc/etc_complete ] \
&& return
/bin/echo "mount Failed or etc_complete not exist"
/bin/echo "now format $etc_part to ext4 ..."
/bin/umount /etc
mkfs.ext4 -m 0 $etc_part >/dev/null || return 1
/bin/mount -t ext4 -o sync,data=journal $etc_part /mnt
/bin/cp -af /etc/* /mnt/
sync
/bin/mount -o move /mnt /etc
#prepare by-name in /etc for next boot
set_parts_by_name
cp -fpr /dev/by-name /etc
sync
#now rootfs_data is ready, next boot can mount it as etc
touch /etc/etc_complete
sync # this sync not necessary, but sync after modify something is good
}
set_parts_by_name_hardcode() {
#UDISK is the last partition, when UDISK is there, the /etc/by-name is ready
[ -e /etc/by-name/UDISK ] && {
#set_part_by_name may cost more than 100ms, now just copy it from /etc
cp -fpr /etc/by-name /dev/
return
}
#should not go here. now just show warning and do set_parts_by_name
echo "warning: no /etc/by-name/UDISK, please check it"
set_parts_by_name
}
check_update_system_state() {
swu_mode=`fw_printenv | grep swu_mode | awk -F '=' '{print $2}'`
echo "swu_mode:$swu_mode"
if [ $swu_mode == ]; then
echo "Not thing todo"
else
# update_flash_flag && boot_partition_flag
# bit3~7: reserve
# bit2 : extend(/usr) 1:extend 0:extend_back
# bit1 : rootfs 1:rootfs 0:rootfs_backup
# bit0 : kernel 1:kernel 0:kernel_back
dd if=/dev/mtdblock0 of=/tmp/boot0_flag skip=61439 ibs=1 bs=1 count=1 1>/dev/null 2>&1
boot_flash_flag=0x`xxd /tmp/boot0_flag | awk -F ' ' '{print $2}'`
boot_partition_flag=0x`fw_printenv | grep update_partition_flag | awk 'BEGIN{FS="="} {print $2}'`
echo "boot_flash_flag:$boot_flash_flag, boot_partition_flag:$boot_partition_flag"
if [ $boot_flash_flag == $boot_partition_flag ]; then
boot_flash_flag_tmp=$((boot_flash_flag&0x7))
echo "boot_flash_flag_tmp:$boot_flash_flag_tmp"
# The system has been updated, but env has not been updated
case $boot_flash_flag_tmp in
0)
fw_setenv boot_partition bootB
fw_setenv root_partition rootfsB
fw_setenv extend_parttion extendB
fw_setenv swu_mode
;;
1)
fw_setenv boot_partition bootA
fw_setenv root_partition rootfsB
fw_setenv extend_parttion extendB
fw_setenv swu_mode
;;
2)
fw_setenv boot_partition bootB
fw_setenv root_partition rootfsA
fw_setenv extend_parttion extendB
fw_setenv swu_mode
;;
3)
fw_setenv boot_partition bootB
fw_setenv root_partition rootfsB
fw_setenv extend_parttion extendA
fw_setenv swu_mode
;;
4)
fw_setenv boot_partition bootA
fw_setenv root_partition rootfsA
fw_setenv extend_parttion extendB
fw_setenv swu_mode
;;
5)
fw_setenv boot_partition bootA
fw_setenv root_partition rootfsB
fw_setenv extend_parttion extendA
fw_setenv swu_mode
;;
6)
fw_setenv boot_partition bootB
fw_setenv root_partition rootfsA
fw_setenv extend_parttion extendA
fw_setenv swu_mode
;;
7)
fw_setenv boot_partition bootA
fw_setenv root_partition rootfsA
fw_setenv extend_parttion extendA
fw_setenv swu_mode
;;
*)
echo "not match boot_flash_flag_tmp"
;;
esac
else
echo "update system fail, not clean swu_mode"
fi
fi
}
#----------------------------------------------------------------
/bin/mount -t proc /proc /proc
/bin/mount -t tmpfs tmpfs /tmp
/bin/mount -t sysfs sys /sys
# /bin/mount -t devtmpfs none /dev
#/bin/mount -t jffs2 /dev/mtdblock3 /home
#/bin/mount -t jffs2 /dev/mtdblock6 /home
# /bin/mount -t jffs2 /dev/mtdblock4 /home
# cur_time=`cat /proc/uptime`
# echo "mount /data partition [${cur_time}]"
# cur_time=`cat /proc/uptime`
#echo "initialization led pwm [${cur_time}]"
#echo 6 > /sys/class/pwm/pwmchip0/export
#echo 50000 > /sys/class/pwm/pwmchip0/pwm6/period
#echo 30000 > /sys/class/pwm/pwmchip0/pwm6/duty_cycle
# echo "initialization led gpio [${cur_time}]"
#echo 134 > /sys/class/gpio/export
#echo out > /sys/class/gpio/gpio134/direction
# cur_time=`cat /proc/uptime`
# echo "enable ir led [${cur_time}]"
#echo 1 > /sys/class/pwm/pwmchip0/pwm6/enable
#echo 0 > /sys/class/gpio/gpio134/value
# cur_time=`cat /proc/uptime`
# echo "start demo_video_in [${cur_time}]"
#demo_video_in -n 40 -s0 800x600 -f0 0 -pf 4 -trd 1 -snd 1 -s1 800x600 -f1 0 -pf1 4 -vn1 1
#demo_video_in -n 40 -s0 800x600 -f0 0 -pf 4 -snd 1 -s1 800x600 -f1 0 -pf1 4 -trd 1 -vn1 1 -vn2 5
# cur_time=`cat /proc/uptime`
# echo "start uvc out [${cur_time}]"
# /bin/setusbconfig uvc
#/bin/setusbconfig uvc
# /usr/bin/setusbconfig uvc
#/usr/bin/rt_media-uvc -D 0 -d 2 -B 10 &
#sleep 2
#/bin/rt_media-uvc -D 1 -d 2 -B 10 &
# sleep 3
fgrep -sq pstore /proc/filesystems && {
/bin/mount -t pstore pstore /sys/fs/pstore
@@ -544,20 +275,8 @@ mkdir -p /var/lock
#common but slow
set_parts_by_name
mount_sec_storage
# OTA's configuration is not turned on by default exit returns,
# which does not affect the startup speed
# check_update_system_state
mount_usr
[ x"$MOUNT_ETC" = x"1" ] && mount_etc
[ x"$MOUNT_OVERLAY" = x"1" ] && mount_overlay rootfs_data #choose rootfs_data or UDISK
mount_app
#hardcode but fast
#mount_etc_hardcode
#set_parts_by_name_hardcode
#mount_usr
exec /sbin/init