From: Seung-Woo Kim Date: Tue, 26 Mar 2024 08:24:56 +0000 (+0900) Subject: script: build: Add option to create boot.img X-Git-Tag: accepted/tizen/unified/20240422.153132~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=301a853e585a257b986c355f79449121a4e8f9f7;p=platform%2Fkernel%2Flinux-rpi.git script: build: Add option to create boot.img Add option 'bootimg' to create boot.img vfat image having boot firmwares, u-boot, boot script, kernel image, dt binaries and dt overlays. Change-Id: I62043417125129ca9cdd697a921da1ac1046d0d7 Signed-off-by: Seung-Woo Kim --- diff --git a/build-rpi4.sh b/build-rpi4.sh index 7e4a6e1..d7066bb 100755 --- a/build-rpi4.sh +++ b/build-rpi4.sh @@ -14,10 +14,12 @@ BUILD_ROOT=$PWD KERNEL_PATH=`basename ${BUILD_ROOT}` if [ $# == 0 ]; then - echo "Usage : $0 [rt]" + echo "Usage : $0 [rt] [bootimg]" echo " architecture : arm or arm64" echo " e.g) $0 arm" echo " e.g) $0 arm64 rt" + echo " e.g) $0 arm64 bootimg" + echo " e.g) $0 arm rt bootimg" exit fi @@ -30,6 +32,72 @@ check_ccache() fi } +check_sudo() +{ + [ -e /usr/bin/make_ext4fs ] && USE_MAKE_EXT4FS=1 + if [ "$USE_MAKE_EXT4FS" != "1" ] || [ "$IS_BOOTIMG" = "1" ]; then + sudo ls > /dev/null + fi + +} + +function mk_bootimg() +{ + TMP_PATH=./tmp_bootimg + TMP_UBOOT_PATH=./tmp_uboot + BOOT_PATH="rpi4/boot" + USER_ID=`id -u` + GROUP_ID=`id -g` + + rm -f boot.img + rm -rf ${TMP_PATH} + mkdir ${TMP_PATH} + + # Create boot.img + mkfs.vfat -F 16 -C -n BOOT boot.img 65536 + sudo mount -o loop,uid=$USER_ID,gid=$GROUP_ID,showexec boot.img ${TMP_PATH} + + cp -a $BOOT_PATH/LICENCE.broadcom ${TMP_PATH} + cp -a $BOOT_PATH/start*.elf ${TMP_PATH} + cp -a $BOOT_PATH/fixup*.dat ${TMP_PATH} + if [ "$ARM_ARCH" = "arm64" ]; then + echo "Create 64bit boot image" + cp -a $BOOT_PATH/config_64bit.txt ${TMP_PATH}/config.txt + cp -a arch/arm64/boot/Image ${TMP_PATH} + cp -a arch/arm64/boot/dts/broadcom/bcm*.dtb ${TMP_PATH} + else + echo "Create 32bit boot image" + cp -a $BOOT_PATH/config.txt ${TMP_PATH} + cp -a arch/arm/boot/zImage ${TMP_PATH} + cp -a arch/arm/boot/dts/bcm*.dtb ${TMP_PATH} + fi + mkdir -p ${TMP_PATH}/overlays + cp -a arch/arm/boot/dts/overlays/*.dtbo ${TMP_PATH}/overlays + + # install u-boot files extracted from u-boot-rpi4 rpm package in download.tizen.org. + rm -rf ${TMP_UBOOT_PATH} + mkdir -p ${TMP_UBOOT_PATH} + pushd ${TMP_UBOOT_PATH} + if [ "$ARM_ARCH" = "arm64" ]; then + REPO_URL=http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/aarch64/ + else + REPO_URL=http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/armv7l/ + fi + rm -f index.html* + wget ${REPO_URL} + UBOOT=`awk -F\" '{ print $2 }' index.html | grep u-boot-rpi4` + wget ${REPO_URL}${UBOOT} + unrpm ${UBOOT} + popd + + cp -a ${TMP_UBOOT_PATH}/boot/* ${TMP_PATH} + sync + sudo umount ${TMP_PATH} + + rm -rf ${TMP_UBOOT_PATH} + rm -rf ${TMP_PATH} +} + function mk_tizen_modules() { if [ -e ${BUILD_ROOT}/../linux-tizen-modules-source ]; then @@ -70,11 +138,6 @@ function mk_tizen_modules() } function mk_modules() { - [ -e /usr/bin/make_ext4fs ] && USE_MAKE_EXT4FS=1 - if [ "$USE_MAKE_EXT4FS" != "1" ]; then - sudo ls > /dev/null - fi - make ARCH=${ARM_ARCH} CROSS_COMPILE="$CROSS_COMPILER" modules_prepare make ARCH=${ARM_ARCH} CROSS_COMPILE="$CROSS_COMPILER" modules -j ${NCPUS} @@ -119,18 +182,18 @@ function create_tar() mkdir ./output fi + rm -f ./output/* + + cp $BOOTFILES ./output cp usr/modules.img ./output + FILES=`ls output` DATE=`date +%Y%m%d%H%M` if [ $ARM_ARCH = "arm" ]; then - cp ./arch/arm/boot/zImage ./output - cp ./arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dtb ./output - tar cvf tizen-local-${DATE}-boot-armv7l-rpi4.tar -C output zImage bcm2711-rpi-4-b.dtb modules.img + tar cvf tizen-local-${DATE}-boot-armv7l-rpi4.tar -C output $FILES mv tizen-local-${DATE}-boot-armv7l-rpi4.tar ./output/ elif [ $ARM_ARCH = "arm64" ]; then - cp ./arch/arm64/boot/Image ./output - cp ./arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb ./output - tar cvf tizen-local-${DATE}-boot-arm64-rpi4.tar -C output Image bcm2711-rpi-4-b.dtb modules.img + tar cvf tizen-local-${DATE}-boot-arm64-rpi4.tar -C output $FILES mv tizen-local-${DATE}-boot-arm64-rpi4.tar ./output/ else echo "There is no proper architecture agrument!" @@ -140,7 +203,18 @@ function create_tar() DEFCONFIG=tizen_bcm2711_defconfig touch .kernel_buildenv -if [ "$2" = "rt" ]; then + +IS_RT=0 +if [ "$2" = "rt" ] || [ "$3" = "rt" ]; then + IS_RT=1 +fi + +IS_BOOTIMG=0 +if [ "$2" = "bootimg" ] || [ "$3" = "bootimg" ]; then + IS_BOOTIMG=1 +fi + +if [ "$IS_RT" = "1" ]; then echo "Build RT-Kernel" BUILD_VERSION=`cat .kernel_buildenv` if [ "$BUILD_VERSION" != "RT" ]; then @@ -161,6 +235,7 @@ else echo "NORMAL" > ./.kernel_buildenv fi +check_sudo if [ $1 = "arm" ]; then ARM_ARCH="arm" @@ -188,6 +263,17 @@ if [ $? -ne 0 ]; then exit 1 fi +if [ "$IS_BOOTIMG" = "1" ]; then + mk_bootimg + BOOTFILES="boot.img" +else + if [ $ARM_ARCH = "arm" ]; then + BOOTFILES="./arch/arm/boot/zImage ./arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dtb" + else + BOOTFILES="./arch/arm64/boot/Image ./arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb" + fi +fi + # Make module.img file mk_modules