xref: /OK3568_Linux_fs/debian/mk-rootfs-bullseye.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/bash -e
2
3# Directory contains the target rootfs
4TARGET_ROOTFS_DIR="binary"
5
6case "${ARCH:-$1}" in
7	arm|arm32|armhf)
8		ARCH=armhf
9		;;
10	*)
11		ARCH=arm64
12		;;
13esac
14
15echo -e "\033[36m Building for $ARCH \033[0m"
16
17if [ ! $VERSION ]; then
18	VERSION="release"
19fi
20
21echo -e "\033[36m Building for $VERSION \033[0m"
22
23if [ ! -e linaro-bullseye-alip-*.tar.gz ]; then
24	echo "\033[36m Run mk-base-debian.sh first \033[0m"
25	exit -1
26fi
27
28finish() {
29	sudo umount $TARGET_ROOTFS_DIR/dev
30	exit -1
31}
32trap finish ERR
33
34echo -e "\033[36m Extract image \033[0m"
35sudo tar -xpf linaro-bullseye-alip-*.tar.gz
36
37# packages folder
38sudo mkdir -p $TARGET_ROOTFS_DIR/packages
39sudo cp -rpf packages/$ARCH/* $TARGET_ROOTFS_DIR/packages
40
41# overlay folder
42sudo cp -rpf overlay/* $TARGET_ROOTFS_DIR/
43
44# overlay-firmware folder
45sudo cp -rpf overlay-firmware/* $TARGET_ROOTFS_DIR/
46
47# overlay-debug folder
48# adb, video, camera  test file
49if [ "$VERSION" == "debug" ]; then
50	sudo cp -rpf overlay-debug/* $TARGET_ROOTFS_DIR/
51fi
52
53# bt/wifi firmware
54sudo mkdir -p $TARGET_ROOTFS_DIR/system/lib/modules/
55sudo mkdir -p $TARGET_ROOTFS_DIR/vendor/etc
56
57sudo find ../kernel/drivers/net/wireless/rockchip_wlan/*  -name "*.ko" | \
58    xargs -n1 -i sudo cp {} $TARGET_ROOTFS_DIR/system/lib/modules/
59
60echo -e "\033[36m Change root.....................\033[0m"
61if [ "$ARCH" == "armhf" ]; then
62	sudo cp /usr/bin/qemu-arm-static $TARGET_ROOTFS_DIR/usr/bin/
63elif [ "$ARCH" == "arm64"  ]; then
64	sudo cp /usr/bin/qemu-aarch64-static $TARGET_ROOTFS_DIR/usr/bin/
65fi
66
67sudo cp -f /etc/resolv.conf $TARGET_ROOTFS_DIR/etc/
68
69sudo mount -o bind /dev $TARGET_ROOTFS_DIR/dev
70
71ID=$(stat --format %u $TARGET_ROOTFS_DIR)
72
73cat << EOF | sudo chroot $TARGET_ROOTFS_DIR
74
75# Fixup owners
76if [ "$ID" -ne 0 ]; then
77       find / -user $ID -exec chown -h 0:0 {} \;
78fi
79for u in \$(ls /home/); do
80	chown -h -R \$u:\$u /home/\$u
81done
82
83echo "deb http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list
84echo "deb-src http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free" >> /etc/apt/sources.list
85
86apt-get update
87apt-get upgrade -y
88
89chmod o+x /usr/lib/dbus-1.0/dbus-daemon-launch-helper
90chmod +x /etc/rc.local
91
92export APT_INSTALL="apt-get install -fy --allow-downgrades"
93
94# enter root username without password
95sed -i "s~\(^ExecStart=.*\)~# \1\nExecStart=-/bin/sh -c '/bin/bash -l </dev/%I >/dev/%I 2>\&1'~" /usr/lib/systemd/system/serial-getty@.service
96
97#---------------power management --------------
98\${APT_INSTALL} pm-utils triggerhappy bsdmainutils
99cp /etc/Powermanager/triggerhappy.service  /lib/systemd/system/triggerhappy.service
100
101#---------------Rga--------------
102\${APT_INSTALL} /packages/rga2/*.deb
103
104echo -e "\033[36m Setup Video.................... \033[0m"
105\${APT_INSTALL} gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-ugly gstreamer1.0-tools gstreamer1.0-alsa \
106gstreamer1.0-plugins-base-apps qtmultimedia5-examples
107
108\${APT_INSTALL} /packages/mpp/*
109\${APT_INSTALL} /packages/gst-rkmpp/*.deb
110\${APT_INSTALL} /packages/gstreamer/*.deb
111\${APT_INSTALL} /packages/gst-plugins-base1.0/*.deb
112\${APT_INSTALL} /packages/gst-plugins-bad1.0/*.deb
113\${APT_INSTALL} /packages/gst-plugins-good1.0/*.deb
114\${APT_INSTALL} /packages/gst-plugins-ugly1.0/*.deb
115\${APT_INSTALL} /packages/gst-libav1.0/*.deb
116
117#---------Camera---------
118echo -e "\033[36m Install camera.................... \033[0m"
119\${APT_INSTALL} cheese v4l-utils
120\${APT_INSTALL} /packages/libv4l/*.deb
121\${APT_INSTALL} /packages/cheese/*.deb
122
123#---------Xserver---------
124echo -e "\033[36m Install Xserver.................... \033[0m"
125\${APT_INSTALL} /packages/xserver/*.deb
126
127apt-mark hold xserver-common xserver-xorg-core xserver-xorg-legacy
128
129#---------------Openbox--------------
130echo -e "\033[36m Install openbox.................... \033[0m"
131\${APT_INSTALL} /packages/openbox/*.deb
132
133#---------update chromium-----
134\${APT_INSTALL} /packages/chromium/*.deb
135
136#------------------libdrm------------
137echo -e "\033[36m Install libdrm.................... \033[0m"
138\${APT_INSTALL} /packages/libdrm/*.deb
139
140#------------------libdrm-cursor------------
141echo -e "\033[36m Install libdrm-cursor.................... \033[0m"
142\${APT_INSTALL} /packages/libdrm-cursor/*.deb
143
144#------------------blueman------------
145echo -e "\033[36m Install blueman.................... \033[0m"
146\${APT_INSTALL} blueman
147echo exit 101 > /usr/sbin/policy-rc.d
148chmod +x /usr/sbin/policy-rc.d
149\${APT_INSTALL} blueman
150rm -f /usr/sbin/policy-rc.d
151
152#------------------blueman------------
153echo -e "\033[36m Install blueman.................... \033[0m"
154\${APT_INSTALL} /packages/blueman/*.deb
155
156#------------------rkwifibt------------
157echo -e "\033[36m Install rkwifibt.................... \033[0m"
158\${APT_INSTALL} /packages/rkwifibt/*.deb
159ln -s /system/etc/firmware /vendor/etc/
160
161if [ "$VERSION" == "debug" ]; then
162#------------------glmark2------------
163echo -e "\033[36m Install glmark2.................... \033[0m"
164\${APT_INSTALL} /packages/glmark2/*.deb
165fi
166
167if [ -e "/usr/lib/aarch64-linux-gnu" ] ;
168then
169#------------------rknpu2------------
170echo -e "\033[36m move rknpu2.................... \033[0m"
171mv /packages/rknpu2/*.tar  /
172fi
173
174#------------------rktoolkit------------
175echo -e "\033[36m Install rktoolkit.................... \033[0m"
176\${APT_INSTALL} /packages/rktoolkit/*.deb
177
178echo -e "\033[36m Install Chinese fonts.................... \033[0m"
179# Uncomment zh_CN.UTF-8 for inclusion in generation
180sed -i 's/^# *\(zh_CN.UTF-8\)/\1/' /etc/locale.gen
181echo "LANG=zh_CN.UTF-8" >> /etc/default/locale
182
183# Generate locale
184locale-gen
185
186# Export env vars
187echo "export LC_ALL=zh_CN.UTF-8" >> ~/.bashrc
188echo "export LANG=zh_CN.UTF-8" >> ~/.bashrc
189echo "export LANGUAGE=zh_CN.UTF-8" >> ~/.bashrc
190
191source ~/.bashrc
192
193\${APT_INSTALL} ttf-wqy-zenhei fonts-aenigma
194\${APT_INSTALL} xfonts-intl-chinese
195
196# HACK debian11.3 to fix bug
197\${APT_INSTALL} fontconfig --reinstall
198
199#\${APT_INSTALL} xfce4
200#ln -sf /usr/bin/startxfce4 /etc/alternatives/x-session-manager
201
202# HACK to disable the kernel logo on bootup
203#sed -i "/exit 0/i \ echo 3 > /sys/class/graphics/fb0/blank" /etc/rc.local
204
205cp /packages/libmali/libmali-*-x11*.deb /
206cp -rf /packages/rkisp/*.deb /
207cp -rf /packages/rkaiq/*.deb /
208cp -rf /usr/lib/firmware/rockchip/ /
209
210# reduce 500M size for rootfs
211rm -rf /usr/lib/firmware
212mkdir -p /usr/lib/firmware/
213mv /rockchip /usr/lib/firmware/
214
215# mark package to hold
216apt list --installed | grep -v oldstable | cut -d/ -f1 | xargs apt-mark hold
217
218#---------------Custom Script--------------
219systemctl mask systemd-networkd-wait-online.service
220systemctl mask NetworkManager-wait-online.service
221rm /lib/systemd/system/wpa_supplicant@.service
222
223#------remove unused packages------------
224apt remove --purge -fy linux-firmware*
225
226#---------------Clean--------------
227if [ -e "/usr/lib/arm-linux-gnueabihf/dri" ] ;
228then
229        # Only preload libdrm-cursor for X
230        sed -i "1aexport LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libdrm-cursor.so.1" /usr/bin/X
231        cd /usr/lib/arm-linux-gnueabihf/dri/
232        cp kms_swrast_dri.so swrast_dri.so rockchip_dri.so /
233        rm /usr/lib/arm-linux-gnueabihf/dri/*.so
234        mv /*.so /usr/lib/arm-linux-gnueabihf/dri/
235elif [ -e "/usr/lib/aarch64-linux-gnu/dri" ];
236then
237        # Only preload libdrm-cursor for X
238        sed -i "1aexport LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libdrm-cursor.so.1" /usr/bin/X
239        cd /usr/lib/aarch64-linux-gnu/dri/
240        cp kms_swrast_dri.so swrast_dri.so rockchip_dri.so /
241        rm /usr/lib/aarch64-linux-gnu/dri/*.so
242        mv /*.so /usr/lib/aarch64-linux-gnu/dri/
243        rm /etc/profile.d/qt.sh
244fi
245cd -
246
247rm -rf /var/lib/apt/lists/*
248rm -rf /var/cache/
249rm -rf /packages/
250
251EOF
252
253sudo umount $TARGET_ROOTFS_DIR/dev
254