SHELL=/bin/bash RK_EXTRA_PARTITION_1_NAME= 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= RK_EXTRA_PARTITION_2_NAME= 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=/ 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=/ 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