Path: blob/next/external/config/sources/families/cix.conf
15075 views
ARCH="arm64"12LINUXFAMILY="cix"3BOOTCONFIG="none"4ATF_COMPILE="no"5EXTERNAL_NEW="none"67SERIALCON="ttyAMA2"8KERNEL_COMPILER='aarch64-none-linux-gnu-'910case $BRANCH in1112current)13if [[ $GITEE_SERVER == yes ]]; then14KERNELSOURCE="https://gitee.com/orangepi-xunlong/orange-pi-6.1-cix.git"15fi16KERNELBRANCH='branch:orange-pi-6.1-cix'17KERNELPATCHDIR='cix-current'18LINUXCONFIG="linux-cix-p1-current"19KERNEL_USE_GCC='> 12.0'20;;2122next)23KERNELBRANCH='branch:orange-pi-6.6-cix'24KERNELPATCHDIR='cix-next'25LINUXCONFIG="linux-cix-p1-next"26KERNEL_USE_GCC='> 12.0'27;;28esac2930family_tweaks_bsp() {31:32}3334function build_cix_prideb() {35local PATH_OUT_PRIVATE_DEB_PACKAGES=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_proprietary/cix_proprietary-debs36local amvx_module=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_opensource/vpu/vpu_driver/bin/aarch64-none-linux-gnu/amvx.ko37local linux_version=$(modinfo ${amvx_module} | awk -F': ' '/vermagic/{split($2,a," "); print a[1]}')3839#npu-noe-umd40pkg_Name="cix-noe-umd"41create_cix_deb "$pkg_Name"4243#isp-umd44pkg_Name="cix-isp-umd"45create_cix_deb "$pkg_Name"4647#gpu48pkg_Name="cix-gpu-umd"49if [[ ! -e $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/etc/systemd/system ]]; then50mkdir -p $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/etc/systemd/system51fi52if [[ ! -e $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/usr/bin ]]; then53mkdir -p $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/usr/bin54fi55cat > $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/etc/systemd/system/load-modules.service <<- EOF56[Unit]57Description=Load custom kernel modules5859[Service]60Type=oneshot61ExecStart=/usr/bin/load-modules.sh62RemainAfterExit=yes6364[Install]65WantedBy=sysinit.target66EOF67cat > $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/usr/bin/load-modules.sh <<- EOF68#!/bin/bash6970insmod /lib/modules/$linux_version/extra/protected_memory_allocator.ko71insmod /lib/modules/$linux_version/extra/memory_group_manager.ko72insmod /lib/modules/$linux_version/extra/mali_kbase.ko73#insmod /lib/modules/$linux_version/extra/rtl_btusb.ko74#insmod /lib/modules/$linux_version/extra/rtl_wlan.ko75insmod /lib/modules/$linux_version/extra/aipu.ko76insmod /lib/modules/$linux_version/extra/amvx.ko77insmod /lib/modules/$linux_version/kernel/drivers/hid/uhid.ko7879#insmod /lib/modules/$linux_version/kernel/net/netfilter/x_tables.ko80#insmod /lib/modules/$linux_version/kernel/net/ipv4/netfilter/ip_tables.ko81#insmod /lib/modules/$linux_version/kernel/net/ipv4/netfilter/iptable_nat.ko82#insmod /lib/modules/$linux_version/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko83#insmod /lib/modules/$linux_version/kernel/net/ipv6/netfilter/nf_defrag_ipv6.ko84#insmod /lib/modules/$linux_version/kernel/lib/libcrc32c.ko85#insmod /lib/modules/$linux_version/kernel/net/netfilter/nf_conntrack.ko86#insmod /lib/modules/$linux_version/kernel/net/netfilter/nf_nat.ko87#insmod /lib/modules/$linux_version/kernel/net/netfilter/xt_MASQUERADE.ko8889ln -s /dev/dma_heap/reserved /dev/dma_heap/linux,cma9091if [[ ! -e /etc/machine-id ]]; then92dbus-uuidgen > /etc/machine-id93ln -sf /etc/machine-id /var/lib/dbus/machine-id94fi9596EOF97cat >> $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/usr/bin/load-modules.sh <<- 'EOF'98video_devices=($(ls /dev/video* 2>/dev/null | sort -V))99100if [ ${#video_devices[@]} -eq 1 ]; then101ln -s "${video_devices[0]}" /dev/video-cixdec0102elif [ ${#video_devices[@]} -eq 0 ]; then103echo "Not found /dev/video*"104else105max_device="${video_devices[-2]}"106ln -s "$max_device" /dev/video-cixdec0107fi108EOF109sudo chmod a+x $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/usr/bin/load-modules.sh110if [[ ! -e $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/DEBIAN ]]; then111mkdir -p $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/DEBIAN112fi113cat > $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/DEBIAN/postinst <<- EOF114#!/bin/sh115set -e116117# Enable the service to start on boot118systemctl enable load-modules.service || true119120exit 0121EOF122cat > $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/DEBIAN/triggers <<- EOF123activate-noawait ldconfig124EOF125cat > $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/DEBIAN/shlibs <<- EOF126libgbm 1 cix-gpu-umd (>= 1.0.0-1)127EOF128sudo chmod a+x $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/DEBIAN/postinst129rm -rf $PATH_OUT_PRIVATE_DEB_PACKAGES/cix-gpu-umd/usr/share/cix130create_cix_deb "$pkg_Name"131132#dsp133pkg_Name="cix-audio-dsp"134create_cix_deb "$pkg_Name"135}136137function create_cix_deb() {138local pkg_Name="$1"139local PATH_CHANGELOGS=${EXTER}/cache/sources/component_cix-${BRANCH}/changelogs140local PRIVATE_DEB_PACKAGES=("cix-dpu-ddk" "cix-npu-umd" "cix-isp-umd" "cix-gpu-umd" "cix-audio-dsp" "cix-hdcp2" "cix-noe-umd")141local CIX_DEB_VERSION="0.01-1"142143display_alert "Building cix deb" "${pkg_Name}" "info"144CHANGELOG="$PATH_CHANGELOGS/changelog.${pkg_Name}"145if [[ ! -f "$CHANGELOG" ]]; then146exit_with_error "changelog not found" "${CHANGELOG}"147fi148149VERSION=$(grep -m 1 -oP '^\S+\s+\(\K[^)]+(?=\))' "$CHANGELOG")150if [[ ! -n "$VERSION" ]]; then151display_alert "get Version failed from: ${CHANGELOG}, will use default version" "1.0.0" "info"152sleep 10153VERSION="1.0.0"154fi155156local pkg_Ver=$VERSION157local pkg_private=false158159for str in "${PRIVATE_DEB_PACKAGES[@]}"; do160if [[ "$str" == "$pkg_Name" ]]; then161rm -rf ${PATH_OUT_DEB_PACKAGES}/$pkg_Name162cp -r ${PATH_OUT_PRIVATE_DEB_PACKAGES}/${pkg_Name} ${PATH_OUT_DEB_PACKAGES}/$pkg_Name163break164fi165done166167local build_deb_dir="${PATH_OUT_DEB_PACKAGES}/${pkg_Name}"168169case "$pkg_Name" in170("cix-mesa")171CONTROL_CONTENT="Package: ${pkg_Name}172Version: ${pkg_Ver}173Architecture: arm64174Maintainer: Cix OS team175Depends: libc6 (>= 2.34)176Provides: libgl1-mesa-dri, libgl1, libglapi-mesa, libgl-dev177Replaces: libgl1-mesa-dri, libgl1, libglapi-mesa, libgl-dev178Section: utils179Priority: optional180Description: $pkg_Name package"181;;182("cix-xserver")183CONTROL_CONTENT="Package: ${pkg_Name}184Version: ${pkg_Ver}185Architecture: arm64186Maintainer: Cix OS team187Depends: libc6 (>= 2.34)188Provides: xwayland189Replaces: xwayland190Section: utils191Priority: optional192Description: $pkg_Name package"193;;194("cix-gpu-umd")195CONTROL_CONTENT="Package: ${pkg_Name}196Version: ${pkg_Ver}197Architecture: arm64198Maintainer: Cix OS team199Depends: libc6 (>= 2.34)200Provides: libwayland-dev, libwayland-egl1, libgles2, ocl-icd-libopencl1, libgbm1, libegl-dev, libgles1, libegl1, libgles1, libgles-dev, ocl-icd-opencl-dev, libgbm-dev201Replaces: libwayland-dev, libwayland-egl1, libgles2, ocl-icd-libopencl1, libgbm1, libegl-dev, libgles1, libegl1, libgles1, libgles-dev, ocl-icd-opencl-dev, libgbm-dev202Section: utils203Priority: optional204Description: $pkg_Name package"205;;206("cix-gstreamer")207CONTROL_CONTENT="Package: ${pkg_Name}208Version: ${pkg_Ver}209Architecture: arm64210Maintainer: Cix OS team211Depends: libc6 (>= 2.34), libglib2.0-0, libglib2.0-bin, libx11-6, libgdk-pixbuf-2.0-0, zlib1g, libasound2, libogg0, libopus0, libxext6, libxi6, libxfixes3, libxdamage1, libxml2, libnettle8, libcairo2, libjpeg62-turbo, libpng16-16, libsoup-3.0-0, libva-drm2, libva-glx2, libva-wayland2, libva-x11-2, libva2, libdrm2, libdrm-radeon1, libdrm-nouveau2, libdrm-amdgpu1, libdrm-freedreno1, libdrm-tegra0, libdrm-etnaviv1, libvulkan1, libxcb1, libxkbcommon0, libwayland-client0, libwayland-server0, libwayland-cursor0, libwayland-egl1, libwayland-bin, libnice10, libwebp7, libwebpmux3, libwebpdemux2, libjson-glib-1.0-0, libpango-1.0-0, libpangocairo-1.0-0, libpangoft2-1.0-0, libpangoxft-1.0-0212Section: utils213Priority: optional214Description: $pkg_Name package"215;;216("cix-npu-onnxruntime")217CONTROL_CONTENT="Package: ${pkg_Name}218Version: ${pkg_Ver}219Architecture: arm64220Maintainer: Cix OS team221Depends: python3-pip222Section: utils223Priority: optional224Description: $pkg_Name package"225;;226(*)227CONTROL_CONTENT="Package: ${pkg_Name}228Version: ${pkg_Ver}229Architecture: arm64230Maintainer: Cix OS team231Depends: libc6 (>= 2.34)232Section: utils233Priority: optional234Description: $pkg_Name package"235;;236esac237238if [[ -e $build_deb_dir/usr/share/doc/$pkg_Name ]]; then239if [[ -e $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian.gz ]]; then240rm -rf $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian.gz241fi242else243mkdir -p $build_deb_dir/usr/share/doc/$pkg_Name244fi245246cp $CHANGELOG $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian247gzip $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian248249if [[ -e $PATH_OUT_PRIVATE_DEB_PACKAGES/copyright/$pkg_Name ]]; then250mkdir -p $build_deb_dir/usr/share/doc/$pkg_Name251cp $PATH_OUT_PRIVATE_DEB_PACKAGES/copyright/$pkg_Name/copyright $build_deb_dir/usr/share/doc/$pkg_Name252fi253254if [[ -e "$build_deb_dir" ]]; then255if [[ ! -e "$build_deb_dir/DEBIAN/control" ]]; then256mkdir -p "$build_deb_dir/DEBIAN"257echo "${CONTROL_CONTENT}" > "$build_deb_dir/DEBIAN/control"258else259sed -i "s/^Version: .*/Version: $pkg_Ver/" "$build_deb_dir/DEBIAN/control"260fi261262chmod -R 755 "$build_deb_dir"263chmod -R g-s "$build_deb_dir"264rm -f ${PATH_OUT_DEB_PACKAGES}/${pkg_Name}_*.deb265dpkg-deb -b --root-owner-group "$build_deb_dir" "${PATH_OUT_DEB_PACKAGES}/${pkg_Name}_${pkg_Ver}_arm64.deb" > /dev/null266rm -rf ${PATH_OUT_DEB_PACKAGES}/${pkg_Name}267else268display_alert "deb path does not exist" "${build_deb_dir}" "info"269fi270}271272family_tweaks_kernel () {273274cix_open_src=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_opensource275PATH_OUT_PRIVATE_DEB_PACKAGES=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_proprietary/cix_proprietary-debs276PATH_OUT_DEB_PACKAGES=${DEB_STORAGE}/cix_debs-${BRANCH}277278export ARCH=arm64279export KDIR=${SRC}/kernel/${KERNELBRANCH#branch:}280export CROSS_COMPILE=${toolchain}/${KERNEL_COMPILER}281282[[ -d ${PATH_OUT_DEB_PACKAGES} ]] && rm -r ${PATH_OUT_DEB_PACKAGES}283mkdir -p ${PATH_OUT_DEB_PACKAGES}284285cd ${cix_open_src}/vpu/vpu_driver/286bash ./clean.sh > /dev/null287scons $CTHREADS target=linux > /dev/null288# build deb package289pkg_Name="cix-vpu-driver"290linux_version=$(strings ${LINUXSOURCEDIR}/arch/arm64/boot/Image | grep "Linux version" | cut -d' ' -f3 | head -1)291build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}292rm -rf ${build_deb_dir}293install_dir=${build_deb_dir}/usr/share/cix/bin294install_dir_kernel_modules=${build_deb_dir}/lib/modules/${linux_version}/extra295install_dir_include=${build_deb_dir}/usr/share/cix/include296install_dir_firmware="${build_deb_dir}/lib/firmware"297mkdir -p ${install_dir}298mkdir -p ${install_dir_kernel_modules}299mkdir -p ${install_dir_include}300mkdir -p ${install_dir_firmware}301if [ -f bin/aarch64-none-linux-gnu/amvx.ko ]; then302cp bin/aarch64-none-linux-gnu/amvx.ko ${install_dir_kernel_modules}303cp include/aarch64-none-linux-gnu/mvx-v4l2-controls.h ${install_dir_include}304if [[ -d "${PATH_OUT_PRIVATE_DEB_PACKAGES}/cix-vpu-umd/usr/lib/firmware" ]]; then305cp -fp ${PATH_OUT_PRIVATE_DEB_PACKAGES}/cix-vpu-umd/usr/lib/firmware/* ${install_dir_firmware}/306fi307create_cix_deb "${pkg_Name}"308else309exit_with_error "vpu: amvx.ko module not exist"310fi311# finish build deb package312cd - > /dev/null313314export COMPASS_DRV_BTENVAR_ARCH=${ARCH}315export COMPASS_DRV_BTENVAR_KMD_DIR=driver316export COMPASS_DRV_BTENVAR_KMD_VERSION=5.8.0317export COMPASS_DRV_BTENVAR_KPATH=${KDIR}318export BUILD_AIPU_VERSION_KMD=BUILD_ZHOUYI_V3319export BUILD_TARGET_PLATFORM_KMD=BUILD_PLATFORM_SKY1320export BUILD_NPU_DEVFREQ=y321cd ${cix_open_src}/npu/npu_driver322cp -f ${COMPASS_DRV_BTENVAR_KMD_DIR}/armchina-npu/include/armchina_aipu.h ${KDIR}/include/uapi/misc323make $CTHREADS -C ${COMPASS_DRV_BTENVAR_KMD_DIR} ARCH=${COMPASS_DRV_BTENVAR_ARCH} CROSS_COMPILE=${CROSS_COMPILE} clean > /dev/null324make $CTHREADS -C ${COMPASS_DRV_BTENVAR_KMD_DIR} ARCH=${COMPASS_DRV_BTENVAR_ARCH} CROSS_COMPILE=${CROSS_COMPILE} > /dev/null325pkg_Name="cix-npu-driver"326if [ -f ${COMPASS_DRV_BTENVAR_KMD_DIR}/aipu.ko ]; then327# build deb package328build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}329rm -rf ${build_deb_dir}330install_dir=${build_deb_dir}/lib/modules/${linux_version}/extra331mkdir -p ${install_dir}332cp ${COMPASS_DRV_BTENVAR_KMD_DIR}/aipu.ko ${install_dir}333create_cix_deb "${pkg_Name}"334rm -f $PATH_LINUX/include/uapi/misc/armchina_aipu.h335# finish build deb package336else337exit_with_error "npu: aipu.ko module not exist"338fi339cd - > /dev/null340341export CONFIG_MALI_BASE_MODULES=y342export CONFIG_MALI_MEMORY_GROUP_MANAGER=y343export CONFIG_MALI_PROTECTED_MEMORY_ALLOCATOR=y344export CONFIG_MALI_PLATFORM_NAME="sky1"345export CONFIG_MALI_CSF_SUPPORT=y346export CONFIG_MALI_CIX_POWER_MODEL=y347cd ${cix_open_src}/gpu348bash clean.sh > /dev/null349gpu_driver_dir=${cix_open_src}/gpu/gpu_kernel/drivers350if [[ "${DOCKER_MODE}" == "docker" ]]; then351ARCH=arm64 make KCFLAGS="-D__ANDROID_COMMON_KERNEL__ -DUSING_DOCKER_MODE" $CTHREADS -C ${gpu_driver_dir}/base/arm/ > /dev/null352ARCH=arm64 make KCFLAGS="-D__ANDROID_COMMON_KERNEL__ -DUSING_DOCKER_MODE" $CTHREADS -C ${gpu_driver_dir}/gpu/arm/ > /dev/null353else354ARCH=arm64 make $CTHREADS -C ${gpu_driver_dir}/base/arm/ > /dev/null355ARCH=arm64 make $CTHREADS -C ${gpu_driver_dir}/gpu/arm/ > /dev/null356fi357# build deb package358pkg_Name="cix-gpu-driver"359build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}360rm -rf ${build_deb_dir}361install_dir=${build_deb_dir}/lib/modules/${linux_version}/extra362mkdir -p ${install_dir}363if [ -f ${gpu_driver_dir}/gpu/arm/midgard/mali_kbase.ko ]; then364cp ${gpu_driver_dir}/base/arm/memory_group_manager/memory_group_manager.ko ${install_dir}365cp ${gpu_driver_dir}/base/arm/protected_memory_allocator/protected_memory_allocator.ko ${install_dir}366cp ${gpu_driver_dir}/gpu/arm/midgard/mali_kbase.ko ${install_dir}367create_cix_deb "${pkg_Name}"368else369exit_with_error "gpu: amxv.ko module not exist"370fi371# finish build deb package372cd - > /dev/null373374local DRV_DIR=${cix_open_src}/isp/isp_driver375MODULE=armcb_isp_v4l2376cd "${DRV_DIR}"377make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} $CTHREADS PATH_ROOT=${KDIR} clean > /dev/null378make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} $CTHREADS PATH_ROOT=${KDIR} build > /dev/null379if [ -f ${DRV_DIR}/${MODULE}.ko ]; then380# build deb package381pkg_Name="cix-isp-driver-v4l2"382build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}383rm -rf ${build_deb_dir}384install_dir=${build_deb_dir}/lib/modules/${linux_version}/extra385mkdir -p ${install_dir}386cp ${DRV_DIR}/${MODULE}.ko ${install_dir}387create_cix_deb "${pkg_Name}"388else389exit_with_error "${MODULE}.ko module not exist"390fi391cd - > /dev/null392393build_cix_prideb394395mkdir -p ${SRC}/output/cix/ > /dev/null 2>&1396cp ${KDIR}/arch/arm64/boot/Image ${SRC}/output/cix/397cp ${KDIR}/arch/arm64/boot/dts/cix/sky1-*dtb ${SRC}/output/cix/398rm ${SRC}/output/debs/linux-dtb*399}400401install_cix_debs() {402403[[ $BUILD_DESKTOP != yes ]] && return404[[ ${RELEASE} == noble ]] && return405406display_alert "Installing" "Cix debs" "info"407408local POOL_PATH=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_proprietary/cix_proprietary-debs409local DEB_PATH=${SDCARD}/root/debs410411mkdir -p ${DEB_PATH}412cp -fp $POOL_PATH/pool/main/*/*/*.deb ${DEB_PATH}/413cp -fp $POOL_PATH/pool/main/*/*.deb ${DEB_PATH}/414cp ${EXTER}/cache/sources/component_cix-${BRANCH}/debs/*.deb ${DEB_PATH}/415416run_on_sdcard "apt-get -y --allow-downgrades install /root/debs/*.deb"417run_on_sdcard "systemctl mask swap.target"418run_on_sdcard "systemctl enable cix_resume.service"419run_on_sdcard "systemctl enable cix_resume_prepare.service"420rm ${DEB_PATH} -rf421422dpkg_install_deb_chroot "${EXTER}/cache/sources/component_cix-${BRANCH}/debs_manual/cix-gnome-core-1.43_arm64.deb"423dpkg_install_deb_chroot "${EXTER}/cache/sources/component_cix-${BRANCH}/debs_manual/yolox-demo-v4l2_2.0.0_arm64.deb"424#dpkg_install_deb_chroot "${EXTER}/cache/sources/component_cix-${BRANCH}/debs_manual/systemd_252.26-1~deb12u2_arm64.deb"425run_on_sdcard "EBIAN_FRONTEND=noninteractive apt-get -yqq install pulseaudio"426run_on_sdcard "EBIAN_FRONTEND=noninteractive apt-get -yqq remove wireplumber"427run_on_sdcard "EBIAN_FRONTEND=noninteractive apt-get -yqq remove pipewire-pulse"428429rm $SDCARD/root/*.deb >/dev/null 2>&1430}431432family_tweaks() {433434install_balenaEtcher435#install_wiringop436437if [[ -L "${SDCARD}/usr/lib/policykit-1/polkit-agent-helper-1" ]]; then438chmod 5755 ${SDCARD}/usr/lib/policykit-1/polkit-agent-helper-1439fi440441cp ${DEB_STORAGE}/cix_debs-${BRANCH} ${SDCARD}/root/ -rf442run_on_sdcard "apt-get -y --allow-downgrades install /root/cix_debs-${BRANCH}/*.deb"443444amvx_module=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_opensource/vpu/vpu_driver/bin/aarch64-none-linux-gnu/amvx.ko445linux_version=$(modinfo ${amvx_module} | awk -F': ' '/vermagic/{split($2,a," "); print a[1]}')446447run_on_sdcard "depmod -a $linux_version/"448rm -rf ${SDCARD}/root/cix_debs-${BRANCH}449rm -rf ${SDCARD}/usr/local/test.mp4450451touch ${SDCARD}/root/.Xauthority452453mv ${SDCARD}/usr/share/cix/bin/spidev_test ${SDCARD}/usr/bin/ >/dev/null 2>&1454rm ${SDCARD}/usr/share/cix/bin/isp_app >/dev/null 2>&1455456sed -i 's/^ENABLED=true$/ENABLED=false/' ${SDCARD}/etc/default/orangepi-zram-config457458run_on_sdcard "systemctl --no-reload enable [email protected] >/dev/null 2>&1"459run_on_sdcard "systemctl --no-reload enable isp-daemon.service >/dev/null 2>&1"460if [[ ${RELEASE} == bookworm ]]; then461run_on_sdcard "systemctl mask ssh.socket" >/dev/null 2>&1462fi463464rsync -a --chown=root:root "${EXTER}"/packages/bsp/overlays_cix/* ${SDCARD}/465}466467install_balenaEtcher(){468469if [[ $BUILD_DESKTOP == yes && $install_balena_etcher == yes ]]; then470471[[ ${RELEASE} == noble ]] && return472473balena_etcher_deb=balena-etcher-electron_1.7.9+5945ab1f_arm64.deb474balena_etcher_url="https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/${balena_etcher_deb}"475balena_etcher=${EXTER}/cache/debs/arm64/${balena_etcher_deb}476477if [[ ! -f ${balena_etcher} ]]; then478wget -P ${EXTER}/cache/debs/arm64 ${balena_etcher_url}479fi480481install_deb_chroot ${balena_etcher}482rm $SDCARD/root/*.deb >/dev/null 2>&1483fi484}485486487