1#! /bin/bash 2 3ISO_FILE=debian-11.4.0-arm64-DVD-1.iso 4 5DIR="$( cd "$( dirname "$0" )" && pwd )" 6SDK_PATH=$DIR/.. 7INITRD=$DIR/rd 8DEBIAN_DIR=$DIR/iso 9KERNEL_NAME=kernel 10 11if [ ! -f "$DIR/$ISO_FILE" ]; then 12echo "Download Debian ISO" 13wget https://cdimage.debian.org/debian-cd/current/arm64/iso-dvd/$ISO_FILE -P $DIR/ 14if [ $? -ne 0 ] 15then 16 echo "please check link: https://cdimage.debian.org/debian-cd/current/arm64/iso-dvd/$ISO_FILE" 17 exit 18else 19 echo "Download sucess" 20fi 21fi 22 23if [ ! -d "$DEBIAN_DIR" ]; then 24echo “decompress ISO” 25xorriso -osirrox on -indev $DIR/$ISO_FILE -extract / $DEBIAN_DIR 26fi 27 28echo "unpack initrd.gz" 29mkdir -p $INITRD 30cp $DEBIAN_DIR/install.a64/initrd.gz $INITRD/ 31cd $INITRD 32gunzip initrd.gz --quiet 33cpio -di < initrd 34rm initrd 35 36echo "install modules into initrd" 37cd $SDK_PATH/$KERNEL_NAME 38make modules_install INSTALL_MOD_PATH=$INITRD --quiet 39 40echo "pack initrd.gz" 41cd $INITRD 42cp $SDK_PATH/debian/overlay-debug/usr/local/bin/io $INITRD/bin/ 43find . | cpio --quiet -o -H newc --owner 0:0 | gzip > $DEBIAN_DIR/install.a64/initrd.gz 44cd $SDK_PATH 45rm -r $INITRD 46 47if [ ! -d $SDK_PATH/$KERNEL_NAME/debian ]; then 48 echo -e "\033[36m Please compile the kernel deb before: ./build.sh kernel \033[0m" 49 exit 50fi 51 52echo "update kernel deb" 53rm -f $DEBIAN_DIR/pool/main/l/linux-signed-arm64/linux-image-5* 54rm -f $DEBIAN_DIR/pool/main/l/linux/linux-headers-* 55rm -f $DEBIAN_DIR/pool/main/l/linux/linux-libc-* 56rm -f $SDK_PATH/$KERNEL_NAME/linux-image-*dbg*.deb 57cp $SDK_PATH/$KERNEL_NAME/linux-image-*.deb $DEBIAN_DIR/pool/main/l/linux-signed-arm64/ 58cp $SDK_PATH/$KERNEL_NAME/linux-headers-*.deb $DEBIAN_DIR/pool/main/l/linux/ 59cp $SDK_PATH/$KERNEL_NAME/linux-libc-*.deb $DEBIAN_DIR/pool/main/l/linux/ 60cp $SDK_PATH/$KERNEL_NAME/arch/arm64/boot/Image $DEBIAN_DIR/install.a64/vmlinuz 61 62KERNEL_VERSION=$(cat $SDK_PATH/$KERNEL_NAME/include/config/kernel.release) 63 64if [ "$KERNEL_VERSION" == "5.4.18" ]; then 65 echo "insert cmdline into grub.cfg" 66 sed -i 's/vmlinuz/vmlinuz earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,1500000n8/g' $DEBIAN_DIR/boot/grub/grub.cfg 67fi 68 69echo "modify package Depends $KERNEL_VERSION kernel" 70for file in $( find $DEBIAN_DIR/pool/main/l/linux-signed-arm64/ -type f -name '*deb' | sort ) 71do 72rm -rf tmp 73dpkg-deb -I $file | grep "Kernel-Version: " && 74dpkg-deb -R $file tmp && 75sed -i '/^Kernel-Version: /c\Kernel-Version: '"$KERNEL_VERSION"'' tmp/DEBIAN/control && 76dpkg-deb -b tmp $file && 77rm -rf tmp 78 79dpkg-deb -I $file | grep "Depends: linux-image-" && 80dpkg-deb -R $file tmp && 81sed -i '/^Depends: linux-image-/c\Depends: linux-image-'"$KERNEL_VERSION"'' tmp/DEBIAN/control && 82dpkg-deb -b tmp $file && 83rm -rf tmp 84done 85rm -rf tmp 86 87# ------------------rkwifibt------------ 88echo -e "\033[36m Install rkwifibt.................... \033[0m" 89mkdir -p $DEBIAN_DIR/pool/main/rockchip/ 90cp $SDK_PATH/debian/packages/arm64/rkwifibt/*.deb $DEBIAN_DIR/pool/main/rockchip/ 91 92echo "update Release info" 93cd $DEBIAN_DIR/ 94cat << EOF >> deb.conf 95Dir { 96 ArchiveDir "."; 97 OverrideDir "."; 98 CacheDir "."; 99}; 100 101TreeDefault { 102 Directory "pool/"; 103}; 104 105BinDirectory "pool/main" { 106 Packages "dists/bullseye/main/binary-arm64/Packages"; 107}; 108 109Default { 110 Packages { 111 Extensions ".deb"; 112 Compress ". gzip"; 113 }; 114}; 115 116Contents { 117 Compress "gzip"; 118}; 119EOF 120apt-ftparchive generate deb.conf 121rm deb.conf 122 123cat << EOF >> udeb.conf 124Dir { 125 ArchiveDir "."; 126 OverrideDir "."; 127 CacheDir "."; 128}; 129 130TreeDefault { 131 Directory "pool/"; 132}; 133 134BinDirectory "pool/main" { 135 Packages "dists/bullseye/main/debian-installer/binary-arm64/Packages"; 136}; 137 138Default { 139 Packages { 140 Extensions ".udeb"; 141 Compress ". gzip"; 142 }; 143}; 144 145Contents { 146 Compress "gzip"; 147}; 148EOF 149apt-ftparchive generate udeb.conf 150rm udeb.conf 151 152cat << EOF >> release.conf 153APT::FTPArchive::Release::Codename "bullseye"; 154APT::FTPArchive::Release::Origin "Debian"; 155APT::FTPArchive::Release::Components "main"; 156APT::FTPArchive::Release::Label "Debian"; 157APT::FTPArchive::Release::Architectures "arm64"; 158APT::FTPArchive::Release::Suite "bullseye"; 159EOF 160 161apt-ftparchive -c release.conf release dists/bullseye > ../Release 162rm release.conf 163mv ../Release dists/bullseye/Release 164rm dists/bullseye/main/binary-arm64/Packages 165rm dists/bullseye/main/debian-installer/binary-arm64/Packages 166 167find -follow -type f ! -name md5sum.txt -print0 | xargs -0 md5sum > md5sum.txt 168 169echo "repack ISO" 170xorriso -as mkisofs -r -V 'Debian 11 ARM64' -o $SDK_PATH/rockdev/rk3588-$ISO_FILE -J -joliet-long -cache-inodes -e /boot/grub/efi.img -no-emul-boot -append_partition 2 0xef $DEBIAN_DIR/boot/grub/efi.img -partition_cyl_align all $DEBIAN_DIR 171