Update source to Armbian-dev-202610.A311Y3
This commit is contained in:
@@ -14,28 +14,27 @@ set -e
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
AMLBIAN_DIR="$(dirname "$(dirname "${SCRIPT_DIR}")")"
|
||||
BASE_DIR="$(dirname "$(dirname "${AMLBIAN_DIR}")")"
|
||||
MODULE_BUILD_DIR="${SRC}/output/.tmp"
|
||||
|
||||
# Determine chipset based on BOARD variable
|
||||
if [[ "${BOARD}" == *"a9"* ]]; then
|
||||
ISP_CHIPSET="a9"
|
||||
elif [[ "${BOARD}" == *"s6"* ]]; then
|
||||
ISP_CHIPSET="s6"
|
||||
elif [[ "${BOARD}" == *"c5"* ]]; then
|
||||
ISP_CHIPSET="c5"
|
||||
else
|
||||
ISP_CHIPSET="${ISP_CHIPSET:-s6}"
|
||||
fi
|
||||
|
||||
# Source common functions
|
||||
if [[ -f "${AMLBIAN_DIR}/lib/function-common.sh" ]]; then
|
||||
source "${AMLBIAN_DIR}/lib/function-common.sh"
|
||||
fi
|
||||
|
||||
# Source libisp build script if it exists
|
||||
LIBISP_SCRIPT="${SCRIPT_DIR}/build-libisp.sh"
|
||||
if [[ -f "${LIBISP_SCRIPT}" ]]; then
|
||||
display_alert "Loading libisp build script" "${LIBISP_SCRIPT}" "info"
|
||||
aml_log debug "Loading libisp build script" "${LIBISP_SCRIPT}"
|
||||
source "${LIBISP_SCRIPT}"
|
||||
else
|
||||
display_alert "Libisp build script not found" "${LIBISP_SCRIPT}" "warn"
|
||||
aml_log warn "Libisp build script not found" "${LIBISP_SCRIPT}"
|
||||
fi
|
||||
# ==============================================================================
|
||||
# Shared Helper Functions
|
||||
@@ -65,14 +64,14 @@ function _isp_init_package_info() {
|
||||
|
||||
# Check if source exists
|
||||
if [[ ! -d "${SRC_DIR}" ]]; then
|
||||
display_alert "COMPILE-ISP" "ISP driver source code not found. Expected at: ${SRC_DIR}" "err"
|
||||
aml_log error "COMPILE-ISP" "ISP driver source code not found. Expected at: ${SRC_DIR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
display_alert "COMPILE-ISP" "Building Amlogic ISP driver for ${chipset}" "info"
|
||||
display_alert "COMPILE-ISP" "Version: ${PKG_VERSION}, Architecture: ${PKG_ARCH}" "info"
|
||||
display_alert "COMPILE-ISP" "Cross compilation toolchain: ${CROSS_COMPILE}" "info"
|
||||
display_alert "COMPILE-ISP" "Building for kernel: ${KERNEL_VERSION}" "info"
|
||||
aml_log info "COMPILE-ISP" "Building Amlogic ISP driver for ${chipset}"
|
||||
aml_log info "COMPILE-ISP" "Version: ${PKG_VERSION}, Architecture: ${PKG_ARCH}"
|
||||
aml_log info "COMPILE-ISP" "Cross compilation toolchain: ${CROSS_COMPILE}"
|
||||
aml_log info "COMPILE-ISP" "Building for kernel: ${KERNEL_VERSION}"
|
||||
|
||||
# Return values
|
||||
_ISP_CHIPSET="${chipset}"
|
||||
@@ -91,16 +90,15 @@ function _isp_init_package_info() {
|
||||
# Create layered build directory structure
|
||||
# Parameters:
|
||||
# $1 - base name (e.g. "${PKG_NAME}_${PKG_VERSION}_${PKG_ARCH}")
|
||||
# Sets: TMP_DIR, BASE_BUILD_DIR, SOURCE_DIR, BUILD_DIR, INSTALL_DIR, PATCH_DIR,
|
||||
# Sets: MODULE_BUILD_DIR, BASE_BUILD_DIR, SOURCE_DIR, BUILD_DIR, INSTALL_DIR, PATCH_DIR,
|
||||
# DEB_PACKAGE_DIR, DEBIAN_DIR
|
||||
function _isp_create_build_dirs() {
|
||||
local base_name="$1"
|
||||
|
||||
TMP_DIR="${AMLBIAN_DIR}/.tmp"
|
||||
mkdir -p "${TMP_DIR}"
|
||||
mkdir -p "${MODULE_BUILD_DIR}"
|
||||
|
||||
# 基础构建目录
|
||||
BASE_BUILD_DIR="${TMP_DIR}/${base_name}"
|
||||
BASE_BUILD_DIR="${MODULE_BUILD_DIR}/${base_name}"
|
||||
|
||||
rm -rf ${BASE_BUILD_DIR}
|
||||
# 分层目录
|
||||
@@ -144,12 +142,12 @@ function _isp_create_install_dirs() {
|
||||
# $1 - log prefix
|
||||
function _isp_display_build_info() {
|
||||
local log_prefix="$1"
|
||||
display_alert "${log_prefix} Source dir: ${SOURCE_DIR}" "info"
|
||||
display_alert "${log_prefix} Build dir: ${BUILD_DIR}" "info"
|
||||
display_alert "${log_prefix} Install dir: ${INSTALL_DIR}" "info"
|
||||
display_alert "${log_prefix} Patch dir: ${PATCH_DIR}" "info"
|
||||
display_alert "${log_prefix} Deb package dir: ${DEB_PACKAGE_DIR}" "info"
|
||||
display_alert "${log_prefix} Build log: ${BUILD_LOG}" "info"
|
||||
aml_log debug "${log_prefix} Source dir: ${SOURCE_DIR}"
|
||||
aml_log debug "${log_prefix} Build dir: ${BUILD_DIR}"
|
||||
aml_log debug "${log_prefix} Install dir: ${INSTALL_DIR}"
|
||||
aml_log debug "${log_prefix} Patch dir: ${PATCH_DIR}"
|
||||
aml_log debug "${log_prefix} Deb package dir: ${DEB_PACKAGE_DIR}"
|
||||
aml_log debug "${log_prefix} Build log: ${BUILD_LOG}"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@@ -178,7 +176,7 @@ function _isp_create_control_file() {
|
||||
local provides="${8:-}"
|
||||
local section="${9:-kernel}"
|
||||
|
||||
display_alert "COMPILE-ISP Creating control file DEBIAN/control" "info"
|
||||
aml_log info "COMPILE-ISP Creating control file DEBIAN/control"
|
||||
cat > "${DEBIAN_DIR}/control" <<EOF
|
||||
Package: ${pkg_name}
|
||||
Version: ${pkg_version}
|
||||
@@ -196,7 +194,7 @@ EOF
|
||||
|
||||
# Create postinst script for ISP driver
|
||||
function _isp_create_postinst() {
|
||||
display_alert "COMPILE-ISP Creating post-installation script DEBIAN/postinst" "info"
|
||||
aml_log debug "COMPILE-ISP Creating post-installation script DEBIAN/postinst"
|
||||
cat > "${DEBIAN_DIR}/postinst" << EOF
|
||||
#!/bin/bash
|
||||
set -e
|
||||
@@ -217,7 +215,7 @@ EOF
|
||||
|
||||
# Create prerm script for ISP driver
|
||||
function _isp_create_prerm() {
|
||||
display_alert "COMPILE-ISP Creating pre-removal script DEBIAN/prerm" "info"
|
||||
aml_log info "COMPILE-ISP Creating pre-removal script DEBIAN/prerm"
|
||||
cat > "${DEBIAN_DIR}/prerm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
@@ -233,7 +231,7 @@ EOF
|
||||
|
||||
# Copy ISP source files to source directory
|
||||
function _isp_copy_source_files() {
|
||||
display_alert "COMPILE-ISP Copying source files to source directory" "info"
|
||||
aml_log debug "COMPILE-ISP Copying source files to source directory"
|
||||
echo "Copying source files to source directory at $(date)" >> "${BUILD_LOG}"
|
||||
cp -r "${_ISP_SRC_DIR}/"* "${SOURCE_DIR}/" 2>&1 >> "${BUILD_LOG}"
|
||||
|
||||
@@ -250,7 +248,7 @@ function _isp_copy_source_files() {
|
||||
|
||||
# Check for kernel headers
|
||||
if [[ ! -d "${KERNELDIR}" ]]; then
|
||||
display_alert "COMPILE-ISP" "Kernel headers directory not found at: ${KERNELDIR}" "err"
|
||||
aml_log error "COMPILE-ISP" "Kernel headers directory not found at: ${KERNELDIR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -271,20 +269,20 @@ function _isp_build_s6() {
|
||||
|
||||
# Check for CSI camera directory (S6 specific)
|
||||
if [[ ! -d "${SRC_DIR}/csi_cam" ]]; then
|
||||
display_alert "COMPILE-ISP" "CSI camera source not found at: ${SRC_DIR}/csi_cam" "err"
|
||||
aml_log error "COMPILE-ISP" "CSI camera source not found at: ${SRC_DIR}/csi_cam"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
display_alert "COMPILE-ISP" "Building CSI camera driver for S6" "info"
|
||||
aml_log info "COMPILE-ISP" "Building CSI camera driver for S6"
|
||||
|
||||
# Create symbolic link
|
||||
ln -sf "${SRC_DIR}/csi_cam" "${KERNELDIR}/${EXT_DRIVER_DIR}/"
|
||||
|
||||
# Build kernel module
|
||||
display_alert "COMPILE-ISP" "Compiling kernel module with parameters:" "info"
|
||||
display_alert "COMPILE-ISP" " ARCH=${_ISP_ARCH}" "info"
|
||||
display_alert "COMPILE-ISP" " CROSS_COMPILE=${_ISP_CROSS_COMPILE}" "info"
|
||||
display_alert "COMPILE-ISP" " KERNEL_SRC=${KERNELDIR}" "info"
|
||||
aml_log info "COMPILE-ISP" "Compiling kernel module with parameters:"
|
||||
aml_log info "COMPILE-ISP" " ARCH=${_ISP_ARCH}"
|
||||
aml_log info "COMPILE-ISP" " CROSS_COMPILE=${_ISP_CROSS_COMPILE}"
|
||||
aml_log info "COMPILE-ISP" " KERNEL_SRC=${KERNELDIR}"
|
||||
|
||||
make -C "${KERNELDIR}/build" \
|
||||
M="${SRC_DIR}/csi_cam/driver/" \
|
||||
@@ -297,20 +295,20 @@ function _isp_build_s6() {
|
||||
|
||||
# Check if module was built successfully
|
||||
if [[ -f "${SRC_DIR}/csi_cam/driver/amlsens/amlsens.ko" ]]; then
|
||||
display_alert "COMPILE-ISP" "ISP module built successfully: amlsens.ko" "info"
|
||||
aml_log info "COMPILE-ISP" "ISP module built successfully: amlsens.ko"
|
||||
|
||||
# 在BUILD_DIR中保存编译结果(备份)
|
||||
BUILD_MODULE_DIR="${BUILD_DIR}/modules"
|
||||
mkdir -p "${BUILD_MODULE_DIR}"
|
||||
display_alert "COMPILE-ISP" "Saving build result to build directory: ${BUILD_MODULE_DIR}" "info"
|
||||
aml_log debug "COMPILE-ISP" "Saving build result to build directory: ${BUILD_MODULE_DIR}"
|
||||
cp -f "${SRC_DIR}/csi_cam/driver/amlsens/amlsens.ko" "${BUILD_MODULE_DIR}/"
|
||||
|
||||
# Install module to install directory
|
||||
display_alert "COMPILE-ISP" "Installing module to install directory: ${MODULE_DIR}" "info"
|
||||
aml_log debug "COMPILE-ISP" "Installing module to install directory: ${MODULE_DIR}"
|
||||
install -m 0666 "${SRC_DIR}/csi_cam/driver/amlsens/amlsens.ko" "${MODULE_DIR}/"
|
||||
|
||||
# Clean build directory
|
||||
display_alert "COMPILE-ISP" "Cleaning build directory" "info"
|
||||
aml_log debug "COMPILE-ISP" "Cleaning build directory"
|
||||
make -C "${KERNELDIR}/build" \
|
||||
M="${SRC_DIR}/csi_cam/driver/" \
|
||||
KERNEL_SRC="${KERNELDIR}" \
|
||||
@@ -318,7 +316,7 @@ function _isp_build_s6() {
|
||||
CROSS_COMPILE="${_ISP_CROSS_COMPILE}" \
|
||||
clean
|
||||
else
|
||||
display_alert "COMPILE-ISP" "ISP module build failed. Could not find amlsens.ko" "err"
|
||||
aml_log error "COMPILE-ISP" "ISP module build failed. Could not find amlsens.ko"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@@ -347,23 +345,23 @@ function _isp_build_a9() {
|
||||
|
||||
# Check for A9 ISP directory
|
||||
if [[ ! -d "${SRC_DIR}/aml_isp5" ]]; then
|
||||
display_alert "COMPILE-ISP" "A9 ISP source not found at: ${SRC_DIR}/aml_isp5" "warn"
|
||||
display_alert "COMPILE-ISP" "Skipping A9 build (source not available)" "warn"
|
||||
display_alert "COMPILE-ISP" "A9 build skipped - source not available" "info"
|
||||
aml_log warn "COMPILE-ISP" "A9 ISP source not found at: ${SRC_DIR}/aml_isp5"
|
||||
aml_log warn "COMPILE-ISP" "Skipping A9 build (source not available)"
|
||||
aml_log info "COMPILE-ISP" "A9 build skipped - source not available"
|
||||
return 0
|
||||
fi
|
||||
|
||||
display_alert "COMPILE-ISP" "Building A9 ISP driver" "info"
|
||||
aml_log info "COMPILE-ISP" "Building A9 ISP driver"
|
||||
|
||||
# Create symbolic link
|
||||
ln -sf "${SRC_DIR}/aml_isp5" "${KERNELDIR}/${EXT_DRIVER_DIR}/"
|
||||
|
||||
# Build kernel modules (multiple modules for A9)
|
||||
display_alert "COMPILE-ISP" "Compiling A9 ISP kernel modules" "info"
|
||||
display_alert "COMPILE-ISP" "KERNEL_SRC=${KERNELDIR}" "info"
|
||||
aml_log info "COMPILE-ISP" "Compiling A9 ISP kernel modules"
|
||||
aml_log info "COMPILE-ISP" "KERNEL_SRC=${KERNELDIR}"
|
||||
|
||||
# Build aml-isp5-adap.ko
|
||||
display_alert "COMPILE-ISP" "Building aml-isp5-adap module" "info"
|
||||
aml_log info "COMPILE-ISP" "Building aml-isp5-adap module"
|
||||
DRV_SRC_OBJ=$(_isp_drv_src_obj "${SRC_DIR}/aml_isp5/driver/adap")
|
||||
make -C "${KERNELDIR}/build" \
|
||||
M="${SRC_DIR}/aml_isp5/driver/adap" \
|
||||
@@ -373,7 +371,7 @@ function _isp_build_a9() {
|
||||
CROSS_COMPILE="${_ISP_CROSS_COMPILE}"
|
||||
|
||||
# Build aml-isp5-csi.ko
|
||||
display_alert "COMPILE-ISP" "Building aml-isp5-csi module" "info"
|
||||
aml_log info "COMPILE-ISP" "Building aml-isp5-csi module"
|
||||
DRV_SRC_OBJ=$(_isp_drv_src_obj "${SRC_DIR}/aml_isp5/driver/csi2")
|
||||
make -C "${KERNELDIR}/build" \
|
||||
M="${SRC_DIR}/aml_isp5/driver/csi2" \
|
||||
@@ -383,7 +381,7 @@ function _isp_build_a9() {
|
||||
CROSS_COMPILE="${_ISP_CROSS_COMPILE}"
|
||||
|
||||
# Build aml-isp5.ko
|
||||
display_alert "COMPILE-ISP" "Building aml-isp5 module" "info"
|
||||
aml_log info "COMPILE-ISP" "Building aml-isp5 module"
|
||||
DRV_SRC_OBJ=$(_isp_drv_src_obj "${SRC_DIR}/aml_isp5/driver/isp5")
|
||||
make -C "${KERNELDIR}/build" \
|
||||
M="${SRC_DIR}/aml_isp5/driver/isp5" \
|
||||
@@ -393,7 +391,7 @@ function _isp_build_a9() {
|
||||
CROSS_COMPILE="${_ISP_CROSS_COMPILE}"
|
||||
|
||||
# Build aml-imx290.ko
|
||||
display_alert "COMPILE-ISP" "Building sensor module" "info"
|
||||
aml_log info "COMPILE-ISP" "Building sensor module"
|
||||
DRV_SRC_OBJ=$(_isp_drv_src_obj "${SRC_DIR}/aml_isp5/driver/sensor")
|
||||
make -C "${KERNELDIR}/build" \
|
||||
M="${SRC_DIR}/aml_isp5/driver/sensor" \
|
||||
@@ -430,6 +428,16 @@ function _isp_build_a9() {
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_isp5/driver/sensor/aml-imx415.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_isp5/driver/sensor/aml-ov08a10.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_isp5/driver/sensor/aml-ov08a10.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_isp5/driver/sensor/aml-imx585.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_isp5/driver/sensor/aml-imx585.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
# Clean each module directory
|
||||
make -C "${KERNELDIR}/build" \
|
||||
@@ -461,6 +469,72 @@ function _isp_build_a9() {
|
||||
clean
|
||||
}
|
||||
|
||||
# Build C5 ISP driver
|
||||
function _isp_build_c5() {
|
||||
local SRC_DIR="${_ISP_SRC_DIR}"
|
||||
local KERNELDIR="${KERNELDIR}"
|
||||
local MODULE_DIR="${MODULE_DIR}"
|
||||
local BUILD_DIR="${BUILD_DIR}"
|
||||
|
||||
# Check for A9 ISP directory
|
||||
if [[ ! -d "${SRC_DIR}/aml_c5_isp5" ]]; then
|
||||
aml_log warn "COMPILE-ISP" "C5 ISP source not found at: ${SRC_DIR}/aml_c5_isp5"
|
||||
aml_log warn "COMPILE-ISP" "Skipping C5 build (source not available)"
|
||||
aml_log info "COMPILE-ISP" "C5 build skipped - source not available"
|
||||
return 0
|
||||
fi
|
||||
|
||||
aml_log info "COMPILE-ISP" "Building C5 ISP driver"
|
||||
|
||||
# Create symbolic link
|
||||
ln -sf "${SRC_DIR}/aml_c5_isp5" "${KERNELDIR}/${EXT_DRIVER_DIR}/"
|
||||
|
||||
# Build kernel modules (multiple modules for A9)
|
||||
aml_log info "COMPILE-ISP" "Compiling C5 ISP kernel modules"
|
||||
aml_log info "COMPILE-ISP" "KERNEL_SRC=${KERNELDIR}"
|
||||
|
||||
# Build aml-c5-isp csi, adap, isp and sensor
|
||||
aml_log info "COMPILE-ISP" "Building aml-c5-isp5 module"
|
||||
make -C ${SRC_DIR}/aml_c5_isp5/driver \
|
||||
KERNEL_SRC="${KERNELDIR}/build" \
|
||||
ARCH="${_ISP_ARCH}" \
|
||||
CROSS_COMPILE="${_ISP_CROSS_COMPILE}"
|
||||
|
||||
# Remove symbolic link
|
||||
rm "${KERNELDIR}/${EXT_DRIVER_DIR}/aml_c5_isp5"
|
||||
|
||||
# Check if modules were built successfully
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/driver/adap/c5-adap.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_c5_isp5/driver/adap/c5-adap.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/driver/csi2/c5-csi.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_c5_isp5/driver/csi2/c5-csi.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/driver/isp5/c5-isp.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_c5_isp5/driver/isp5/c5-isp.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/driver/sensor/imx290/imx290.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_c5_isp5/driver/sensor/imx290/imx290.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/driver/sensor/imx415/imx415.ko" ]]; then
|
||||
# Install module
|
||||
install -m 0666 "${SRC_DIR}/aml_c5_isp5/driver/sensor/imx415/imx415.ko" "${MODULE_DIR}/"
|
||||
fi
|
||||
|
||||
make -C ${SRC_DIR}/aml_c5_isp5/driver \
|
||||
KERNEL_SRC="${KERNELDIR}/build" \
|
||||
ARCH="${_ISP_ARCH}" \
|
||||
CROSS_COMPILE="${_ISP_CROSS_COMPILE}" \
|
||||
clean
|
||||
}
|
||||
# ------------------------------------------------------------------------------
|
||||
# Step 6: Debian Package Building
|
||||
# ------------------------------------------------------------------------------
|
||||
@@ -475,17 +549,17 @@ function _isp_build_deb_package() {
|
||||
local output_deb_name="$2"
|
||||
|
||||
# 将install目录内容拷贝到deb目录
|
||||
display_alert "Copying install directory to deb package directory ${log_prefix}" "info"
|
||||
aml_log debug "Copying install directory to deb package directory ${log_prefix}"
|
||||
echo "Copying install directory to deb package directory at $(date)" >> "${BUILD_LOG}"
|
||||
cp -r "${INSTALL_DIR}/"* "${DEB_PACKAGE_DIR}/" 2>&1 >> "${BUILD_LOG}"
|
||||
|
||||
# 基于deb目录打包
|
||||
display_alert "Building Debian package from deb directory ${log_prefix}" "info"
|
||||
aml_log info "Building Debian package from deb directory ${log_prefix}"
|
||||
echo "Building Debian package at $(date)" >> "${BUILD_LOG}"
|
||||
dpkg-deb --build "${DEB_PACKAGE_DIR}" 2>&1 >> "${BUILD_LOG}"
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
display_alert "${log_prefix} Package build failed" "error"
|
||||
aml_log error "${log_prefix} Package build failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -494,8 +568,8 @@ function _isp_build_deb_package() {
|
||||
mkdir -p "$(dirname "${OUTPUT_DEB}")"
|
||||
mv "${DEB_PACKAGE_DIR}.deb" "${OUTPUT_DEB}"
|
||||
|
||||
display_alert "${log_prefix} Package built successfully ${output_deb_name}" "info"
|
||||
display_alert "${log_prefix} Build directory preserved ${BASE_BUILD_DIR}" "info"
|
||||
aml_log info "${log_prefix} Package built successfully ${output_deb_name}"
|
||||
aml_log debug "${log_prefix} Build directory preserved ${BASE_BUILD_DIR}"
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
@@ -524,7 +598,7 @@ function amlbian_build_isp_driver() {
|
||||
_isp_create_install_dirs
|
||||
|
||||
# Display info
|
||||
display_alert "COMPILE-ISP Building ISP driver package version ${_ISP_PKG_VERSION} for ${_ISP_ARCH} (${chipset})" "info"
|
||||
aml_log info "COMPILE-ISP Building ISP driver package version ${_ISP_PKG_VERSION} for ${_ISP_ARCH} (${chipset})"
|
||||
_isp_display_build_info "COMPILE-ISP"
|
||||
|
||||
# ---- Step 3: Debian Packaging Scripts ----
|
||||
@@ -543,19 +617,21 @@ function amlbian_build_isp_driver() {
|
||||
_isp_build_s6
|
||||
elif [[ "${chipset}" == "a9" ]]; then
|
||||
_isp_build_a9
|
||||
elif [[ "${chipset}" == "c5" ]]; then
|
||||
_isp_build_c5
|
||||
else
|
||||
display_alert "COMPILE-ISP" "Unsupported chipset: ${chipset}" "err"
|
||||
aml_log error "COMPILE-ISP" "Unsupported chipset: ${chipset}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ---- Step 6: Build Debian Package ----
|
||||
_isp_build_deb_package "COMPILE-ISP" "${_ISP_PKG_NAME}_${_ISP_PKG_VERSION}_${_ISP_ARCH}.deb"
|
||||
|
||||
display_alert "COMPILE-ISP Build directories preserved:" "info"
|
||||
display_alert "COMPILE-ISP Source: ${SOURCE_DIR}" "info"
|
||||
display_alert "COMPILE-ISP Build: ${BUILD_DIR}" "info"
|
||||
display_alert "COMPILE-ISP Install: ${INSTALL_DIR}" "info"
|
||||
display_alert "COMPILE-ISP ISP driver build for ${chipset} completed successfully" "info"
|
||||
aml_log debug "COMPILE-ISP Build directories preserved:"
|
||||
aml_log debug "COMPILE-ISP Source: ${SOURCE_DIR}"
|
||||
aml_log debug "COMPILE-ISP Build: ${BUILD_DIR}"
|
||||
aml_log debug "COMPILE-ISP Install: ${INSTALL_DIR}"
|
||||
aml_log debug "COMPILE-ISP ISP driver build for ${chipset} completed successfully"
|
||||
|
||||
return 0
|
||||
}
|
||||
@@ -570,6 +646,6 @@ function amlbian_build_isp() {
|
||||
}
|
||||
|
||||
# Main entry point
|
||||
display_alert "AMLbian ISP Build Script" "Version: ${_ISP_PKG_VERSION:-6.12} CHIPSET: ${ISP_CHIPSET}, ARCH: ${_ISP_ARCH:-arm64}" "info"
|
||||
aml_log info "AMLbian ISP Build Script" "Version: ${_ISP_PKG_VERSION:-6.12} CHIPSET: ${ISP_CHIPSET}, ARCH: ${_ISP_ARCH:-arm64}"
|
||||
amlbian_build_isp
|
||||
display_alert "AMLOGIC: ISP build completed" "${OUTPUT_DEB}" "info"
|
||||
aml_log info "AMLOGIC: ISP build completed" "${OUTPUT_DEB}"
|
||||
|
||||
@@ -14,20 +14,19 @@ set -e
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
AMLBIAN_DIR="$(dirname "$(dirname "${SCRIPT_DIR}")")"
|
||||
BASE_DIR="$(dirname "$(dirname "${AMLBIAN_DIR}")")"
|
||||
MODULE_BUILD_DIR="${SRC}/output/.tmp"
|
||||
|
||||
# Determine chipset based on BOARD variable
|
||||
if [[ "${BOARD}" == *"a9"* ]]; then
|
||||
LIBISP_CHIPSET="a9"
|
||||
elif [[ "${BOARD}" == *"s6"* ]]; then
|
||||
LIBISP_CHIPSET="s6"
|
||||
elif [[ "${BOARD}" == *"c5"* ]]; then
|
||||
LIBISP_CHIPSET="c5"
|
||||
else
|
||||
LIBISP_CHIPSET="${LIBISP_CHIPSET:-s6}"
|
||||
fi
|
||||
|
||||
# Source common functions
|
||||
if [[ -f "${AMLBIAN_DIR}/lib/function-common.sh" ]]; then
|
||||
source "${AMLBIAN_DIR}/lib/function-common.sh"
|
||||
fi
|
||||
|
||||
# ==============================================================================
|
||||
# Shared Helper Functions
|
||||
@@ -58,20 +57,20 @@ function _libisp_init_package_info() {
|
||||
|
||||
# Check if source exists
|
||||
if [[ ! -d "${SRC_DIR}" ]]; then
|
||||
display_alert "COMPILE-LIBISP" "LibISP source code not found. Expected at: ${SRC_DIR}" "err"
|
||||
aml_log error "COMPILE-LIBISP" "LibISP source code not found. Expected at: ${SRC_DIR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for v4l2_test source directory (common for all platforms)
|
||||
if [[ ! -d "${SRC_DIR}/app/v4l2_test_arm" ]]; then
|
||||
display_alert "COMPILE-LIBISP" "v4l2_test source directory not found at: ${SRC_DIR}/app/v4l2_test_arm" "err"
|
||||
aml_log error "COMPILE-LIBISP" "v4l2_test source directory not found at: ${SRC_DIR}/app/v4l2_test_arm"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
display_alert "COMPILE-LIBISP" "Building Amlogic LibISP user-space libraries for ${chipset}" "info"
|
||||
display_alert "COMPILE-LIBISP" "Version: ${PKG_VERSION}, Architecture: ${PKG_ARCH}" "info"
|
||||
display_alert "COMPILE-LIBISP" "Cross compilation toolchain: ${CROSS_COMPILE}" "info"
|
||||
display_alert "COMPILE-LIBISP" "Building for kernel: ${KERNEL_VERSION}" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Building Amlogic LibISP user-space libraries for ${chipset}"
|
||||
aml_log info "COMPILE-LIBISP" "Version: ${PKG_VERSION}, Architecture: ${PKG_ARCH}"
|
||||
aml_log info "COMPILE-LIBISP" "Cross compilation toolchain: ${CROSS_COMPILE}"
|
||||
aml_log info "COMPILE-LIBISP" "Building for kernel: ${KERNEL_VERSION}"
|
||||
|
||||
# Return values
|
||||
_LIBISP_CHIPSET="${chipset}"
|
||||
@@ -91,17 +90,17 @@ function _libisp_init_package_info() {
|
||||
# Create layered build directory structure
|
||||
# Parameters:
|
||||
# $1 - base name (e.g. "${PKG_NAME}_${PKG_VERSION}_${PKG_ARCH}")
|
||||
# Sets: TMP_DIR, BASE_BUILD_DIR, SOURCE_DIR, BUILD_DIR, INSTALL_DIR, PATCH_DIR,
|
||||
# Sets: MODULE_BUILD_DIR, BASE_BUILD_DIR, SOURCE_DIR, BUILD_DIR, INSTALL_DIR, PATCH_DIR,
|
||||
# DEB_PACKAGE_DIR, DEBIAN_DIR
|
||||
function _libisp_create_build_dirs() {
|
||||
local base_name="$1"
|
||||
|
||||
display_alert "COMPILE-LIBISP" "base_name ${base_name}" "info"
|
||||
TMP_DIR="${AMLBIAN_DIR}/.tmp"
|
||||
mkdir -p "${TMP_DIR}"
|
||||
aml_log debug "COMPILE-LIBISP" "base_name ${base_name}"
|
||||
|
||||
mkdir -p "${MODULE_BUILD_DIR}"
|
||||
|
||||
# 基础构建目录
|
||||
BASE_BUILD_DIR="${TMP_DIR}/${base_name}"
|
||||
BASE_BUILD_DIR="${MODULE_BUILD_DIR}/${base_name}"
|
||||
|
||||
rm -rf ${BASE_BUILD_DIR}
|
||||
# 分层目录
|
||||
@@ -143,12 +142,12 @@ function _libisp_create_build_dirs() {
|
||||
# $1 - log prefix
|
||||
function _libisp_display_build_info() {
|
||||
local log_prefix="$1"
|
||||
display_alert "${log_prefix} Source dir: ${SOURCE_DIR}" "info"
|
||||
display_alert "${log_prefix} Build dir: ${BUILD_DIR}" "info"
|
||||
display_alert "${log_prefix} Install dir: ${INSTALL_DIR}" "info"
|
||||
display_alert "${log_prefix} Patch dir: ${PATCH_DIR}" "info"
|
||||
display_alert "${log_prefix} Deb package dir: ${DEB_PACKAGE_DIR}" "info"
|
||||
display_alert "${log_prefix} Build log: ${BUILD_LOG}" "info"
|
||||
aml_log debug "${log_prefix} Source dir: ${SOURCE_DIR}"
|
||||
aml_log debug "${log_prefix} Build dir: ${BUILD_DIR}"
|
||||
aml_log debug "${log_prefix} Install dir: ${INSTALL_DIR}"
|
||||
aml_log debug "${log_prefix} Patch dir: ${PATCH_DIR}"
|
||||
aml_log debug "${log_prefix} Deb package dir: ${DEB_PACKAGE_DIR}"
|
||||
aml_log debug "${log_prefix} Build log: ${BUILD_LOG}"
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
@@ -177,7 +176,7 @@ function _libisp_create_control_file() {
|
||||
local provides="${8:-}"
|
||||
local section="${9:-multimedia}"
|
||||
|
||||
display_alert "COMPILE-LIBISP Creating control file DEBIAN/control DEBIAN_DIR $DEBIAN_DIR" "info"
|
||||
aml_log info "COMPILE-LIBISP Creating control file DEBIAN/control DEBIAN_DIR $DEBIAN_DIR"
|
||||
cat > "${DEBIAN_DIR}/control" <<EOF
|
||||
Package: ${pkg_name}
|
||||
Version: ${pkg_version}
|
||||
@@ -196,7 +195,7 @@ EOF
|
||||
|
||||
# Create postinst script for LibISP
|
||||
function _libisp_create_postinst() {
|
||||
display_alert "COMPILE-LIBISP Creating post-installation script DEBIAN/postinst" "info"
|
||||
aml_log debug "COMPILE-LIBISP Creating post-installation script DEBIAN/postinst"
|
||||
cat > "${DEBIAN_DIR}/postinst" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
@@ -225,7 +224,7 @@ EOF
|
||||
|
||||
# Create prerm script for LibISP
|
||||
function _libisp_create_prerm() {
|
||||
display_alert "COMPILE-LIBISP Creating pre-removal script DEBIAN/prerm" "info"
|
||||
aml_log debug "COMPILE-LIBISP Creating pre-removal script DEBIAN/prerm"
|
||||
cat > "${DEBIAN_DIR}/prerm" << 'EOF'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
@@ -247,7 +246,7 @@ EOF
|
||||
|
||||
# Copy LibISP source files to source directory
|
||||
function _libisp_copy_source_files() {
|
||||
display_alert "COMPILE-LIBISP Copying source files to source directory" "info"
|
||||
aml_log debug "COMPILE-LIBISP Copying source files to source directory"
|
||||
echo "Copying source files to source directory at $(date)" >> "${BUILD_LOG}"
|
||||
cp -r "${_LIBISP_SRC_DIR}/"* "${SOURCE_DIR}/" 2>&1 >> "${BUILD_LOG}"
|
||||
|
||||
@@ -272,29 +271,29 @@ function _libisp_build_v4l2_test() {
|
||||
local BUILD_DIR="${BUILD_DIR}"
|
||||
local INSTALL_DIR="${INSTALL_DIR}"
|
||||
|
||||
display_alert "COMPILE-LIBISP" "Building v4l2_test application (common)" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Building v4l2_test application (common)"
|
||||
|
||||
cd "${SRC_DIR}/app/v4l2_test_arm"
|
||||
|
||||
# Clean and build
|
||||
display_alert "COMPILE-LIBISP" "Cleaning build directory" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Cleaning build directory"
|
||||
make clean 2>/dev/null || true
|
||||
|
||||
display_alert "COMPILE-LIBISP" "Compiling v4l2_test application ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE}" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Compiling v4l2_test application ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE}"
|
||||
# export CC="${CC:-${CROSS_COMPILE}gcc}"
|
||||
make OUT_DIR="${BUILD_DIR}/app/v4l2_test_arm" ARM_TARGET="lib" ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}"
|
||||
|
||||
# Check if application was built successfully
|
||||
if [[ -f "${BUILD_DIR}/app/v4l2_test_arm/v4l2_test" ]]; then
|
||||
# 在BUILD_DIR中保存编译结果(备份)
|
||||
display_alert "COMPILE-LIBISP" "Saving build result to build directory" "info"
|
||||
aml_log debug "COMPILE-LIBISP" "Saving build result to build directory"
|
||||
|
||||
# 安装到INSTALL_DIR(用于打包)
|
||||
install -m 0755 "${BUILD_DIR}/app/v4l2_test_arm/v4l2_test" "${INSTALL_DIR}/usr/bin/"
|
||||
display_alert "COMPILE-LIBISP" "v4l2_test application built successfully" "info"
|
||||
aml_log info "COMPILE-LIBISP" "v4l2_test application built successfully"
|
||||
return 0
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "v4l2_test application build failed" "err"
|
||||
aml_log error "COMPILE-LIBISP" "v4l2_test application build failed"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
@@ -304,22 +303,22 @@ function _libisp_build_s6() {
|
||||
local INSTALL_DIR="${INSTALL_DIR}"
|
||||
local FILE_DIR="${_LIBISP_FILE_DIR}"
|
||||
|
||||
display_alert "COMPILE-LIBISP" "Installing S6 specific files" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Installing S6 specific files"
|
||||
|
||||
# Install isp.service
|
||||
if [[ -f "${FILE_DIR}/isp.service" ]]; then
|
||||
install -D -m 0644 "${FILE_DIR}/isp.service" "${INSTALL_DIR}/usr/lib/systemd/system/isp.service"
|
||||
display_alert "COMPILE-LIBISP" "isp.service installed" "info"
|
||||
aml_log info "COMPILE-LIBISP" "isp.service installed"
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "isp.service not found at ${FILE_DIR}/isp.service" "warn"
|
||||
aml_log error "COMPILE-LIBISP" "isp.service not found at ${FILE_DIR}/isp.service"
|
||||
fi
|
||||
|
||||
# Install S6 preparation script
|
||||
if [[ -f "${FILE_DIR}/s6/isp_prepare.sh" ]]; then
|
||||
install -m 0755 "${FILE_DIR}/s6/isp_prepare.sh" "${INSTALL_DIR}/etc/isp_prepare.sh"
|
||||
display_alert "COMPILE-LIBISP" "S6 preparation script installed" "info"
|
||||
aml_log info "COMPILE-LIBISP" "S6 preparation script installed"
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "S6 preparation script not found at ${FILE_DIR}/s6/isp_prepare.sh" "warn"
|
||||
aml_log error "COMPILE-LIBISP" "S6 preparation script not found at ${FILE_DIR}/s6/isp_prepare.sh"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -332,15 +331,15 @@ function _libisp_build_a9() {
|
||||
|
||||
# Check for A9 specific source
|
||||
if [[ ! -d "${SRC_DIR}/aml_isp5/libaiq" ]]; then
|
||||
display_alert "COMPILE-LIBISP" "A9 LibISP source not found at: ${SRC_DIR}/aml_isp5/libaiq" "warn"
|
||||
display_alert "COMPILE-LIBISP" "Skipping A9 specific builds (source not available)" "warn"
|
||||
aml_log error "COMPILE-LIBISP" "A9 LibISP source not found at: ${SRC_DIR}/aml_isp5/libaiq"
|
||||
aml_log warn "COMPILE-LIBISP" "Skipping A9 specific builds (source not available)"
|
||||
else
|
||||
# Build A9 specific components
|
||||
display_alert "COMPILE-LIBISP" "Building A9 specific components" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Building A9 specific components"
|
||||
|
||||
# Build isp5service
|
||||
if [[ -d "${SRC_DIR}/aml_isp5/libaiq/isp5service" ]]; then
|
||||
display_alert "COMPILE-LIBISP" "Building isp5service" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Building isp5service"
|
||||
cd "${SRC_DIR}/aml_isp5/libaiq/isp5service"
|
||||
|
||||
# Clean and build
|
||||
@@ -349,44 +348,116 @@ function _libisp_build_a9() {
|
||||
|
||||
if [[ -f "${BUILD_DIR}/aml_isp5/libaiq/isp5service/isp5service" ]]; then
|
||||
install -m 0755 "${BUILD_DIR}/aml_isp5/libaiq/isp5service/isp5service" "${INSTALL_DIR}/usr/bin/"
|
||||
display_alert "COMPILE-LIBISP" "isp5service built successfully" "info"
|
||||
aml_log info "COMPILE-LIBISP" "isp5service built successfully"
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "isp5service build failed or not found" "warn"
|
||||
aml_log warn "COMPILE-LIBISP" "isp5service build failed or not found"
|
||||
fi
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "isp5service source not found at: ${SRC_DIR}/aml_isp5/libaiq/isp5service" "warn"
|
||||
aml_log error "COMPILE-LIBISP" "isp5service source not found at: ${SRC_DIR}/aml_isp5/libaiq/isp5service"
|
||||
fi
|
||||
|
||||
# Install libisp5aml.so library
|
||||
if [[ -f "${SRC_DIR}/aml_isp5/libaiq/firmware/lib64/libisp5aml.so" ]]; then
|
||||
install -m 0644 "${SRC_DIR}/aml_isp5/libaiq/firmware/lib64/libisp5aml.so" "${INSTALL_DIR}/usr/lib/"
|
||||
display_alert "COMPILE-LIBISP" "libisp5aml.so installed" "info"
|
||||
aml_log info "COMPILE-LIBISP" "libisp5aml.so installed"
|
||||
elif [[ -f "${SRC_DIR}/aml_isp5/libaiq/firmware/lib/libisp5aml.so" ]]; then
|
||||
install -m 0644 "${SRC_DIR}/aml_isp5/libaiq/firmware/lib/libisp5aml.so" "${INSTALL_DIR}/usr/lib/"
|
||||
display_alert "COMPILE-LIBISP" "libisp5aml.so installed" "info"
|
||||
aml_log info "COMPILE-LIBISP" "libisp5aml.so installed"
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "libisp5aml.so not found" "warn"
|
||||
aml_log warn "COMPILE-LIBISP" "libisp5aml.so not found"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install A9 specific preparation script
|
||||
display_alert "COMPILE-LIBISP" "Installing A9 specific files" "info"
|
||||
aml_log info "COMPILE-LIBISP" "Installing A9 specific files"
|
||||
|
||||
# Install isp.service
|
||||
if [[ -f "${FILE_DIR}/isp.service" ]]; then
|
||||
install -D -m 0644 "${FILE_DIR}/isp.service" "${INSTALL_DIR}/usr/lib/systemd/system/isp.service"
|
||||
display_alert "COMPILE-LIBISP" "isp.service installed" "info"
|
||||
if [[ -f "${FILE_DIR}/a9/isp.service" ]]; then
|
||||
install -D -m 0644 "${FILE_DIR}/a9/isp.service" "${INSTALL_DIR}/usr/lib/systemd/system/isp.service"
|
||||
aml_log info "COMPILE-LIBISP" "isp.service installed"
|
||||
fi
|
||||
|
||||
# Install A9 preparation script
|
||||
if [[ -f "${FILE_DIR}/a9/isp_prepare_6.12.sh" ]]; then
|
||||
install -m 0755 "${FILE_DIR}/a9/isp_prepare_6.12.sh" "${INSTALL_DIR}/etc/isp_prepare.sh"
|
||||
display_alert "COMPILE-LIBISP" "A9 preparation script installed" "info"
|
||||
aml_log info "COMPILE-LIBISP" "A9 preparation script installed"
|
||||
elif [[ -f "${FILE_DIR}/a9/isp_prepare.sh" ]]; then
|
||||
install -m 0755 "${FILE_DIR}/a9/isp_prepare.sh" "${INSTALL_DIR}/etc/isp_prepare.sh"
|
||||
display_alert "COMPILE-LIBISP" "A9 preparation script installed" "info"
|
||||
aml_log info "COMPILE-LIBISP" "A9 preparation script installed"
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "A9 preparation script not found" "warn"
|
||||
aml_log warn "COMPILE-LIBISP" "A9 preparation script not found"
|
||||
fi
|
||||
}
|
||||
|
||||
# Build C5 specific components
|
||||
function _libisp_build_c5() {
|
||||
local SRC_DIR="${_LIBISP_SRC_DIR}"
|
||||
local BUILD_DIR="${BUILD_DIR}"
|
||||
local INSTALL_DIR="${INSTALL_DIR}"
|
||||
local FILE_DIR="${_LIBISP_FILE_DIR}"
|
||||
|
||||
# Build A9 specific components
|
||||
aml_log info "COMPILE-LIBISP" "Building C5 specific components"
|
||||
|
||||
# Build isp5service
|
||||
if [[ -d "${SRC_DIR}/aml_c5_isp5/isp5service" ]]; then
|
||||
aml_log info "COMPILE-LIBISP" "Building isp5service"
|
||||
cd "${SRC_DIR}/aml_c5_isp5/isp5service"
|
||||
|
||||
# Clean and build
|
||||
make clean 2>/dev/null || true
|
||||
make ARCH="${ARCH}" CROSS_COMPILE="${CROSS_COMPILE}"
|
||||
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/isp5service/isp5service" ]]; then
|
||||
install -m 0755 "${SRC_DIR}/aml_c5_isp5/isp5service/isp5service" "${INSTALL_DIR}/usr/bin/"
|
||||
aml_log info "COMPILE-LIBISP" "isp5service built successfully"
|
||||
else
|
||||
aml_log warn "COMPILE-LIBISP" "isp5service build failed or not found"
|
||||
fi
|
||||
else
|
||||
aml_log error "COMPILE-LIBISP" "isp5service source not found at: ${SRC_DIR}/aml_c5_isp5/isp5service"
|
||||
fi
|
||||
|
||||
# Install libalg.so library
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib64/libalg.so" ]]; then
|
||||
install -m 0644 "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib64/libalg.so" "${INSTALL_DIR}/usr/lib/"
|
||||
aml_log info "COMPILE-LIBISP" "libalg.so installed"
|
||||
elif [[ -f "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib/libalg.so" ]]; then
|
||||
install -m 0644 "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib/libalg.so" "${INSTALL_DIR}/usr/lib/"
|
||||
aml_log info "COMPILE-LIBISP" "libalg.so installed"
|
||||
else
|
||||
aml_log warn "COMPILE-LIBISP" "libalg.so not found"
|
||||
fi
|
||||
|
||||
# Install libalgcore.so library
|
||||
if [[ -f "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib64/libalgcore.so" ]]; then
|
||||
install -m 0644 "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib64/libalgcore.so" "${INSTALL_DIR}/usr/lib/"
|
||||
aml_log info "COMPILE-LIBISP" "libalgcore.so installed"
|
||||
elif [[ -f "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib/libalgcore.so" ]]; then
|
||||
install -m 0644 "${SRC_DIR}/aml_c5_isp5/isp5service/firmware/lib/libalgcore.so" "${INSTALL_DIR}/usr/lib/"
|
||||
aml_log info "COMPILE-LIBISP" "libalgcore.so installed"
|
||||
else
|
||||
aml_log warn "COMPILE-LIBISP" "libalgcore.so not found"
|
||||
fi
|
||||
|
||||
# Install A9 specific preparation script
|
||||
aml_log info "COMPILE-LIBISP" "Installing C5 specific files"
|
||||
|
||||
# Install isp.service
|
||||
if [[ -f "${FILE_DIR}/isp.service" ]]; then
|
||||
install -D -m 0644 "${FILE_DIR}/isp.service" "${INSTALL_DIR}/usr/lib/systemd/system/isp.service"
|
||||
aml_log info "COMPILE-LIBISP" "isp.service installed"
|
||||
fi
|
||||
|
||||
# Install C5 preparation script
|
||||
if [[ -f "${FILE_DIR}/c5/isp_prepare_6.12.sh" ]]; then
|
||||
install -m 0755 "${FILE_DIR}/c5/isp_prepare_6.12.sh" "${INSTALL_DIR}/etc/isp_prepare.sh"
|
||||
aml_log info "COMPILE-LIBISP" "C5 preparation script installed"
|
||||
elif [[ -f "${FILE_DIR}/c5/isp_prepare.sh" ]]; then
|
||||
install -m 0755 "${FILE_DIR}/c5/isp_prepare.sh" "${INSTALL_DIR}/etc/isp_prepare.sh"
|
||||
aml_log info "COMPILE-LIBISP" "C5 preparation script installed"
|
||||
else
|
||||
aml_log warn "COMPILE-LIBISP" "C5 preparation script not found"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -408,17 +479,17 @@ function _libisp_build_deb_package() {
|
||||
mkdir -p "${DEBIAN_DIR}"
|
||||
|
||||
# 将install目录内容拷贝到deb目录
|
||||
display_alert "Copying install directory to deb package directory ${log_prefix}" "info"
|
||||
aml_log debug "Copying install directory to deb package directory ${log_prefix}"
|
||||
echo "Copying install directory to deb package directory at $(date)" >> "${BUILD_LOG}"
|
||||
cp -r "${INSTALL_DIR}/"* "${DEB_PACKAGE_DIR}/" 2>&1 >> "${BUILD_LOG}"
|
||||
|
||||
# 基于deb目录打包
|
||||
display_alert "Building Debian package from deb directory ${log_prefix}" "info"
|
||||
aml_log info "Building Debian package from deb directory ${log_prefix}"
|
||||
echo "Building Debian package at $(date)" >> "${BUILD_LOG}"
|
||||
dpkg-deb --build "${DEB_PACKAGE_DIR}" 2>&1 >> "${BUILD_LOG}"
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
display_alert "${log_prefix} Package build failed" "error"
|
||||
aml_log error "${log_prefix} Package build failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -427,8 +498,8 @@ function _libisp_build_deb_package() {
|
||||
mkdir -p "$(dirname "${OUTPUT_DEB}")"
|
||||
mv "${DEB_PACKAGE_DIR}.deb" "${OUTPUT_DEB}"
|
||||
|
||||
display_alert "${log_prefix} Package built successfully ${output_deb_name}" "info"
|
||||
display_alert "${log_prefix} Build directory preserved ${BASE_BUILD_DIR}" "info"
|
||||
aml_log info "${log_prefix} Package built successfully ${output_deb_name}"
|
||||
aml_log info "${log_prefix} Build directory preserved ${BASE_BUILD_DIR}"
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
@@ -448,10 +519,10 @@ function amlbian_build_libisp() {
|
||||
|
||||
# ---- Step 2: Build Directory Setup ----
|
||||
_libisp_create_build_dirs "${_LIBISP_PKG_NAME}_${_LIBISP_PKG_VERSION}_${_LIBISP_ARCH}"
|
||||
display_alert "COMPILE-LIBISP Building LibISP DEBIAN_DIR (${DEBIAN_DIR})" "info"
|
||||
aml_log info "COMPILE-LIBISP Building LibISP DEBIAN_DIR (${DEBIAN_DIR})"
|
||||
|
||||
# Display info
|
||||
display_alert "COMPILE-LIBISP Building LibISP package version ${_LIBISP_PKG_VERSION} for ${_LIBISP_ARCH} (${chipset})" "info"
|
||||
aml_log info "COMPILE-LIBISP Building LibISP package version ${_LIBISP_PKG_VERSION} for ${_LIBISP_ARCH} (${chipset})"
|
||||
_libisp_display_build_info "COMPILE-LIBISP"
|
||||
|
||||
# ---- Step 3: Debian Packaging Scripts ----
|
||||
@@ -468,25 +539,27 @@ function amlbian_build_libisp() {
|
||||
# ---- Step 5: Build Applications (Platform Specific) ----
|
||||
# Build common v4l2_test application
|
||||
_libisp_build_v4l2_test
|
||||
|
||||
|
||||
# Build platform specific components
|
||||
if [[ "${chipset}" == "s6" ]]; then
|
||||
_libisp_build_s6
|
||||
elif [[ "${chipset}" == "a9" ]]; then
|
||||
_libisp_build_a9
|
||||
elif [[ "${chipset}" == "c5" ]]; then
|
||||
_libisp_build_c5
|
||||
else
|
||||
display_alert "COMPILE-LIBISP" "Unsupported chipset: ${chipset}" "err"
|
||||
aml_log error "COMPILE-LIBISP" "Unsupported chipset: ${chipset}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ---- Step 6: Build Debian Package ----
|
||||
_libisp_build_deb_package "COMPILE-LIBISP" "${_LIBISP_PKG_NAME}_${_LIBISP_PKG_VERSION}_${_LIBISP_ARCH}.deb"
|
||||
|
||||
display_alert "COMPILE-LIBISP Build directories preserved:" "info"
|
||||
display_alert "COMPILE-LIBISP Source: ${SOURCE_DIR}" "info"
|
||||
display_alert "COMPILE-LIBISP Build: ${BUILD_DIR}" "info"
|
||||
display_alert "COMPILE-LIBISP Install: ${INSTALL_DIR}" "info"
|
||||
display_alert "COMPILE-LIBISP LibISP user-space build for ${chipset} completed successfully" "info"
|
||||
aml_log debug "COMPILE-LIBISP Build directories preserved:"
|
||||
aml_log debug "COMPILE-LIBISP Source: ${SOURCE_DIR}"
|
||||
aml_log debug "COMPILE-LIBISP Build: ${BUILD_DIR}"
|
||||
aml_log debug "COMPILE-LIBISP Install: ${INSTALL_DIR}"
|
||||
aml_log info "COMPILE-LIBISP LibISP user-space build for ${chipset} completed successfully"
|
||||
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
[Unit]
|
||||
Description=ISP Service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
ExecStart=/bin/sh -c "/etc/isp_prepare.sh"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -12,7 +12,16 @@
|
||||
PATH="/lib/modules/isp"
|
||||
/sbin/insmod $PATH/aml-imx290.ko
|
||||
/sbin/insmod $PATH/aml-imx415.ko
|
||||
/sbin/insmod $PATH/aml-ov08a10.ko
|
||||
/sbin/insmod $PATH/aml-imx585.ko
|
||||
/sbin/insmod $PATH/aml-isp5-csi.ko
|
||||
/sbin/insmod $PATH/aml-isp5-adap.ko
|
||||
/sbin/insmod $PATH/aml-isp5.ko
|
||||
/usr/bin/isp5service --mode 6 --hdr 0
|
||||
|
||||
# default 6; override by env variable.
|
||||
ISP_SERVICE_MODE="${ISP_SERVICE_MODE:-6}"
|
||||
|
||||
# default 0; override by env variable.
|
||||
SENSOR_IMAGE_MODE="${SENSOR_IMAGE_MODE:-0}"
|
||||
|
||||
/usr/bin/isp5service --cpu 0,1,2,3,4,5 --mode ${ISP_SERVICE_MODE} --hdr 0 --sensor-mode ${SENSOR_IMAGE_MODE}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
########################################################################
|
||||
# Copyright (c) 2026 Amlogic, Inc. All rights reserved.
|
||||
#
|
||||
# This source code is subject to the terms and conditions defined in the
|
||||
# file 'LICENSE' which is part of this source code package.
|
||||
#
|
||||
# Description:
|
||||
########################################################################
|
||||
|
||||
#!/bin/sh -x
|
||||
|
||||
PATH="/lib/modules/isp"
|
||||
/sbin/insmod $PATH/imx290.ko
|
||||
/sbin/insmod $PATH/imx415.ko
|
||||
/sbin/insmod $PATH/c5-csi.ko
|
||||
/sbin/insmod $PATH/c5-adap.ko
|
||||
/sbin/insmod $PATH/c5-isp.ko rdma_en=1
|
||||
|
||||
/usr/bin/isp5service -c --mode 6 --hdr 0
|
||||
Reference in New Issue
Block a user