Add several small improvements for building all images (#2365)

* Add several improvements for build all images / kernels
* More small fixes
* Adjust version
This commit is contained in:
Igor Pečovnik 2020-11-22 08:54:41 +01:00 committed by GitHub
parent 4f72e3e1a3
commit 3ddd91de71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 40 additions and 22 deletions

View File

@ -325,11 +325,9 @@ function build_all()
fi
if [[ "$store_hash" != idential ]]; then
((n+=1))
if [[ $1 != "dryrun" ]] && [[ $n -ge $START ]]; then
while :
((n+=1))
while :
do
if [[ $(find /run/armbian/*.pid 2>/dev/null | wc -l) -le ${MULTITHREAD} || ${MULTITHREAD} -eq 0 ]]; then
break
@ -340,13 +338,17 @@ function build_all()
display_alert "Building ${n}."
if [[ "$KERNEL_ONLY" == "no" && "${MULTITHREAD}" -gt 0 ]]; then
build_main &
sleep $((RANDOM % 5))
elif [[ "${MULTITHREAD}" -gt 0 ]]; then
build_main &
sleep $((RANDOM % 5))
else
build_main
fi
# create BSP for all boards
elif [[ "${BSP_BUILD}" == yes ]]; then
((n+=1))
for BOARD in "${unique_boards[@]}"
do
# shellcheck source=/dev/null
@ -368,8 +370,11 @@ function build_all()
display_alert "BSP for ${BOARD} ${BRANCH} ${RELEASE}."
if [[ "$IGNORE_HASH" == yes && "$KERNEL_ONLY" != "yes" && "${MULTITHREAD}" -gt 0 ]]; then
build_main &
sleep 0.5
else
sleep 0.02
elif [[ "${MULTITHREAD}" -gt 0 ]]; then
build_main &
sleep $((RANDOM % 5))
else
build_main
fi
# unset non board related stuff
@ -380,6 +385,7 @@ function build_all()
display_alert "Done building all BSP images"
exit
else
((n+=1))
# In dryrun it only prints out what will be build
printf "%s\t%-32s\t%-8s\t%-14s\t%-6s\t%-6s\t%-6s\n" "${n}." \
"$BOARD (${BOARDFAMILY})" "${BRANCH}" "${RELEASE}" "${BUILD_DESKTOP}" "${BUILD_MINIMAL}"
@ -454,4 +460,4 @@ fi
buildall_end=$(date +%s)
buildall_runtime=$(((buildall_end - buildall_start) / 60))
display_alert "Runtime in total" "${buildall_runtime} min" "info"
echo "${n}" > "${SRC}"/.tmp/n
export n=${n}

View File

@ -80,6 +80,8 @@ compile_atf()
[[ $(type -t atf_custom_postprocess) == function ]] && atf_custom_postprocess
atftempdir=$(mktemp -d)
chmod 700 ${atftempdir}
trap "rm -rf \"${atftempdir}\" ; exit 0" 0 1 2 3 15
# copy files to temp directory
for f in $target_files; do
@ -144,6 +146,8 @@ compile_uboot()
# create directory structure for the .deb package
uboottempdir=$(mktemp -d)
chmod 700 ${uboottempdir}
trap "rm -rf \"${uboottempdir}\" ; exit 0" 0 1 2 3 15
local uboot_name=${CHOSEN_UBOOT}_${REVISION}_${ARCH}
rm -rf $uboottempdir/$uboot_name
mkdir -p $uboottempdir/$uboot_name/usr/lib/{u-boot,$uboot_name} $uboottempdir/$uboot_name/DEBIAN
@ -275,7 +279,7 @@ compile_uboot()
[[ ! -f $uboottempdir/${uboot_name}.deb ]] && exit_with_error "Building u-boot package failed"
rsync -rq "$uboottempdir/${uboot_name}.deb" "${DEB_STORAGE}/"
rsync --remove-source-files -rq "$uboottempdir/${uboot_name}.deb" "${DEB_STORAGE}/"
}
compile_kernel()
@ -319,8 +323,8 @@ compile_kernel()
# create linux-source package - with already patched sources
local sources_pkg_dir=$(mktemp -d)/${CHOSEN_KSRC}_${REVISION}_all
rm -rf "${sources_pkg_dir}"
mkdir -p "${sources_pkg_dir}"/usr/src/ "${sources_pkg_dir}/usr/share/doc/linux-source-${version}-${LINUXFAMILY}" "${sources_pkg_dir}"/DEBIAN
trap "rm -rf \"${sources_pkg_dir}\" ; exit 0" 0 1 2 3 15
mkdir -p "${sources_pkg_dir}"/usr/src/ "${sources_pkg_dir}"/usr/share/doc/linux-source-${version}-${LINUXFAMILY} "${sources_pkg_dir}"/DEBIAN
if [[ $BUILD_KSRC != no ]]; then
display_alert "Compressing sources for the linux-source package"
@ -329,7 +333,6 @@ compile_kernel()
| pixz -4 > "${sources_pkg_dir}/usr/src/linux-source-${version}-${LINUXFAMILY}.tar.xz"
cp COPYING "${sources_pkg_dir}/usr/share/doc/linux-source-${version}-${LINUXFAMILY}/LICENSE"
fi
display_alert "Compiling $BRANCH kernel" "$version" "info"
local toolchain
@ -447,14 +450,15 @@ compile_kernel()
if [[ $BUILD_KSRC != no ]]; then
fakeroot dpkg-deb -z0 -b "${sources_pkg_dir}" "${sources_pkg_dir}.deb"
rsync -rq "${sources_pkg_dir}.deb" "${DEB_STORAGE}/"
rsync --remove-source-files -rq "${sources_pkg_dir}.deb" "${DEB_STORAGE}/"
fi
rm -rf "${sources_pkg_dir}"
cd .. || exit
# remove firmare image packages here - easier than patching ~40 packaging scripts at once
rm -f linux-firmware-image-*.deb
rsync -rq ./*.deb "${DEB_STORAGE}/" || exit_with_error "Failed moving kernel DEBs"
rsync --remove-source-files -rq ./*.deb "${DEB_STORAGE}/" || exit_with_error "Failed moving kernel DEBs"
# store git hash to the file
echo "${hash}" > "${SRC}/cache/hash"$([[ ${BETA} == yes ]] && echo "-beta")"/linux-image-${BRANCH}-${LINUXFAMILY}.githash"
@ -479,7 +483,8 @@ compile_firmware()
fi
firmwaretempdir=$(mktemp -d)
chmod 700 ${firmwaretempdir}
trap "rm -rf \"${firmwaretempdir}\" ; exit 0" 0 1 2 3 15
local plugin_dir="armbian-firmware${FULL}"
mkdir -p "${firmwaretempdir}/${plugin_dir}/lib/firmware"
@ -529,7 +534,8 @@ compile_armbian-config()
{
local tmpdir=$(mktemp -d)/armbian-config_${REVISION}_all
chmod 700 ${tmpdir}
trap "rm -rf \"${tmpdir}\" ; exit 0" 0 1 2 3 15
display_alert "Building deb" "armbian-config" "info"
fetch_from_repo "https://github.com/armbian/config" "armbian-config" "branch:master"

View File

@ -418,8 +418,12 @@ prepare_partitions()
# stage: create blank image
display_alert "Creating blank image for rootfs" "$sdsize MiB" "info"
# truncate --size=${sdsize}M ${SDCARD}.raw # sometimes results in fs corruption, revert to previous know to work solution
dd if=/dev/zero bs=1M status=none count=$sdsize | pv -p -b -r -s $(( $sdsize * 1024 * 1024 )) -N "[ .... ] dd" | dd status=none of=${SDCARD}.raw
if [[ $FAST_CREATE_IMAGE == yes ]]; then
truncate --size=${sdsize}M ${SDCARD}.raw # sometimes results in fs corruption, revert to previous know to work solution
sync
else
dd if=/dev/zero bs=1M status=none count=$sdsize | pv -p -b -r -s $(( $sdsize * 1024 * 1024 )) -N "[ .... ] dd" | dd status=none of=${SDCARD}.raw
fi
# stage: calculate boot partition size
local bootstart=$(($OFFSET * 2048))

View File

@ -17,8 +17,10 @@ create_board_package()
{
display_alert "Creating board support package" "$BOARD $BRANCH" "info"
local destination=$(mktemp -d)/${RELEASE}/${CHOSEN_ROOTFS}_${REVISION}_${ARCH}
rm -rf "${destination}"
bsptempdir=$(mktemp -d)
chmod 700 ${bsptempdir}
trap "rm -rf \"${bsptempdir}\" ; exit 0" 0 1 2 3 15
local destination=${bsptempdir}/${RELEASE}/${CHOSEN_ROOTFS}_${REVISION}_${ARCH}
mkdir -p "${destination}"/DEBIAN
cd $destination
@ -307,7 +309,7 @@ fi
display_alert "Building package" "$CHOSEN_ROOTFS" "info"
fakeroot dpkg-deb -b "${destination}" "${destination}.deb" >> "${DEST}"/debug/install.log 2>&1
mkdir -p "${DEB_STORAGE}/${RELEASE}/"
rsync -rq --delete-after "${destination}.deb" "${DEB_STORAGE}/${RELEASE}/"
rsync --remove-source-files -rq "${destination}.deb" "${DEB_STORAGE}/${RELEASE}/"
# cleanup
rm -rf "${destination}"
rm -rf ${bsptempdir}
}