128 lines
3.7 KiB
Bash
Executable File
128 lines
3.7 KiB
Bash
Executable File
#!/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
|