162306a36Sopenharmony_ci#!/bin/sh 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci# buildtar 0.0.5 662306a36Sopenharmony_ci# 762306a36Sopenharmony_ci# (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de> 862306a36Sopenharmony_ci# 962306a36Sopenharmony_ci# This script is used to compile a tarball from the currently 1062306a36Sopenharmony_ci# prepared kernel. Based upon the builddeb script from 1162306a36Sopenharmony_ci# Wichert Akkerman <wichert@wiggy.net>. 1262306a36Sopenharmony_ci# 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciset -e 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci# 1762306a36Sopenharmony_ci# Some variables and settings used throughout the script 1862306a36Sopenharmony_ci# 1962306a36Sopenharmony_citmpdir=$1 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci# 2262306a36Sopenharmony_ci# Clean-up and re-create the temporary directory 2362306a36Sopenharmony_ci# 2462306a36Sopenharmony_cirm -rf -- "${tmpdir}" 2562306a36Sopenharmony_cimkdir -p -- "${tmpdir}/boot" 2662306a36Sopenharmony_cidirs=boot 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci# 3062306a36Sopenharmony_ci# Try to install dtbs 3162306a36Sopenharmony_ci# 3262306a36Sopenharmony_ciif grep -q '^CONFIG_OF_EARLY_FLATTREE=y' include/config/auto.conf; then 3362306a36Sopenharmony_ci # Only some architectures with OF support have this target 3462306a36Sopenharmony_ci if [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then 3562306a36Sopenharmony_ci $MAKE ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install 3662306a36Sopenharmony_ci fi 3762306a36Sopenharmony_cifi 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci# 4162306a36Sopenharmony_ci# Try to install modules 4262306a36Sopenharmony_ci# 4362306a36Sopenharmony_ciif grep -q '^CONFIG_MODULES=y' include/config/auto.conf; then 4462306a36Sopenharmony_ci make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_MOD_PATH="${tmpdir}" modules_install 4562306a36Sopenharmony_ci dirs="$dirs lib" 4662306a36Sopenharmony_cifi 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci# 5062306a36Sopenharmony_ci# Install basic kernel files 5162306a36Sopenharmony_ci# 5262306a36Sopenharmony_cicp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}" 5362306a36Sopenharmony_cicp -v -- "${KCONFIG_CONFIG}" "${tmpdir}/boot/config-${KERNELRELEASE}" 5462306a36Sopenharmony_cicp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci# 5862306a36Sopenharmony_ci# Install arch-specific kernel image(s) 5962306a36Sopenharmony_ci# 6062306a36Sopenharmony_cicase "${ARCH}" in 6162306a36Sopenharmony_ci x86|i386|x86_64) 6262306a36Sopenharmony_ci [ -f "${objtree}/arch/x86/boot/bzImage" ] && cp -v -- "${objtree}/arch/x86/boot/bzImage" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 6362306a36Sopenharmony_ci ;; 6462306a36Sopenharmony_ci alpha) 6562306a36Sopenharmony_ci [ -f "${objtree}/arch/alpha/boot/vmlinux.gz" ] && cp -v -- "${objtree}/arch/alpha/boot/vmlinux.gz" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 6662306a36Sopenharmony_ci ;; 6762306a36Sopenharmony_ci parisc*) 6862306a36Sopenharmony_ci [ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 6962306a36Sopenharmony_ci [ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}" 7062306a36Sopenharmony_ci ;; 7162306a36Sopenharmony_ci mips) 7262306a36Sopenharmony_ci if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then 7362306a36Sopenharmony_ci cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.bin" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 7462306a36Sopenharmony_ci elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" ]; then 7562306a36Sopenharmony_ci cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 7662306a36Sopenharmony_ci elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.srec" ]; then 7762306a36Sopenharmony_ci cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.srec" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 7862306a36Sopenharmony_ci elif [ -f "${objtree}/vmlinux.32" ]; then 7962306a36Sopenharmony_ci cp -v -- "${objtree}/vmlinux.32" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 8062306a36Sopenharmony_ci elif [ -f "${objtree}/vmlinux.64" ]; then 8162306a36Sopenharmony_ci cp -v -- "${objtree}/vmlinux.64" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 8262306a36Sopenharmony_ci elif [ -f "${objtree}/arch/mips/boot/vmlinux.bin" ]; then 8362306a36Sopenharmony_ci cp -v -- "${objtree}/arch/mips/boot/vmlinux.bin" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 8462306a36Sopenharmony_ci elif [ -f "${objtree}/arch/mips/boot/vmlinux.ecoff" ]; then 8562306a36Sopenharmony_ci cp -v -- "${objtree}/arch/mips/boot/vmlinux.ecoff" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 8662306a36Sopenharmony_ci elif [ -f "${objtree}/arch/mips/boot/vmlinux.srec" ]; then 8762306a36Sopenharmony_ci cp -v -- "${objtree}/arch/mips/boot/vmlinux.srec" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 8862306a36Sopenharmony_ci elif [ -f "${objtree}/vmlinux" ]; then 8962306a36Sopenharmony_ci cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 9062306a36Sopenharmony_ci fi 9162306a36Sopenharmony_ci ;; 9262306a36Sopenharmony_ci arm64) 9362306a36Sopenharmony_ci for i in Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo vmlinuz.efi ; do 9462306a36Sopenharmony_ci if [ -f "${objtree}/arch/arm64/boot/${i}" ] ; then 9562306a36Sopenharmony_ci cp -v -- "${objtree}/arch/arm64/boot/${i}" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 9662306a36Sopenharmony_ci break 9762306a36Sopenharmony_ci fi 9862306a36Sopenharmony_ci done 9962306a36Sopenharmony_ci ;; 10062306a36Sopenharmony_ci riscv) 10162306a36Sopenharmony_ci for i in Image.bz2 Image.gz Image; do 10262306a36Sopenharmony_ci if [ -f "${objtree}/arch/riscv/boot/${i}" ] ; then 10362306a36Sopenharmony_ci cp -v -- "${objtree}/arch/riscv/boot/${i}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 10462306a36Sopenharmony_ci break 10562306a36Sopenharmony_ci fi 10662306a36Sopenharmony_ci done 10762306a36Sopenharmony_ci ;; 10862306a36Sopenharmony_ci *) 10962306a36Sopenharmony_ci [ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}" 11062306a36Sopenharmony_ci echo "" >&2 11162306a36Sopenharmony_ci echo '** ** ** WARNING ** ** **' >&2 11262306a36Sopenharmony_ci echo "" >&2 11362306a36Sopenharmony_ci echo "Your architecture did not define any architecture-dependent files" >&2 11462306a36Sopenharmony_ci echo "to be placed into the tarball. Please add those to ${0} ..." >&2 11562306a36Sopenharmony_ci echo "" >&2 11662306a36Sopenharmony_ci sleep 5 11762306a36Sopenharmony_ci ;; 11862306a36Sopenharmony_ciesac 119