#!/bin/bash -e # Directory contains the target rootfs TARGET_ROOTFS_DIR="binary" case "${ARCH:-$1}" in arm|arm32|armhf) ARCH=armhf ;; *) ARCH=arm64 ;; esac echo -e "\033[36m Building for $ARCH \033[0m" if [ ! $VERSION ]; then VERSION="release" fi echo -e "\033[36m Building for $VERSION \033[0m" if [ ! -e linaro-buster-alip-*.tar.gz ]; then echo -e "\033[36m Run mk-base-debian.sh first \033[0m" exit -1 fi finish() { sudo umount $TARGET_ROOTFS_DIR/dev exit -1 } trap finish ERR echo -e "\033[36m Extract image \033[0m" sudo tar -xpf linaro-buster-alip-*.tar.gz # packages folder sudo mkdir -p $TARGET_ROOTFS_DIR/packages sudo cp -rf packages/$ARCH/* $TARGET_ROOTFS_DIR/packages # overlay folder sudo cp -rf overlay/* $TARGET_ROOTFS_DIR/ # overlay-firmware folder sudo cp -rf overlay-firmware/* $TARGET_ROOTFS_DIR/ # overlay-debug folder # adb, video, camera test file if [ "$VERSION" == "debug" ]; then sudo cp -rf overlay-debug/* $TARGET_ROOTFS_DIR/ # adb if [[ "$ARCH" == "armhf" && "$VERSION" == "debug" ]]; then sudo cp -f overlay-debug/usr/local/share/adb/adbd-32 $TARGET_ROOTFS_DIR/usr/bin/adbd elif [[ "$ARCH" == "arm64" && "$VERSION" == "debug" ]]; then sudo cp -f overlay-debug/usr/local/share/adb/adbd-64 $TARGET_ROOTFS_DIR/usr/bin/adbd fi fi ## hack the serial sudo cp -f overlay/usr/lib/systemd/system/serial-getty@.service $TARGET_ROOTFS_DIR/usr/lib/systemd/system/serial-getty@.service # bt/wifi firmware sudo mkdir -p $TARGET_ROOTFS_DIR/system/lib/modules/ sudo mkdir -p $TARGET_ROOTFS_DIR/vendor/etc sudo find ../kernel/drivers/net/wireless/rockchip_wlan/* -name "*.ko" | \ xargs -n1 -i sudo cp {} $TARGET_ROOTFS_DIR/system/lib/modules/ echo -e "\033[36m Change root.....................\033[0m" if [ "$ARCH" == "armhf" ]; then sudo cp /usr/bin/qemu-arm-static $TARGET_ROOTFS_DIR/usr/bin/ elif [ "$ARCH" == "arm64" ]; then sudo cp /usr/bin/qemu-aarch64-static $TARGET_ROOTFS_DIR/usr/bin/ fi sudo mount -o bind /dev $TARGET_ROOTFS_DIR/dev cat << EOF | sudo chroot $TARGET_ROOTFS_DIR echo "deb http://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list echo "deb-src http://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free" >> /etc/apt/sources.list apt-get update apt-get upgrade -y chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper chmod +x /etc/rc.local export APT_INSTALL="apt-get install -fy --allow-downgrades" #---------------power management -------------- \${APT_INSTALL} pm-utils triggerhappy cp /etc/Powermanager/triggerhappy.service /lib/systemd/system/triggerhappy.service #---------------Custom Script-------------- systemctl mask systemd-networkd-wait-online.service systemctl mask NetworkManager-wait-online.service rm /lib/systemd/system/wpa_supplicant@.service #---------------Clean-------------- if [ -e "/usr/lib/arm-linux-gnueabihf/dri" ] ; then # Only preload libdrm-cursor for X sed -i "1aexport LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libdrm-cursor.so.1" /usr/bin/X cd /usr/lib/arm-linux-gnueabihf/dri/ cp kms_swrast_dri.so swrast_dri.so / rm /usr/lib/arm-linux-gnueabihf/dri/*.so mv /*.so /usr/lib/arm-linux-gnueabihf/dri/ elif [ -e "/usr/lib/aarch64-linux-gnu/dri" ]; then # Only preload libdrm-cursor for X sed -i "1aexport LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libdrm-cursor.so.1" /usr/bin/X cd /usr/lib/aarch64-linux-gnu/dri/ cp kms_swrast_dri.so swrast_dri.so / rm /usr/lib/aarch64-linux-gnu/dri/*.so mv /*.so /usr/lib/aarch64-linux-gnu/dri/ rm /etc/profile.d/qt.sh fi cd - #---------------Clean-------------- rm -rf /var/lib/apt/lists/* rm -rf /var/cache/ rm -rf /packages/ EOF sudo umount $TARGET_ROOTFS_DIR/dev