xref: /OK3568_Linux_fs/debian/mk-iso-debian.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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
24echodecompress ISO25xorriso -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