582 lines
20 KiB
Bash
582 lines
20 KiB
Bash
SHELL=/bin/bash
|
|
RK_EXTRA_PARTITION_1_NAME=<dev>
|
|
SESSION_MANAGER=local/ubuntu:@/tmp/.ICE-unix/1814,unix/ubuntu:/tmp/.ICE-unix/1814
|
|
QT_ACCESSIBILITY=1
|
|
RK_USB_ADBD_TCP_PORT=5555
|
|
COLORTERM=truecolor
|
|
RK_KERNEL_CFG=OK3568-C-linux_defconfig
|
|
RK_LOG_DIR=/home/forlinx/3568/OK3568-linux-sdk232/output/sessions/2025-05-06_16-09-35
|
|
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu-xorg:/etc/xdg
|
|
RK_DEFCONFIG=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/.chips/OK3568-C/forlinx_ok3568_kernelrt_defconfig
|
|
SSH_AGENT_LAUNCHER=gnome-keyring
|
|
RK_KERNEL_VERSION_REAL=4.19
|
|
XDG_MENU_PREFIX=gnome-
|
|
RK_EXTRA_PARTITION_2_MOUNTPOINT_STR=/userdata
|
|
RK_KERNEL_ARM64=y
|
|
RK_LOG_BASE_DIR=/home/forlinx/3568/OK3568-linux-sdk232/output/log
|
|
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
|
|
RK_KERNEL_KBUILD_HOST=y
|
|
DEVICE_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip
|
|
GTK_IM_MODULE=ibus
|
|
BUILD_HELPER=/home/forlinx/3568/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/forlinx/3568/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/forlinx/3568/OK3568-linux-sdk232/device/rockchip/.chip/parameter-buildroot.txt
|
|
RK_UPDATE=y
|
|
KMAKE=make -C /home/forlinx/3568/OK3568-linux-sdk232/kernel/ -j5 CROSS_COMPILE=/home/forlinx/3568/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
|
|
LC_ADDRESS=zh_CN.UTF-8
|
|
RK_RECOVERY_FIT_ITS=boot4recovery.its
|
|
GNOME_SHELL_SESSION_MODE=ubuntu
|
|
LC_NAME=zh_CN.UTF-8
|
|
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
|
|
RK_YOCTO_CHROMIUM=y
|
|
RK_ROOTFS_LOCALE_DEFAULT=y
|
|
RK_DISK_HELPERS_DEFAULT=y
|
|
RK_EXTRA_PARTITION_2_OPTIONS=defaults
|
|
COMMON_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common
|
|
RK_SESSION=2025-05-06_16-09-35
|
|
XMODIFIERS=@im=ibus
|
|
DESKTOP_SESSION=ubuntu-xorg
|
|
LC_MONETARY=zh_CN.UTF-8
|
|
RK_OUTDIR=/home/forlinx/3568/OK3568-linux-sdk232/output
|
|
RK_EXTRA_PARTITION_STR=oem:oem:/oem:ext4:defaults:normal:auto:@userdata:userdata:/userdata:ext4:defaults:normal:auto:@@@
|
|
GTK_MODULES=gail:atk-bridge
|
|
DBUS_STARTER_BUS_TYPE=session
|
|
PWD=/home/forlinx/3568/OK3568-linux-sdk232
|
|
RK_FINAL_ENV=/home/forlinx/3568/OK3568-linux-sdk232/output/sessions/2025-05-06_16-09-35/final.env
|
|
XDG_SESSION_DESKTOP=ubuntu-xorg
|
|
LOGNAME=forlinx
|
|
XDG_SESSION_TYPE=x11
|
|
RK_ROOTFS_OVERLAY_DIRS=
|
|
RK_EXTRA_PARTITION_2_SRC=normal
|
|
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
|
|
SYSTEMD_EXEC_PID=1814
|
|
RK_USE_FIT_IMG=y
|
|
PART_TABLE=/home/forlinx/3568/OK3568-linux-sdk232/output/sessions/2025-05-06_16-09-35/part-table
|
|
RK_UBOOT_ARM64=y
|
|
RK_CHIP=OK3568-C
|
|
RK_CONFIG_IN=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/configs/Config.in
|
|
XAUTHORITY=/run/user/1000/gdm/Xauthority
|
|
RK_RECOVERY_BASE_CFG=OK3568-C
|
|
CHIP_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/.chip
|
|
PYTHON3=/usr/bin/python3
|
|
WINDOWPATH=2
|
|
RK_EXTRA_PARTITION_1_FSTYPE=ext4
|
|
RK_KERNEL_DTS_DIR=kernel/arch/arm64/boot/dts/rockchip
|
|
LINES=24
|
|
PARTITION_HELPER=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/scripts/partition-helper
|
|
HOME=/home/forlinx
|
|
RK_KERNEL_CFG_FRAGMENTS=
|
|
USERNAME=forlinx
|
|
LANG=en_US.UTF-8
|
|
LC_PAPER=zh_CN.UTF-8
|
|
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:
|
|
XDG_CURRENT_DESKTOP=ubuntu:GNOME
|
|
RK_INITIAL_ENV=/home/forlinx/3568/OK3568-linux-sdk232/output/sessions/2025-05-06_16-09-35/initial.env
|
|
COLUMNS=80
|
|
RK_ROOTFS_UDEV_RULES=y
|
|
RK_USB_ADBD_BASH=y
|
|
VTE_VERSION=6800
|
|
RK_EXTRA_PARTITION_2_FSTYPE=ext4
|
|
RK_BUILDROOT_BASE_CFG=OK3568-C
|
|
SCRIPTS_DIR=/home/forlinx/3568/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/forlinx/3568/OK3568-linux-sdk232
|
|
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/059f9617_f924_4649_9272_0a7573c73e07
|
|
RK_SAVE_TRACKED=y
|
|
RK_EXTRA_PARTITION_1_SIZE=auto
|
|
RK_KERNEL_ARCH=arm64
|
|
RK_FIRMWARE_DIR=/home/forlinx/3568/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/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/linux-kbuild
|
|
RK_BOOT_IMG=boot.img
|
|
LESSCLOSE=/usr/bin/lesspipe %s %s
|
|
XDG_SESSION_CLASS=user
|
|
RK_IMAGE_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/images
|
|
RK_EXTRA_PARTITION_2_SIZE=auto
|
|
RK_YOCTO_CFG=forlinx-ok3568
|
|
RK_UBOOT_CFG_FRAGMENTS=
|
|
LC_IDENTIFICATION=zh_CN.UTF-8
|
|
TERM=xterm-256color
|
|
RK_POST_HOOK_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/post-hooks
|
|
LESSOPEN=| /usr/bin/lesspipe %s
|
|
USER=forlinx
|
|
RK_EXTRA_PARTITION_2_STR=userdata:userdata:/userdata:ext4:defaults:normal:auto:
|
|
RK_DEBIAN_ARCH=arm64
|
|
GNOME_TERMINAL_SERVICE=:1.107
|
|
RK_MISC_IMG=wipe_all-misc.img
|
|
RK_KERNEL_KBUILD_ARCH=host
|
|
RK_EXTRA_PARTITION_2_MOUNTPOINT=/<name>
|
|
DISPLAY=:0
|
|
RK_BUILDROOT_CFG=rockchip_OK3568-C
|
|
RK_UBOOT_TRUST_INI=
|
|
SHLVL=2
|
|
POST_HELPER=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/post-hooks/post-helper
|
|
RK_EXTRA_PARTITION_NUM=2
|
|
RK_EXTRA_PARTITION_2_NAME_STR=userdata
|
|
LC_TELEPHONE=zh_CN.UTF-8
|
|
RK_WIFIBT_CHIP=ALL_AW
|
|
RK_EXTRA_PARTITION_1_MOUNTPOINT=/<name>
|
|
QT_IM_MODULE=ibus
|
|
LC_MEASUREMENT=zh_CN.UTF-8
|
|
RK_UBOOT_ARCH=arm64
|
|
RK_CHIP_FAMILY=OK3568-C
|
|
RK_BUILD_HOOK_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/build-hooks
|
|
DBUS_STARTER_ADDRESS=unix:path=/run/user/1000/bus,guid=81886cbbfb9ec1c02b63df006819c10c
|
|
RK_BOOT_FIT_ITS=boot.its
|
|
RK_DEFCONFIG_LINK=/home/forlinx/3568/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
|
|
XDG_RUNTIME_DIR=/run/user/1000
|
|
RK_PCBA_CFG=rockchip_OK3568-C_pcba
|
|
RK_KERNEL_IMG=kernel/arch/arm64/boot/Image
|
|
RK_DATA_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/data
|
|
RK_EXTRA_PARTITION_1_FEATURES=
|
|
RK_WIFIBT_TTY=ttyS8
|
|
LC_TIME=zh_CN.UTF-8
|
|
LC_ALL=C
|
|
CHIPS_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/.chips
|
|
XDG_DATA_DIRS=/usr/share/ubuntu-xorg:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
|
|
RK_ROOTFS_SYSTEM_BUILDROOT=y
|
|
RK_CUSTOM_ENV=/home/forlinx/3568/OK3568-linux-sdk232/output/sessions/2025-05-06_16-09-35/custom.env
|
|
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
|
|
RK_EXTRA_PARTITION_1_STR=oem:oem:/oem:ext4:defaults:normal:auto:
|
|
RK_EXTRA_PARTITION_1_NAME_STR=oem
|
|
GDMSESSION=ubuntu-xorg
|
|
RK_TOOL_DIR=/home/forlinx/3568/OK3568-linux-sdk232/device/rockchip/common/tools
|
|
RK_USB_ADBD_PASSWORD=
|
|
RK_CONFIG=/home/forlinx/3568/OK3568-linux-sdk232/output/.config
|
|
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus,guid=81886cbbfb9ec1c02b63df006819c10c
|
|
RK_USB_DEFAULT=y
|
|
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/forlinx/3568/OK3568-linux-sdk232/rockdev
|
|
RK_SESSION_DIR=/home/forlinx/3568/OK3568-linux-sdk232/output/sessions
|
|
RK_UBOOT_OPTS=
|
|
LC_NUMERIC=zh_CN.UTF-8
|
|
RK_ROOTFS_HOSTNAME_DEFAULT=y
|
|
OLDPWD=/home/forlinx/3568/OK3568-linux-sdk232/output/log
|
|
RK_USB_HOOKS=
|
|
RK_SECURITY_FIRMWARE_DIR=/home/forlinx/3568/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
|