2025-05-10 21:49:39 +08:00

544 lines
20 KiB
Bash

SHELL=/bin/bash
RK_EXTRA_PARTITION_1_NAME=<dev>
RK_USB_ADBD_TCP_PORT=5555
RK_KERNEL_CFG=OK3568-C-linux_defconfig
RK_LOG_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/sessions/2024-09-09_08-53-52
RK_DEFCONFIG=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/.chips/OK3568-C/forlinx_ok3568_kernelrt_defconfig
RK_KERNEL_VERSION_REAL=4.19
RK_EXTRA_PARTITION_2_MOUNTPOINT_STR=/userdata
RK_KERNEL_ARM64=y
RK_LOG_BASE_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/log
RK_KERNEL_KBUILD_HOST=y
DEVICE_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip
BUILD_HELPER=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/build-hooks/build-helper
RK_EXTRA_PARTITION_2_FEATURES=
RK_EXTRA_PARTITION_1_OPTIONS=defaults
RK_USB_EXTRA=
RK_DEBIAN_VERSION=bullseye
RK_ROOTFS_TYPE=ext4
RK_UBOOT_INI=
RK_KERNEL_TOOLCHAIN=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-
PARAMETER=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/.chip/parameter-buildroot.txt
RK_UPDATE=y
KMAKE=make -C /home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/kernel/ -j145 CROSS_COMPILE=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- ARCH=arm64
RK_RECOVERY_FIT_ITS=boot4recovery.its
RK_YOCTO_CHROMIUM=y
RK_ROOTFS_LOCALE_DEFAULT=y
RK_DISK_HELPERS_DEFAULT=y
RK_EXTRA_PARTITION_2_OPTIONS=defaults
COMMON_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common
RK_SESSION=2024-09-09_08-53-52
RK_OUTDIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output
RK_EXTRA_PARTITION_STR=oem:oem:/oem:ext4:defaults:normal:auto:@userdata:userdata:/userdata:ext4:defaults:normal:auto:@@@
PWD=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232
RK_FINAL_ENV=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/sessions/2024-09-09_08-53-52/final.env
LOGNAME=zmx
RK_ROOTFS_OVERLAY_DIRS=
RK_EXTRA_PARTITION_2_SRC=normal
RK_USE_FIT_IMG=y
PART_TABLE=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/sessions/2024-09-09_08-53-52/part-table
RK_UBOOT_ARM64=y
RK_CHIP=OK3568-C
RK_CONFIG_IN=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/configs/Config.in
TOP_DIR_=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/../
RK_RECOVERY_BASE_CFG=OK3568-C
CHIP_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/.chip
PYTHON3=/usr/bin/python3
RK_EXTRA_PARTITION_1_FSTYPE=ext4
MOTD_SHOWN=pam
RK_KERNEL_DTS_DIR=kernel/arch/arm64/boot/dts/rockchip
LINES=31
PARTITION_HELPER=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/scripts/partition-helper
HOME=/home/zmx
RK_KERNEL_CFG_FRAGMENTS=
RK_PCBA_BASE_CFG=OK3568-C
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
RK_INITIAL_ENV=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/sessions/2024-09-09_08-53-52/initial.env
COLUMNS=153
RK_ROOTFS_UDEV_RULES=y
RK_USB_ADBD_BASH=y
RK_EXTRA_PARTITION_2_FSTYPE=ext4
RK_BUILDROOT_BASE_CFG=OK3568-C
SCRIPTS_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/scripts
RK_USB_ADBD_RSA_KEY=
HDR_PART=<hidden>
RK_EXTRA_PARTITION_2_NAME=<dev>
RK_EXTRA_PARTITION_2_DEV=userdata
SDK_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232
RK_SAVE_TRACKED=y
RK_EXTRA_PARTITION_1_SIZE=auto
RK_KERNEL_ARCH=arm64
SSH_CONNECTION=172.20.0.20 57800 172.17.0.7 22
RK_FIRMWARE_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/firmware
RK_EXTRA_FONTS_DEFAULT=y
RK_DEBIAN_ARM64=y
RK_EXTRA_PARTITION_1_SRC=normal
RK_EXTRA_PARTITION_1_MOUNTPOINT_STR=/oem
RK_KERNEL_DTB=kernel/arch/arm64/boot/dts/rockchip/OK3568-C-linux.dtb
RK_KERNEL_IMG_NAME=Image
RK_KERNEL_DTS=kernel/arch/arm64/boot/dts/rockchip/OK3568-C-linux.dts
RK_EXTRA_PARTITION_1_DEV=oem
RK_PACKAGE_FILE_DEFAULT=y
RK_ROOTFS_SYSTEM=buildroot
RK_KBUILD_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/linux-kbuild
RK_BOOT_IMG=boot.img
LESSCLOSE=/usr/bin/lesspipe %s %s
RK_IMAGE_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/images
RK_EXTRA_PARTITION_2_SIZE=auto
RK_YOCTO_CFG=forlinx-ok3568
RK_UBOOT_CFG_FRAGMENTS=
TERM=xterm
RK_POST_HOOK_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/post-hooks
LESSOPEN=| /usr/bin/lesspipe %s
USER=zmx
RK_EXTRA_PARTITION_2_STR=userdata:userdata:/userdata:ext4:defaults:normal:auto:
RK_DEBIAN_ARCH=arm64
RK_MISC_IMG=wipe_all-misc.img
RK_KERNEL_KBUILD_ARCH=host
RK_EXTRA_PARTITION_2_MOUNTPOINT=/<name>
RK_BUILDROOT_CFG=rockchip_OK3568-C
RK_UBOOT_TRUST_INI=
SHLVL=3
POST_HELPER=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/post-hooks/post-helper
RK_EXTRA_PARTITION_NUM=2
RK_EXTRA_PARTITION_2_NAME_STR=userdata
RK_WIFIBT_CHIP=ALL_AW
RK_EXTRA_PARTITION_1_MOUNTPOINT=/<name>
RK_UBOOT_ARCH=arm64
RK_CHIP_FAMILY=OK3568-C
RK_BUILD_HOOK_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/build-hooks
RK_BOOT_FIT_ITS=boot.its
RK_DEFCONFIG_LINK=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/defconfig
RK_YOCTO_DISPLAY_PLATFORM_WAYLAND=y
RK_YOCTO_DISPLAY_PLATFORM=wayland
RK_UBOOT_CFG=OK3568-C
RK_KERNEL_DTS_NAME=OK3568-C-linux
RK_PARAMETER=parameter-buildroot.txt
RK_RECOVERY_CFG=rockchip_OK3568-C_recovery
RK_PCBA_CFG=rockchip_OK3568-C_pcba
RK_KERNEL_IMG=kernel/arch/arm64/boot/Image
RK_DATA_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/data
SSH_CLIENT=172.20.0.20 57800 22
RK_EXTRA_PARTITION_1_FEATURES=
RK_WIFIBT_TTY=ttyS8
LC_ALL=C
CHIPS_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/.chips
RK_ROOTFS_SYSTEM_BUILDROOT=y
RK_CUSTOM_ENV=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/sessions/2024-09-09_08-53-52/custom.env
PATH=/home/zmx/.local/bin:/home/zmx/work/rockchip/3562/develop/temp//gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin:/home/zmx/work/rockchip/3562/develop/temp/sqlite-amalgamation-3450300/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
RK_EXTRA_PARTITION_1_STR=oem:oem:/oem:ext4:defaults:normal:auto:
RK_EXTRA_PARTITION_1_NAME_STR=oem
RK_TOOL_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/device/rockchip/common/tools
RK_USB_ADBD_PASSWORD=
RK_CONFIG=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/.config
RK_USB_DEFAULT=y
SSH_TTY=/dev/pts/1
PARTS=0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00010000@0x00008000(boot),0x00010000@0x00018000(recovery),0x00010000@0x00028000(backup),0x00c00000@0x00038000(rootfs),0x00040000@0x00c38000(oem),-@0x00c78000(userdata:grow)
RK_USB_ADBD=y
RK_ROCKDEV_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/rockdev
RK_SESSION_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/sessions
RK_UBOOT_OPTS=
RK_ROOTFS_HOSTNAME_DEFAULT=y
OLDPWD=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/log
RK_USB_HOOKS=
RK_SECURITY_FIRMWARE_DIR=/home/zmx/work/rockchip/3568/release/OK3568-linux-sdk232/output/security-firmware
RK_KERNEL_VERSION=rt
BASH_FUNC_check_config%%=() { unset missing;
for var in $@;
do
eval [ \$$var ] && continue;
missing="$missing $var";
done;
[ -z "$missing" ] && return 0;
echo "Skipping $(basename "${BASH_SOURCE[1]}") - ${FUNCNAME[1]} for missing configs: $missing.";
return 1
}
BASH_FUNC_rk_partition_size_sector_to_readable%%=() { case "${1:-grow}" in
- | 0 | grow)
echo grow;
return 0
;;
esac;
SIZE=$(( $1 * 512 ));
if [ "$SIZE" -lt 1024 ]; then
echo $SIZE;
else
if [ "$SIZE" -ge $(( 1024 * 1024 * 1024 )) ]; then
echo "$(echo "scale=1; $SIZE / 1024 / 1024 / 1024" | bc | sed 's/\.0$//')G";
else
if [ "$SIZE" -ge $(( 1024 * 1024 )) ]; then
echo "$(echo "scale=1; $SIZE / 1024 / 1024" | bc | sed 's/\.0$//')M";
else
echo "$(echo "scale=1; $SIZE / 1024" | bc | sed 's/\.0$//')K";
fi;
fi;
fi
}
BASH_FUNC_rk_extra_part_options%%=() { rk_extra_part_arg ${1:-1} 5 defaults
}
BASH_FUNC_rk_partition_edit%%=() { sed -i '1i # name size' "$PART_TABLE";
eval ${EDITOR:-vi} "$PART_TABLE";
sed -i '/#/d' "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_rk_extra_part_arg%%=() { PART="$(rk_extra_part_cfg ${1:-1})";
ARG="$(echo "$PART" | cut -d':' -f${2:-1})";
echo "${ARG:-$3}"
}
BASH_FUNC_kernel_version_real%%=() { [ -d kernel ] || return 0;
VERSION_KEYS="VERSION PATCHLEVEL";
VERSION="";
for k in $VERSION_KEYS;
do
v=$(grep "^$k = " kernel/Makefile | cut -d' ' -f3);
VERSION=${VERSION:+${VERSION}.}$v;
done;
echo $VERSION
}
BASH_FUNC_rk_extra_part_src%%=() { PART_NAME="$(rk_extra_part_name $1)";
for src in $(rk_extra_part_arg ${1:-1} 6 | tr ',' ' ');
do
if echo "$src" | grep -vq "^/"; then
echo "$RK_IMAGE_DIR/$PART_NAME/${PART_NAME}_${src}";
else
echo "$src";
fi;
done
}
BASH_FUNC_rk_extra_part_cfg%%=() { [ "$RK_EXTRA_PARTITION_STR" ] || return 0;
RK_EXTRA_PARTITION_ARRAY=($(echo ${RK_EXTRA_PARTITION_STR//@/ } | xargs -n 1 | sort));
PART_IDX=$(( ${1:-1} - 1 ));
echo "${RK_EXTRA_PARTITION_ARRAY[$PART_IDX]}"
}
BASH_FUNC_rk_extra_part_num%%=() { echo ${RK_EXTRA_PARTITION_NUM:-0}
}
BASH_FUNC_rk_extra_part_mountpoint%%=() { rk_extra_part_arg ${1:-1} 3 "/$(rk_extra_part_name $1)"
}
BASH_FUNC_get_toolchain%%=() { TOOLCHAIN_ARCH="${1/arm64/aarch64}";
MACHINE=$(uname -m);
if [ "$MACHINE" = x86_64 ]; then
TOOLCHAIN_VENDOR="${2:-none}";
TOOLCHAIN_OS="${3:-linux}";
if [ "$RK_CHIP_FAMILY" = "rv1126_rv1109" ]; then
TOOLCHAIN_VENDOR=rockchip;
fi;
TOOLCHAIN_DIR="$(realpath prebuilts/gcc/*/$TOOLCHAIN_ARCH)";
GCC="$(find "$TOOLCHAIN_DIR" -name "*$TOOLCHAIN_VENDOR-$TOOLCHAIN_OS-*-gcc" | head -n 1)";
if [ ! -x "$GCC" ]; then
echo "No prebuilt GCC toolchain!";
exit 1;
fi;
else
if [ "$TOLLCHAIN_ARCH" = aarch64 -a "$MACHINE" != aarch64 ]; then
GCC=aarch64-linux-gnu-gcc;
else
if [ "$TOLLCHAIN_ARCH" = arm -a "$MACHINE" != armv7l ]; then
GCC=arm-linux-gnueabihf-gcc;
else
GCC=gcc;
fi;
fi;
fi;
echo "${GCC%gcc}"
}
BASH_FUNC_rk_extra_part_fakeroot_script%%=() { echo "$(rk_extra_part_outdir $1).fs"
}
BASH_FUNC_rk_partition_size%%=() { grep "^$1 " "$PART_TABLE" | cut -d' ' -f2 | tr -d '\-' || true
}
BASH_FUNC_load_config%%=() { [ -r "$RK_CONFIG" ] || return 0;
for var in $@;
do
export $(grep "^$var=" "$RK_CONFIG" | tr -d '"' || true) &> /dev/null;
done
}
BASH_FUNC_rk_partition_insert%%=() { [ "$#" -gt 1 ] || return 1;
echo $1 | grep -qE "^[0-9]*$" || return 1;
IDX=$1;
if [ "$IDX" -lt 1 ]; then
echo -e "\e[35mIndex should not be less than 1!\e[0m";
return 1;
fi;
NUM=$(rk_partition_num);
if [ "$IDX" -gt "$(($NUM + 1))" ]; then
echo -e "\e[35mIndex should not be greater than $(($NUM + 1))!\e[0m";
return 1;
fi;
echo $2 | grep -qE "^[a-zA-Z]" || return 1;
if rk_partition_parse_name $2 > /dev/null; then
echo -e "\e[35mPart already exists ($2)!\e[0m";
return 1;
fi;
case "${3:-grow}" in
0x*)
SIZE=$3
;;
*)
SIZE="$(rk_partition_size_readable_to_sector $3)"
;;
esac;
if [ "$SIZE" = "-" ] && [ "$IDX" -lt "$(( $NUM + 1 ))" ]; then
echo -e "\e[35mOnly latest part can be unlimited!\e[0m";
return 1;
fi;
if [ "$IDX" -eq "$(( $NUM + 1 ))" ] && grep -q "\-$" "$PART_TABLE"; then
echo -e "\e[35mCannot insert after unlimited part!\e[0m";
return 1;
fi;
sed -i "$IDX a$2 $SIZE" "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_rk_partition_del%%=() { [ "$#" -gt 0 ] || return 1;
rk_partition_parse_name $1 || return 1;
sed -i "/^$PART_NAME /d" "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_rk_partition_parse_name%%=() { unset PART_NAME;
[ "$#" -eq 1 ] || return 1;
if ! echo $1 | grep -qE "^[0-9]*$"; then
if ! grep -q "^$1 " "$PART_TABLE"; then
echo -e "\e[35mNo such part ($1)!\e[0m";
return 1;
fi;
PART_NAME=$1;
return 0;
fi;
IDX=$1;
if [ "$IDX" -lt 1 ]; then
echo -e "\e[35mIndex should not be less than 1!\e[0m";
return 1;
fi;
NUM=$(rk_partition_num);
if [ "$IDX" -gt "$NUM" ]; then
echo -e "\e[35mIndex should not be greater than $NUM!\e[0m";
return 1;
fi;
PART_NAME=$(sed -n "$(($IDX + 1))s/\(^[^ ]*\) .*/\1/p" "$PART_TABLE")
}
BASH_FUNC_rk_extra_part_fstype%%=() { rk_extra_part_arg ${1:-1} 4 ext4
}
BASH_FUNC_rk_partition_print%%=() { echo;
echo "==========================================";
echo " Partition table";
echo "==========================================";
{
OFFSET=0;
while read NAME SIZE; do
OFFSET=$(echo $OFFSET | awk '{printf "0x%08x",$1}');
SIZE_STR=$(rk_partition_size_sector_to_readable $SIZE);
if [ "$NAME" != "$HDR_PART" ]; then
NAME=$(echo $NAME | awk '{printf "%12s",$1}');
echo -e "$NAME at $OFFSET size=$SIZE($SIZE_STR)";
fi;
OFFSET=$(( $OFFSET + ${SIZE/-/0} ));
done < "$PART_TABLE"
} | sed "=" | sed "N;s/\n/: /";
echo;
echo "Legacy cmdline:";
rk_partition_to_cmdline;
echo
}
BASH_FUNC_rk_extra_part_mount_dir%%=() { echo "$RK_OUTDIR/$(rk_extra_part_name $1)-mount"
}
BASH_FUNC_rk_extra_part_size%%=() { rk_extra_part_arg ${1:-1} 7 auto
}
BASH_FUNC_rk_extra_part_outdir%%=() { echo "$RK_OUTDIR/$(rk_extra_part_name $1)"
}
BASH_FUNC_rroot%%=() { cd "$SDK_DIR"
}
BASH_FUNC_rk_partition_rename%%=() { [ "$#" -gt 1 ] || return 1;
echo $2 | grep -qE "^[a-zA-Z]" || return 1;
if rk_partition_parse_name $2 > /dev/null; then
echo -e "\e[35mPart already exists ($2)!\e[0m";
return 1;
fi;
rk_partition_parse_name $1 || return 1;
sed -i "s/^$PART_NAME /$2 /" "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_rk_partition_to_cmdline%%=() { OFFSET=0;
while read NAME SIZE; do
case "$SIZE" in
-)
echo "$NAME $OFFSET" | awk '{printf "-@0x%08x(%s:grow)",$2,$1}';
break
;;
*)
SIZE=$(rk_partition_size_readable_to_sector $SIZE)
;;
esac;
if [ "$NAME" != "$HDR_PART" ]; then
echo "$NAME $OFFSET $(( $SIZE ))" | awk '{printf "0x%08x@0x%08x(%s)",$3,$2,$1}';
fi;
OFFSET=$(( $OFFSET + $SIZE ));
done < "$PART_TABLE" | sed 's/)\([^$]\)/),\1/g'
}
BASH_FUNC_start_log%%=() { LOG_FILE="$RK_LOG_DIR/${2:-$1_$(date +%F_%H-%M-%S)}.log";
ln -rsf "$LOG_FILE" "$RK_LOG_DIR/$1.log";
echo "# $(date +"%F %T")" >> "$LOG_FILE";
echo "$LOG_FILE"
}
BASH_FUNC_rk_partition_init%%=() { rk_partition_parse > "$PART_TABLE"
}
BASH_FUNC_rk_partition_resize%%=() { [ "$#" -gt 1 ] || return 1;
case "$2" in
0x*)
SIZE=$2
;;
*)
SIZE="$(rk_partition_size_readable_to_sector $2)"
;;
esac;
rk_partition_parse_name $1 || return 1;
sed -i "s/^$PART_NAME .*/$PART_NAME $SIZE/" "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_finish_build%%=() { echo -e "\e[35mRunning $(basename "${BASH_SOURCE[1]}") - ${@:-${FUNCNAME[1]}} succeeded.\e[0m";
cd "$SDK_DIR"
}
BASH_FUNC_rscript%%=() { cd "$SCRIPTS_DIR"
}
BASH_FUNC_rk_extra_part_img%%=() { echo "$RK_FIRMWARE_DIR/$(rk_extra_part_name $1).img"
}
BASH_FUNC_rk_partition_create%%=() { [ "$#" -gt 1 ] || return 1;
{
echo "$HDR_PART $(echo $(( $1 )) | awk '{printf "0x%08x",$1}')";
shift;
while [ "$1" ]; do
NAME=$1;
shift;
SIZE="$(rk_partition_size_readable_to_sector $1)";
[ -z "$1" ] || shift;
if [ "$1" -a "$SIZE" = "-" ]; then
echo -e "\e[35mOnly latest part can be unlimited!\e[0m";
break;
fi;
echo "$NAME $SIZE";
done
} > "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_rk_partition_num%%=() { echo $(( $(cat "$PART_TABLE" | wc -l) - 1 ))
}
BASH_FUNC_rk_extra_part_name%%=() { rk_extra_part_arg ${1:-1} 2
}
BASH_FUNC_rk_partition_size_readable_to_sector%%=() { SIZE=${1%B};
case "${SIZE:-grow}" in
- | 0 | grow)
echo '-';
return 0
;;
0x*)
echo $SIZE;
return 0
;;
esac;
{
case "$SIZE" in
*K)
echo "${SIZE%K} * 2" | bc
;;
*M)
echo "${SIZE%M} * 2 * 1024" | bc
;;
*G)
echo "${SIZE%G} * 2 * 1024 * 1024" | bc
;;
*)
echo "$SIZE / 512" | bc
;;
esac
} | cut -d'.' -f1 | awk '{printf "0x%08x",$1}'
}
BASH_FUNC_rk_partition_parse%%=() { PARAMETER="${1:-$CHIP_DIR/$RK_PARAMETER}";
if [ ! -r "$PARAMETER" ]; then
echo -e "\e[36m$PARAMETER not exists!\e[0m" 1>&2;
exit 1;
fi;
PARTS="$(grep "^CMDLINE:" "$PARAMETER" | grep -o "0x.*")";
echo "$HDR_PART $(echo $PARTS | awk -F '[@():]' '{print $2}')";
echo "${PARTS//,/ }" | xargs -n 1 | awk -F '[@():]' '{print $3,$1}'
}
BASH_FUNC_rk_extra_part_builtin%%=() { rk_extra_part_arg ${1:-1} 8 | grep -wq builtin
}
BASH_FUNC_rk_partition_move%%=() { [ "$#" -gt 1 ] || return 1;
echo $2 | grep -qE "^[0-9]*$" || return 1;
rk_partition_parse_name $2 || return 1;
rk_partition_parse_name $1 || return 1;
PART=$(sed -n "/^$PART_NAME /p" "$PART_TABLE");
NUM=$(rk_partition_num);
if [ "$2" -eq "$NUM" ] && grep -q "\-$" "$PART_TABLE"; then
echo -e "\e[35mCannot move after unlimited part!\e[0m";
return 1;
fi;
if echo "$PART" | grep -q "\-$"; then
echo -e "\e[35mCannot move unlimited part ($1)!\e[0m";
return 1;
fi;
sed -i "/^$PART$/d" "$PART_TABLE";
sed -i "$2 a$PART" "$PART_TABLE";
rk_partition_save
}
BASH_FUNC_rk_partition_parse_names%%=() { rk_partition_parse "$1" | grep -v "^$HDR_PART " | cut -d' ' -f1 | xargs
}
BASH_FUNC_rk_extra_part_prepare%%=() { PART_NAME="$(rk_extra_part_name $1)";
OUTDIR="$(rk_extra_part_outdir $1)";
MOUNT_DIR="$(rk_extra_part_mount_dir $1)";
FAKEROOT_SCRIPT="$(rk_extra_part_fakeroot_script $1)";
SRCS="$(rk_extra_part_src $1)";
echo "Preparing partiton $PART_NAME";
rm -rf "$OUTDIR" "$FAKEROOT_SCRIPT";
if [ ! "$SRCS" ]; then
echo "Ignoring $PART_NAME for no sources";
return 0;
fi;
mkdir -p "$OUTDIR";
if rk_extra_part_fixed $idx; then
if ! rk_extra_part_builtin $idx; then
touch "$OUTDIR/.fixed";
fi;
fi;
echo "#!/bin/sh -e" > "$FAKEROOT_SCRIPT";
chmod a+x "$FAKEROOT_SCRIPT";
for src in $MOUNT_DIR $SRCS;
do
[ -d "$src" ] || continue;
[ "$(ls "$src/")" ] || continue;
echo "Merging $src into $OUTDIR";
rsync -a "$src/" "$OUTDIR";
for f in $(ls "$OUTDIR" | grep "\.fs$" || true);
do
echo "Merging $src/$f into $FAKEROOT_SCRIPT";
cat "$OUTDIR/$f" >> "$FAKEROOT_SCRIPT";
rm -f "$OUTDIR/$f";
done;
done
}
BASH_FUNC_rout%%=() { cd "$RK_OUTDIR"
}
BASH_FUNC_rcommon%%=() { cd "$COMMON_DIR"
}
BASH_FUNC_rk_extra_part_fixed%%=() { rk_extra_part_arg ${1:-1} 8 | grep -wq fixed
}
BASH_FUNC_rchip%%=() { cd "$(realpath "$CHIP_DIR")"
}
BASH_FUNC_rk_partition_save%%=() { PARAMETER="${1:-$CHIP_DIR/$RK_PARAMETER}";
[ -r "$PARAMETER" ] || return 1;
PARTS=$(rk_partition_to_cmdline);
[ "$PARTS" ] || return 1;
sed -i "/^CMDLINE:/s/0x.*/$PARTS/" "$PARAMETER";
rk_partition_init
}
BASH_FUNC_kernel_version%%=() { [ -d kernel ] || return 0;
KERNEL_DIR="$(basename "$(realpath kernel)")";
case "$KERNEL_DIR" in
kernel-*)
echo ${KERNEL_DIR#kernel-};
return 0
;;
esac;
kernel_version_real
}
BASH_FUNC_rk_extra_part_dev%%=() { rk_extra_part_arg ${1:-1} 1
}
_=/usr/bin/env