Merge remote-tracking branch 'github/master'

This commit is contained in:
hejiawencc
2023-02-13 13:36:39 +08:00
30 changed files with 210 additions and 77 deletions

View File

@ -456,7 +456,7 @@ function build_check_cross_compile(){
case $RK_ARCH in
arm|armhf)
if [ -d "$TOP_DIR/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf" ]; then
CROSS_COMPILE=$(realpath $TOP_DIR)/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-linux-gnueabihf-
CROSS_COMPILE=$(realpath $TOP_DIR)/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-
export CROSS_COMPILE=$CROSS_COMPILE
fi
;;

View File

@ -1,5 +1,7 @@
#!/bin/bash
set -e
COMMON_DIR=$(cd `dirname $0`; pwd)
if [ -h $0 ]
then
@ -17,10 +19,10 @@ then
exit 0
fi
source $TOP_DIR/buildroot/build/envsetup.sh $RK_CFG_BUILDROOT
$TOP_DIR/buildroot/utils/brmake
if [ $? -ne 0 ]; then
echo "log saved on $TOP_DIR/br.log"
tail -n 100 $TOP_DIR/br.log
exit 1
if $TOP_DIR/buildroot/utils/brmake; then
echo "log saved on $TOP_DIR/br.log. pack buildroot image at: $TOP_DIR/buildroot/output/$RK_CFG_BUILDROOT/images/rootfs.$RK_ROOTFS_TYPE"
else
echo "log saved on $TOP_DIR/br.log"
tail -n 100 $TOP_DIR/br.log
exit 1
fi
echo "log saved on $TOP_DIR/br.log. pack buildroot image at: $TOP_DIR/buildroot/output/$RK_CFG_BUILDROOT/images/rootfs.$RK_ROOTFS_TYPE"

View File

@ -114,8 +114,7 @@ fi
# build ramdisk
echo "====Start build $RAMDISK_CFG===="
$TOP_DIR/buildroot/utils/brmake
if [ $? -eq 0 ]; then
if $TOP_DIR/buildroot/utils/brmake; then
echo "log saved on $TOP_DIR/br.log"
echo "====Build $RAMDISK_CFG ok!===="
else

View File

@ -91,7 +91,7 @@ assert_size() {
IMG_SIZE=$(stat -c "%s" "$IMG")
if [ $PART_SIZE -lt $(( "$IMG_SIZE" / 1024 )) ]; then
if [ $PART_SIZE -lt $(( $IMG_SIZE / 1024 )) ]; then
fatal "error: $IMG's size exceed parameter.txt's limit!"
fi
}

View File

