luckfox-pico-sdk/sysdrv/source/mcu/rt-thread/bsp/rockchip/tools/mkroot.sh
luckfox-eng29 8f34c2760d project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.
project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between
the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door
for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more
usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp:
Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for
compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem.
sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device
tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately.
sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick
boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades.
sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for
fastboot.

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
2024-10-14 09:47:04 +08:00

90 lines
2.1 KiB
Bash
Executable File

#! /bin/bash
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
usage() {
echo "usage: ./mkroot_ab.sh <userdata_path> [partition_setting]"
}
if [ "$1" == "" ]
then
usage
exit
fi
CUR_DIR=$(pwd)
IMAGE=$(pwd)/Image
ROOT_PATH="$1"
echo "$ROOT_PATH"
RESOURCE_PATH=$ROOT_PATH
ROOT_NAME=root.img
ROOTA_NAME=root_a.img
ROOTB_NAME=root_b.img
if [ ! -n "$2" ] ;then
FW_MERGER_CFG=$(pwd)/board/common/setting.ini
echo $FW_MERGER_CFG
else
FW_MERGER_CFG="$2"
echo $FW_MERGER_CFG
fi
#Del file whether exist
if [ ! -f "$IMAGE/$ROOT_NAME" ] || [ ! -f "$IMAGE/$ROOTA_NAME" ] || [ ! -f "$IMAGE/$ROOTB_NAME" ];then
echo "root File not exist"
else
rm -rf $IMAGE/root*.img
fi
ROOT_PART_SIZE=`grep -r -A 4 "^Name*=*root" $FW_MERGER_CFG |grep -wi "^PartSize" |cut -d '=' -f 2| cut -d 'x' -f 2`
echo "$ROOT_PART_SIZE"
ROOT_CNT=0
# if [ $ROOT_CNT -eq 1 ]
# then
# TRANS=`echo $ROOT_PART_SIZE | tr 'a-z' 'A-Z'`
# ROOT_EACH_SIZE=`echo "ibase=16;$TRANS"| tr -d $'\r' | bc`
# echo "userdata part size is :$ROOT_EACH_SIZE sector"
# fi
for each_size in $ROOT_PART_SIZE
do
ROOT_CNT=$[$ROOT_CNT + 1]
TRANS=`echo $each_size | tr 'a-z' 'A-Z'`
ROOT_EACH_SIZE=`echo "ibase=16;$TRANS" |tr -d $'\r' | bc`
echo "userdata part size is :$ROOT_EACH_SIZE sector"
#transform to KB unit
ROOT_PART_SIZE=`echo "ibase=10;$ROOT_EACH_SIZE/2" | bc`
echo "userdata each part size is :$ROOT_PART_SIZE KB"
#transform to 4096B one sector unit
ROOT_SECTOR_SIZE=`echo "ibase=10;$ROOT_PART_SIZE/4" | bc`
echo "userdata each part size is :$ROOT_SECTOR_SIZE *4KB"
echo "Making $ROOT_NAME from $RESOURCE_PATH with size($ROOT_PART_SIZE K) with $ROOT_SECTOR_SIZE sectors"
ROOT_NAME=root.img
dd of=$ROOT_NAME bs=4K seek=$ROOT_SECTOR_SIZE count=0 2>&1 || fatal "Failed to dd image!"
mkfs.fat -S 4096 $ROOT_NAME
MTOOLS_SKIP_CHECK=1 mcopy -bspmn -D s -i $ROOT_NAME $RESOURCE_PATH/* ::/
done
if [ $ROOT_CNT -eq 2 ]
then
for i in a b
do
cp -f $ROOT_NAME $IMAGE/root_$i.img
done
echo "remove $ROOT_NAME"
rm -rf $ROOT_NAME
echo "make root a/b image file done!"
else
mv $ROOT_NAME $IMAGE
echo "make root.image file done!"
fi