2018-07-16 20:45:36 +02:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
|
|
|
|
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
2013-12-21 08:47:07 +01:00
|
|
|
|
|
|
|
|
PKG_NAME="linux"
|
|
|
|
|
PKG_LICENSE="GPL"
|
|
|
|
|
PKG_SITE="http://www.kernel.org"
|
2022-04-24 21:02:40 +02:00
|
|
|
PKG_DEPENDS_HOST="ccache:host rsync:host"
|
2022-09-19 00:27:26 +00:00
|
|
|
PKG_DEPENDS_TARGET="linux:host kmod:host xz:host keyutils openssl:host ${KERNEL_EXTRA_DEPENDS_TARGET}"
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_NEED_UNPACK="${LINUX_DEPENDS} $(get_pkg_directory initramfs) $(get_pkg_variable initramfs PKG_NEED_UNPACK)"
|
2013-12-21 08:47:07 +01:00
|
|
|
PKG_LONGDESC="This package contains a precompiled kernel image and the modules."
|
2017-10-16 00:01:01 +02:00
|
|
|
PKG_IS_KERNEL_PKG="yes"
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_STAMP="${KERNEL_TARGET} ${KERNEL_MAKE_EXTRACMD}"
|
2017-10-16 00:01:01 +02:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_PATCH_DIRS="${LINUX}"
|
2018-03-07 12:10:00 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
case "${LINUX}" in
|
2020-09-19 15:05:01 +00:00
|
|
|
amlogic)
|
2023-11-12 05:51:26 +00:00
|
|
|
PKG_VERSION="004dcea13dc10acaf1486d9939be4c793834c13c" # 6.7.5
|
|
|
|
|
PKG_SHA256="65911f37f072778f60f77821e8c4cf67e7a8aeca8a290fbbb743ee877048a676"
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz"
|
|
|
|
|
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
2023-02-04 03:15:09 +00:00
|
|
|
PKG_PATCH_DIRS="default"
|
2020-09-19 15:05:01 +00:00
|
|
|
;;
|
2018-03-05 13:27:49 +01:00
|
|
|
raspberrypi)
|
2024-03-07 13:16:01 +01:00
|
|
|
PKG_VERSION="6f16847710cc0502450788b9f12f0a14d3429668" # 6.6.20
|
|
|
|
|
PKG_SHA256="462bd8bf306f9f329e0f4308c0c3f3e345d91111b28ee7ecb9aa7b65b9f3f244"
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz"
|
|
|
|
|
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
2018-03-05 13:27:49 +01:00
|
|
|
;;
|
2015-06-11 11:23:00 +03:00
|
|
|
*)
|
2024-02-23 10:20:17 +00:00
|
|
|
PKG_VERSION="6.6.19"
|
|
|
|
|
PKG_SHA256="b5637e6b72c2b4b12e7db790bc155d141a9c2fe4b25f7b215410107e8747139a"
|
2022-08-30 09:00:28 +00:00
|
|
|
PKG_URL="https://www.kernel.org/pub/linux/kernel/v${PKG_VERSION/.*/}.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
2016-12-06 18:25:25 +00:00
|
|
|
PKG_PATCH_DIRS="default"
|
2015-06-11 11:23:00 +03:00
|
|
|
;;
|
2015-05-14 13:35:55 +02:00
|
|
|
esac
|
2013-12-21 08:47:07 +01:00
|
|
|
|
2019-06-15 06:15:17 +01:00
|
|
|
PKG_KERNEL_CFG_FILE=$(kernel_config_path) || die
|
2021-01-02 22:53:09 +00:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ -n "${KERNEL_TOOLCHAIN}" ]; then
|
2022-04-14 19:39:26 +02:00
|
|
|
PKG_DEPENDS_TARGET+=" gcc-${KERNEL_TOOLCHAIN}:host"
|
2021-01-19 19:33:55 +00:00
|
|
|
HEADERS_ARCH=${TARGET_ARCH}
|
2022-04-24 20:59:49 +02:00
|
|
|
else
|
|
|
|
|
PKG_DEPENDS_TARGET+=" toolchain"
|
2016-11-24 09:36:06 +01:00
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ "${PKG_BUILD_PERF}" != "no" ] && grep -q ^CONFIG_PERF_EVENTS= ${PKG_KERNEL_CFG_FILE}; then
|
2018-02-12 21:29:18 +01:00
|
|
|
PKG_BUILD_PERF="yes"
|
2021-01-19 19:33:55 +00:00
|
|
|
PKG_DEPENDS_TARGET+=" binutils elfutils libunwind zlib openssl"
|
2018-02-12 21:29:18 +01:00
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ "${TARGET_ARCH}" = "x86_64" ]; then
|
|
|
|
|
PKG_DEPENDS_TARGET+=" elfutils:host pciutils"
|
2019-12-04 09:35:23 +01:00
|
|
|
PKG_DEPENDS_UNPACK+=" intel-ucode kernel-firmware"
|
2021-01-19 19:33:55 +00:00
|
|
|
elif [ "${TARGET_ARCH}" = "arm" -a "${DEVICE}" = "iMX6" ]; then
|
2020-11-22 18:30:03 +03:00
|
|
|
PKG_DEPENDS_UNPACK+=" firmware-imx"
|
2016-09-19 11:52:51 -07:00
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [[ "${KERNEL_TARGET}" = uImage* ]]; then
|
|
|
|
|
PKG_DEPENDS_TARGET+=" u-boot-tools:host"
|
2019-05-03 00:59:33 +02:00
|
|
|
fi
|
|
|
|
|
|
2019-12-31 11:32:35 +00:00
|
|
|
# Ensure that the dependencies of initramfs:target are built correctly, but
|
|
|
|
|
# we don't want to add initramfs:target as a direct dependency as we install
|
|
|
|
|
# this "manually" from within linux:target
|
|
|
|
|
for pkg in $(get_pkg_variable initramfs PKG_DEPENDS_TARGET); do
|
|
|
|
|
! listcontains "${PKG_DEPENDS_TARGET}" "${pkg}" && PKG_DEPENDS_TARGET+=" ${pkg}" || true
|
|
|
|
|
done
|
|
|
|
|
|
2014-01-05 20:16:11 +02:00
|
|
|
post_patch() {
|
2020-02-11 18:21:36 +01:00
|
|
|
# linux was already built and its build dir autoremoved - prepare it again for kernel packages
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ -d ${PKG_INSTALL}/.image ]; then
|
|
|
|
|
cp -p ${PKG_INSTALL}/.image/.config ${PKG_BUILD}
|
|
|
|
|
kernel_make -C ${PKG_BUILD} prepare
|
2020-02-06 07:35:08 +01:00
|
|
|
|
|
|
|
|
# restore the required Module.symvers from an earlier build
|
2021-01-19 19:33:55 +00:00
|
|
|
cp -p ${PKG_INSTALL}/.image/Module.symvers ${PKG_BUILD}
|
2020-02-06 07:35:08 +01:00
|
|
|
fi
|
2013-12-21 08:47:07 +01:00
|
|
|
}
|
|
|
|
|
|
2018-06-15 15:42:51 +02:00
|
|
|
make_host() {
|
2021-07-19 11:56:29 +00:00
|
|
|
:
|
2018-06-15 15:42:51 +02:00
|
|
|
}
|
|
|
|
|
|
2013-12-21 08:47:07 +01:00
|
|
|
makeinstall_host() {
|
2018-06-15 15:42:51 +02:00
|
|
|
make \
|
2021-01-19 19:33:55 +00:00
|
|
|
ARCH=${HEADERS_ARCH:-${TARGET_KERNEL_ARCH}} \
|
|
|
|
|
HOSTCC="${TOOLCHAIN}/bin/host-gcc" \
|
|
|
|
|
HOSTCXX="${TOOLCHAIN}/bin/host-g++" \
|
|
|
|
|
HOSTCFLAGS="${HOST_CFLAGS}" \
|
|
|
|
|
HOSTCXXFLAGS="${HOST_CXXFLAGS}" \
|
|
|
|
|
HOSTLDFLAGS="${HOST_LDFLAGS}" \
|
2018-06-15 15:42:51 +02:00
|
|
|
INSTALL_HDR_PATH=dest \
|
2018-06-11 04:05:01 +01:00
|
|
|
headers_install
|
2021-01-19 19:33:55 +00:00
|
|
|
mkdir -p ${SYSROOT_PREFIX}/usr/include
|
|
|
|
|
cp -R dest/include/* ${SYSROOT_PREFIX}/usr/include
|
2013-12-21 08:47:07 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pre_make_target() {
|
2021-01-19 19:33:55 +00:00
|
|
|
( cd ${ROOT}
|
|
|
|
|
rm -rf ${BUILD}/initramfs
|
2019-12-03 11:00:33 +01:00
|
|
|
rm -f ${STAMPS_INSTALL}/initramfs/install_target ${STAMPS_INSTALL}/*/install_init
|
2021-01-19 19:33:55 +00:00
|
|
|
${SCRIPTS}/install initramfs
|
2019-05-17 15:15:53 +02:00
|
|
|
)
|
2019-07-07 23:37:31 +01:00
|
|
|
pkg_lock_status "ACTIVE" "linux:target" "build"
|
2019-05-17 15:15:53 +02:00
|
|
|
|
2021-02-13 17:13:37 -08:00
|
|
|
cp ${PKG_KERNEL_CFG_FILE} ${PKG_BUILD}/.config
|
|
|
|
|
|
|
|
|
|
# set initramfs source
|
|
|
|
|
${PKG_BUILD}/scripts/config --set-str CONFIG_INITRAMFS_SOURCE "$(kernel_initramfs_confs) ${BUILD}/initramfs"
|
|
|
|
|
|
|
|
|
|
# set default hostname based on ${DISTRONAME}
|
|
|
|
|
${PKG_BUILD}/scripts/config --set-str CONFIG_DEFAULT_HOSTNAME "${DISTRONAME}"
|
|
|
|
|
|
|
|
|
|
# disable swap support if not enabled
|
|
|
|
|
if [ ! "${SWAP_SUPPORT}" = yes ]; then
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_SWAP
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# disable nfs support if not enabled
|
|
|
|
|
if [ ! "${NFS_SUPPORT}" = yes ]; then
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_NFS_FS
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# disable cifs support if not enabled
|
|
|
|
|
if [ ! "${SAMBA_SUPPORT}" = yes ]; then
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_CIFS
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# disable iscsi support if not enabled
|
|
|
|
|
if [ ! "${ISCSI_SUPPORT}" = yes ]; then
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_SCSI_ISCSI_ATTRS
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_ISCSI_TCP
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_ISCSI_BOOT_SYSFS
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_ISCSI_IBFT_FIND
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_ISCSI_IBFT
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# disable lima/panfrost if libmali is configured
|
|
|
|
|
if [ "${OPENGLES}" = "libmali" ]; then
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_DRM_LIMA
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_DRM_PANFROST
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# disable wireguard support if not enabled
|
|
|
|
|
if [ ! "${WIREGUARD_SUPPORT}" = yes ]; then
|
|
|
|
|
${PKG_BUILD}/scripts/config --disable CONFIG_WIREGUARD
|
|
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ "${TARGET_ARCH}" = "x86_64" ]; then
|
2016-09-19 11:52:51 -07:00
|
|
|
# copy some extra firmware to linux tree
|
2021-01-19 19:33:55 +00:00
|
|
|
mkdir -p ${PKG_BUILD}/external-firmware
|
|
|
|
|
cp -a $(get_build_dir kernel-firmware)/.copied-firmware/{amdgpu,amd-ucode,i915,radeon,e100,rtl_nic} ${PKG_BUILD}/external-firmware
|
2016-09-19 11:52:51 -07:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
cp -a $(get_build_dir intel-ucode)/intel-ucode ${PKG_BUILD}/external-firmware
|
2016-09-19 11:52:51 -07:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
FW_LIST="$(find ${PKG_BUILD}/external-firmware \( -type f -o -type l \) \( -iname '*.bin' -o -iname '*.fw' -o -path '*/intel-ucode/*' \) | sed 's|.*external-firmware/||' | sort | xargs)"
|
2021-02-13 17:13:37 -08:00
|
|
|
|
|
|
|
|
${PKG_BUILD}/scripts/config --set-str CONFIG_EXTRA_FIRMWARE "${FW_LIST}"
|
|
|
|
|
${PKG_BUILD}/scripts/config --set-str CONFIG_EXTRA_FIRMWARE_DIR "external-firmware"
|
2020-11-22 18:30:03 +03:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
elif [ "${TARGET_ARCH}" = "arm" -a "${DEVICE}" = "iMX6" ]; then
|
|
|
|
|
mkdir -p ${PKG_BUILD}/external-firmware/imx/sdma
|
|
|
|
|
cp -a $(get_build_dir firmware-imx)/firmware/sdma/*imx6*.bin ${PKG_BUILD}/external-firmware/imx/sdma
|
|
|
|
|
cp -a $(get_build_dir firmware-imx)/firmware/vpu/*imx6*.bin ${PKG_BUILD}/external-firmware
|
2020-11-22 18:30:03 +03:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
FW_LIST="$(find ${PKG_BUILD}/external-firmware -type f | sed 's|.*external-firmware/||' | sort | xargs)"
|
2021-02-13 17:13:37 -08:00
|
|
|
|
|
|
|
|
${PKG_BUILD}/scripts/config --set-str CONFIG_EXTRA_FIRMWARE "${FW_LIST}"
|
|
|
|
|
${PKG_BUILD}/scripts/config --set-str CONFIG_EXTRA_FIRMWARE_DIR "external-firmware"
|
2016-09-19 11:52:51 -07:00
|
|
|
fi
|
|
|
|
|
|
2022-07-14 12:48:21 +02:00
|
|
|
kernel_make listnewconfig
|
2023-05-29 14:02:50 +00:00
|
|
|
if [ "${INTERACTIVE_CONFIG}" = "yes" ]; then
|
|
|
|
|
# manually answer .config changes
|
|
|
|
|
kernel_make oldconfig
|
|
|
|
|
else
|
|
|
|
|
# accept default answers for .config changes
|
|
|
|
|
yes "" | kernel_make oldconfig > /dev/null
|
|
|
|
|
fi
|
2021-01-26 17:07:20 -08:00
|
|
|
|
|
|
|
|
if [ -f "${DISTRO_DIR}/${DISTRO}/kernel_options" ]; then
|
|
|
|
|
while read OPTION; do
|
|
|
|
|
[ -z "${OPTION}" -o -n "$(echo "${OPTION}" | grep '^#')" ] && continue
|
|
|
|
|
|
|
|
|
|
if [ "${OPTION##*=}" == "n" -a "$(${PKG_BUILD}/scripts/config --state ${OPTION%%=*})" == "undef" ]; then
|
|
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
|
2022-05-03 14:43:50 -07:00
|
|
|
if [ "$(${PKG_BUILD}/scripts/config --state ${OPTION%%=*})" != "$(echo ${OPTION##*=} | tr -d '"')" ]; then
|
2021-01-26 17:07:20 -08:00
|
|
|
MISSING_KERNEL_OPTIONS+="\t${OPTION}\n"
|
|
|
|
|
fi
|
|
|
|
|
done < ${DISTRO_DIR}/${DISTRO}/kernel_options
|
|
|
|
|
|
|
|
|
|
if [ -n "${MISSING_KERNEL_OPTIONS}" ]; then
|
|
|
|
|
print_color CLR_WARNING "LINUX: kernel options not correct: \n${MISSING_KERNEL_OPTIONS%%}\nPlease run ./tools/check_kernel_config\n"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
2013-12-21 08:47:07 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
make_target() {
|
2019-05-17 15:38:30 +02:00
|
|
|
# arm64 target does not support creating uImage.
|
|
|
|
|
# Build Image first, then wrap it using u-boot's mkimage.
|
2021-01-19 19:33:55 +00:00
|
|
|
if [[ "${TARGET_KERNEL_ARCH}" = "arm64" && "${KERNEL_TARGET}" = uImage* ]]; then
|
|
|
|
|
if [ -z "${KERNEL_UIMAGE_LOADADDR}" -o -z "${KERNEL_UIMAGE_ENTRYADDR}" ]; then
|
2019-05-17 15:38:30 +02:00
|
|
|
die "ERROR: KERNEL_UIMAGE_LOADADDR and KERNEL_UIMAGE_ENTRYADDR have to be set to build uImage - aborting"
|
|
|
|
|
fi
|
2021-01-19 19:33:55 +00:00
|
|
|
KERNEL_UIMAGE_TARGET="${KERNEL_TARGET}"
|
2019-05-17 15:38:30 +02:00
|
|
|
KERNEL_TARGET="${KERNEL_TARGET/uImage/Image}"
|
|
|
|
|
fi
|
|
|
|
|
|
2021-02-12 11:37:38 +01:00
|
|
|
DTC_FLAGS=-@ kernel_make ${KERNEL_TARGET} ${KERNEL_MAKE_EXTRACMD} modules
|
2013-12-21 08:47:07 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ "${PKG_BUILD_PERF}" = "yes" ]; then
|
2018-02-05 15:38:18 +01:00
|
|
|
( cd tools/perf
|
2018-02-14 13:37:23 +01:00
|
|
|
|
|
|
|
|
# arch specific perf build args
|
2021-01-19 19:33:55 +00:00
|
|
|
case "${TARGET_ARCH}" in
|
2018-02-14 13:37:23 +01:00
|
|
|
x86_64)
|
|
|
|
|
PERF_BUILD_ARGS="ARCH=x86"
|
|
|
|
|
;;
|
|
|
|
|
aarch64)
|
|
|
|
|
PERF_BUILD_ARGS="ARCH=arm64"
|
|
|
|
|
;;
|
|
|
|
|
*)
|
2021-01-19 19:33:55 +00:00
|
|
|
PERF_BUILD_ARGS="ARCH=${TARGET_ARCH}"
|
2018-02-14 13:37:23 +01:00
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
2018-02-05 15:38:18 +01:00
|
|
|
WERROR=0 \
|
|
|
|
|
NO_LIBPERL=1 \
|
|
|
|
|
NO_LIBPYTHON=1 \
|
|
|
|
|
NO_SLANG=1 \
|
|
|
|
|
NO_GTK2=1 \
|
|
|
|
|
NO_LIBNUMA=1 \
|
|
|
|
|
NO_LIBAUDIT=1 \
|
2023-05-08 09:37:46 +00:00
|
|
|
NO_LIBTRACEEVENT=1 \
|
2018-02-05 15:38:18 +01:00
|
|
|
NO_LZMA=1 \
|
|
|
|
|
NO_SDT=1 \
|
2021-01-19 19:33:55 +00:00
|
|
|
CROSS_COMPILE="${TARGET_PREFIX}" \
|
|
|
|
|
JOBS="${CONCURRENCY_MAKE_LEVEL}" \
|
|
|
|
|
make ${PERF_BUILD_ARGS}
|
|
|
|
|
mkdir -p ${INSTALL}/usr/bin
|
|
|
|
|
cp perf ${INSTALL}/usr/bin
|
2018-02-05 15:38:18 +01:00
|
|
|
)
|
|
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ -n "${KERNEL_UIMAGE_TARGET}" ]; then
|
2019-05-02 10:44:57 +02:00
|
|
|
# determine compression used for kernel image
|
2019-04-17 20:59:58 +02:00
|
|
|
KERNEL_UIMAGE_COMP=${KERNEL_UIMAGE_TARGET:7}
|
2019-05-01 02:05:48 +02:00
|
|
|
KERNEL_UIMAGE_COMP=$(echo ${KERNEL_UIMAGE_COMP:-none} | sed 's/gz/gzip/; s/bz2/bzip2/')
|
2019-05-02 10:44:57 +02:00
|
|
|
|
|
|
|
|
# calculate new load address to make kernel Image unpack to memory area after compressed image
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ "${KERNEL_UIMAGE_COMP}" != "none" ]; then
|
|
|
|
|
COMPRESSED_SIZE=$(stat -t "arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET}" | awk '{print $2}')
|
2019-05-02 10:44:57 +02:00
|
|
|
# align to 1 MiB
|
2021-01-19 19:33:55 +00:00
|
|
|
COMPRESSED_SIZE=$(( ((${COMPRESSED_SIZE} - 1 >> 20) + 1) << 20 ))
|
|
|
|
|
PKG_KERNEL_UIMAGE_LOADADDR=$(printf '%X' "$(( ${KERNEL_UIMAGE_LOADADDR} + ${COMPRESSED_SIZE} ))")
|
|
|
|
|
PKG_KERNEL_UIMAGE_ENTRYADDR=$(printf '%X' "$(( ${KERNEL_UIMAGE_ENTRYADDR} + ${COMPRESSED_SIZE} ))")
|
2019-05-03 23:51:27 +02:00
|
|
|
else
|
|
|
|
|
PKG_KERNEL_UIMAGE_LOADADDR=${KERNEL_UIMAGE_LOADADDR}
|
|
|
|
|
PKG_KERNEL_UIMAGE_ENTRYADDR=${KERNEL_UIMAGE_ENTRYADDR}
|
2019-05-02 10:44:57 +02:00
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
mkimage -A ${TARGET_KERNEL_ARCH} \
|
2019-04-17 20:59:58 +02:00
|
|
|
-O linux \
|
|
|
|
|
-T kernel \
|
2021-01-19 19:33:55 +00:00
|
|
|
-C ${KERNEL_UIMAGE_COMP} \
|
|
|
|
|
-a ${PKG_KERNEL_UIMAGE_LOADADDR} \
|
|
|
|
|
-e ${PKG_KERNEL_UIMAGE_ENTRYADDR} \
|
|
|
|
|
-d arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET} \
|
|
|
|
|
arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_UIMAGE_TARGET}
|
2019-05-04 01:45:52 +02:00
|
|
|
|
|
|
|
|
KERNEL_TARGET="${KERNEL_UIMAGE_TARGET}"
|
2019-04-17 20:59:58 +02:00
|
|
|
fi
|
2013-12-21 08:47:07 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
makeinstall_target() {
|
2021-01-19 19:33:55 +00:00
|
|
|
mkdir -p ${INSTALL}/.image
|
|
|
|
|
cp -p arch/${TARGET_KERNEL_ARCH}/boot/${KERNEL_TARGET} System.map .config Module.symvers ${INSTALL}/.image/
|
2019-11-30 12:31:03 +01:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
kernel_make INSTALL_MOD_PATH=${INSTALL}/$(get_kernel_overlay_dir) modules_install
|
|
|
|
|
rm -f ${INSTALL}/$(get_kernel_overlay_dir)/lib/modules/*/build
|
|
|
|
|
rm -f ${INSTALL}/$(get_kernel_overlay_dir)/lib/modules/*/source
|
2019-05-17 15:38:40 +02:00
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ "${BOOTLOADER}" = "u-boot" ]; then
|
|
|
|
|
mkdir -p ${INSTALL}/usr/share/bootloader
|
2023-07-11 09:57:56 +00:00
|
|
|
for dtb in arch/${TARGET_KERNEL_ARCH}/boot/dts/*.dtb \
|
|
|
|
|
arch/${TARGET_KERNEL_ARCH}/boot/dts/*/*.dtb \
|
|
|
|
|
arch/${TARGET_KERNEL_ARCH}/boot/dts/*/*/*.dtb; do
|
2021-01-19 19:33:55 +00:00
|
|
|
if [ -f ${dtb} ]; then
|
|
|
|
|
cp -v ${dtb} ${INSTALL}/usr/share/bootloader
|
2019-04-25 21:17:43 +02:00
|
|
|
fi
|
|
|
|
|
done
|
2021-01-19 19:33:55 +00:00
|
|
|
elif [ "${BOOTLOADER}" = "bcm2835-bootloader" ]; then
|
2022-06-20 19:32:40 +00:00
|
|
|
# RPi firmware will decompress gzipped kernels prior to booting
|
|
|
|
|
if [ "${TARGET_KERNEL_ARCH}" = "arm64" ]; then
|
|
|
|
|
pigz --best --force ${INSTALL}/.image/${KERNEL_TARGET}
|
|
|
|
|
mv ${INSTALL}/.image/${KERNEL_TARGET}.gz ${INSTALL}/.image/${KERNEL_TARGET}
|
|
|
|
|
fi
|
|
|
|
|
|
2021-01-19 19:33:55 +00:00
|
|
|
mkdir -p ${INSTALL}/usr/share/bootloader/overlays
|
2018-03-08 20:31:03 +00:00
|
|
|
|
|
|
|
|
# install platform dtbs, but remove upstream kernel dtbs (i.e. without downstream
|
|
|
|
|
# drivers and decent USB support) as these are not required by LibreELEC
|
2023-07-11 09:57:56 +00:00
|
|
|
for dtb in arch/${TARGET_KERNEL_ARCH}/boot/dts/*.dtb \
|
|
|
|
|
arch/${TARGET_KERNEL_ARCH}/boot/dts/*/*.dtb \
|
|
|
|
|
arch/${TARGET_KERNEL_ARCH}/boot/dts/*/*/*.dtb; do
|
2021-01-31 06:36:47 +00:00
|
|
|
if [ -f ${dtb} ]; then
|
|
|
|
|
cp -v ${dtb} ${INSTALL}/usr/share/bootloader
|
|
|
|
|
fi
|
|
|
|
|
done
|
2021-01-19 19:33:55 +00:00
|
|
|
rm -f ${INSTALL}/usr/share/bootloader/bcm283*.dtb
|
2021-01-31 06:36:47 +00:00
|
|
|
# duplicated in overlays below
|
|
|
|
|
safe_remove ${INSTALL}/usr/share/bootloader/overlay_map.dtb
|
2018-03-08 20:31:03 +00:00
|
|
|
|
|
|
|
|
# install overlay dtbs
|
2021-01-31 06:36:47 +00:00
|
|
|
for dtb in arch/arm/boot/dts/overlays/*.dtb \
|
|
|
|
|
arch/arm/boot/dts/overlays/*.dtbo; do
|
2021-01-19 19:33:55 +00:00
|
|
|
cp ${dtb} ${INSTALL}/usr/share/bootloader/overlays 2>/dev/null || :
|
2015-01-25 13:50:44 +01:00
|
|
|
done
|
2021-01-19 19:33:55 +00:00
|
|
|
cp -p arch/${TARGET_KERNEL_ARCH}/boot/dts/overlays/README ${INSTALL}/usr/share/bootloader/overlays
|
2014-03-03 13:43:08 +01:00
|
|
|
fi
|
2013-12-21 08:47:07 +01:00
|
|
|
}
|