@ -3,6 +3,9 @@
TARGET_DIR=$1
shift
FSTAB="${TARGET_DIR}/etc/fstab"
OS_RELEASE="${TARGET_DIR}/etc/os-release"
RK_LEGACY_PARTITIONS=" \
${RK_OEM_FS_TYPE:+oem:/oem:${RK_OEM_FS_TYPE}}
${RK_USERDATA_FS_TYPE:+userdata:/userdata:${RK_USERDATA_FS_TYPE}}
@ -19,11 +22,45 @@ function fixup_root()
echo "Fixing up rootfs type: $1"
FS_TYPE=$1
sed -i "s#\([[:space:]]/[[:space:]]\+\)\w\+#\1${FS_TYPE}#" \
${TARGET_DIR}/etc/fstab
sed -i "s#\([[:space:]]/[[:space:]]\+\)\w\+#\1${FS_TYPE}#" "$FSTAB"
}
partition_arg() {
function fixup_part()
{
echo "Fixing up partition: ${@//: }"
SRC="$1"
MOUNT="$2"
FS_TYPE="$3"
MOUNT_OPTS="$4"
PASS="$5"
# Remove old entries with same mountpoint
sed -i "/[[:space:]]${MOUNT//\//\\\/}[[:space:]]/d" "$FSTAB"
if [ "$SRC" != tmpfs ]; then
# Remove old entries with same source
sed -i "/^${SRC//\//\\\/}[[:space:]]/d" "$FSTAB"
fi
# Append new entry
echo -e "${SRC}\t${MOUNT}\t${FS_TYPE}\t${MOUNT_OPTS}\t0 $PASS" >> "$FSTAB"
mkdir -p "${TARGET_DIR}/${MOUNT}"
}
function fixup_basic_part()
{
echo "Fixing up basic partition: $@"
FS_TYPE="$1"
MOUNT="$2"
MOUNT_OPTS="${3:-defaults}"
fixup_part "$FS_TYPE" "$MOUNT" "$FS_TYPE" "$MOUNT_OPTS" 0
}
function partition_arg() {
PART="$1"
I="$2"
DEFAULT="$3"
@ -32,27 +69,21 @@ partition_arg() {
echo ${ARG:-$DEFAULT}
}
function fixup_part()
function fixup_device_part()
{
echo "Fixing up partition: ${@//: }"
echo "Fixing up device partition: ${@//: }"
DEV="$(partition_arg "$*" 1)"
# Dev is either <name> or /dev/.../<name>
[ "$DEV" ] || return 0
echo $DEV | grep -qE "^/" || DEV="PARTLABEL=$DEV"
echo $DEV | grep -qE "^/" || DEV="LABEL=$DEV"
MOUNT="$(partition_arg "$*" 2 "/${DEV##*[/=]}")"
FS_TYPE="$(partition_arg "$*" 3 ext2)"
MOUNT_OPTS="$(partition_arg "$*" 4 defaults)"
sed -i "/[[:space:]]${MOUNT//\//\\\/}[[:space:]]/d" ${TARGET_DIR}/etc/fstab
sed -i "/^${DEV//\//\\\/}[[:space:]]/d" ${TARGET_DIR}/etc/fstab
echo -e "${DEV}\t${MOUNT}\t${FS_TYPE}\t${MOUNT_OPTS}\t0 2" >> \
${TARGET_DIR}/etc/fstab
mkdir -p ${TARGET_DIR}/${MOUNT}
fixup_part "$DEV" "$MOUNT" "$FS_TYPE" "$MOUNT_OPTS" 2
}
function fixup_fstab()
@ -68,39 +99,38 @@ function fixup_fstab()
;;
esac
sed -i "/[[:space:]]debugfs[[:space:]]/d" ${TARGET_DIR}/etc/fstab
echo -e "debugfs\t/sys/kernel/debug\tdebugfs\tdefaults\t0 0" >> \
${TARGET_DIR}/etc/fstab
sed -i "/[[:space:]]pstore[[:space:]]/d" ${TARGET_DIR}/etc/fstab
echo -e "pstore\t/sys/fs/pstore\tpstore\tdefaults\t0 0" >> \
${TARGET_DIR}/etc/fstab
fixup_basic_part proc /proc
fixup_basic_part devtmpfs /dev
fixup_basic_part devpts /dev/pts mode=0620,ptmxmode=0666,gid=5
fixup_basic_part tmpfs /dev/shm nosuid,nodev,noexec
fixup_basic_part sysfs /sys
fixup_basic_part debugfs /sys/kernel/debug
fixup_basic_part pstore /sys/fs/pstore
if echo $TARGET_DIR | grep -qE "_recovery/target/*$"; then
fixup_part "/dev/sda1:/mnt/udisk:auto:defaults::"
fixup_part "/dev/mmcblk1p1:/mnt/sdcard:auto:defaults::"
fixup_device_part "/dev/sda1:/mnt/udisk:auto:defaults::"
fixup_device_part "/dev/mmcblk1p1:/mnt/sdcard:auto:defaults::"
fi
for part in ${RK_EXTRA_PARTITIONS//@/ }; do
fixup_part $part
fixup_device_part $part
done
}
function add_build_info()
{
[ -f ${TARGET_DIR}/etc/os-release ] && \
sed -i "/^BUILD_ID=/d" ${TARGET_DIR}/etc/os-release
[ -f "$OS_RELEASE" ] && sed -i "/^BUILD_ID=/d" "$OS_RELEASE"
echo "Adding build-info to /etc/os-release..."
echo "BUILD_INFO=\"$(whoami)@$(hostname) $(date)${@:+ - $@}\"" >> \
${TARGET_DIR}/etc/os-release
"$OS_RELEASE"
}
function add_dirs_and_links()
{
echo "Adding dirs and links..."
cd ${TARGET_DIR}
cd "$TARGET_DIR"
rm -rf mnt/* udisk sdcard data
mkdir -p mnt/sdcard mnt/udisk
@ -125,7 +155,7 @@ function add_dirs_and_links()
echo "Executing $(basename $0)..."
add_build_info $@
[ -f ${TARGET_DIR}/etc/fstab ] && fixup_fstab
[ -f "$FSTAB" ] && fixup_fstab
add_dirs_and_links
exit 0