#!/usr/bin/env bash # # SPDX-License-Identifier: GPL-2.0 # # Copyright (c) 2026 AMLOGIC # # Linux UAPI headers build script for AMLbian # This script installs Linux UAPI headers for different Amlogic chipsets set -e # Get script dir5yyectory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" AMLBIAN_DIR="$(dirname "${SCRIPT_DIR}")" aml_comp_path="$(amlbian_get_aml_comp_dir)" kernel_build_dir="${aml_comp_path}/kernel/aml-${KERNEL_VERSION}/build" STAGING_KERNEL_DIR="${aml_comp_path}/kernel/aml-${KERNEL_VERSION}" function __linux_headers_install { local install_dir="${1}" aml_log info "LINUX-HEADERS" "Starting Linux headers installation..." local aml_comp_path="$(amlbian_get_aml_comp_dir)" if [[ -z "${aml_comp_path}" ]] || [[ ! -d "${aml_comp_path}" ]]; then aml_log error "LINUX-HEADERS" "aml-comp not found: ${aml_comp_path}" exit 1 fi local STAGING_KERNEL_DIR="${aml_comp_path}/kernel/aml-${KERNEL_VERSION}" cp -ar ${STAGING_KERNEL_DIR}/include ${install_dir} cp -ar ${STAGING_KERNEL_DIR}/Makefile ${install_dir} cp -ar ${STAGING_KERNEL_DIR}/scripts ${install_dir} mkdir -p ${install_dir}/arch cp -ar ${STAGING_KERNEL_DIR}/arch/arm64 ${install_dir}/arch cp -ar ${STAGING_KERNEL_DIR}/build/.config ${install_dir} cp -ar ${STAGING_KERNEL_DIR}/build/Module.symvers ${install_dir} find ${STAGING_KERNEL_DIR}/build \( -name '*.o' -o -name '*.cmd' -o -name '*.a' \) -delete cp -ar ${STAGING_KERNEL_DIR}/build/scripts/ ${install_dir}/ cp -ar ${STAGING_KERNEL_DIR}/build/include/ ${install_dir}/ cp -ar ${STAGING_KERNEL_DIR}/build/arch/arm64/include/ ${install_dir}/arch/arm64/ mkdir -p ${install_dir}/common_drivers cp -ar ${STAGING_KERNEL_DIR}/common_drivers/include ${install_dir}/common_drivers # find ${STAGING_KERNEL_DIR}/common_drivers -name '*.h' -exec cp --parents {} ${install_dir} \; display_alert "LINUX-HEADERS" "Installation completed" "success" return 0 } function __linux_headers_create_deb { local build_dir="${1}" local install_dir="${2}" # 设置必要的变量 local pkg_name="linux-headers" local version="${DEB_VERSION}" local architecture="${ARCH:-arm64}" local maintainer="Amlbian Builder " local description="Linux headers for kernel ${KERNEL_VERSION}" aml_log info "LINUX-HEADERS" "Creating Debian package for ${pkg_name} ${version}..." # 创建Debian包控制文件 local deb_dir="${build_dir}/deb/${pkg_name}-${version}" local debian_dir="${deb_dir}/DEBIAN" mkdir -p "${debian_dir}" # 将安装目录的内容复制到debian-root if [[ -d "${install_dir}" ]] && [[ "$(ls -A "${install_dir}")" ]]; then cp -a "${install_dir}"/. "${deb_dir}/" 2>/dev/null || true aml_log debug "LINUX-HEADERS" "Copied installed files to ${deb_dir}" else aml_log error "LINUX-HEADERS" "No installed files found in ${install_dir}" return 1 fi # 创建control文件 cat > "${debian_dir}/control" <