Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
orangepi-xunlong
GitHub Repository: orangepi-xunlong/orangepi-build
Path: blob/next/external/config/sources/families/cix.conf
22895 views
1
ARCH="arm64"
2
3
LINUXFAMILY="cix"
4
BOOTCONFIG="none"
5
ATF_COMPILE="no"
6
EXTERNAL_NEW="none"
7
8
SERIALCON="ttyAMA2"
9
KERNEL_COMPILER='aarch64-none-linux-gnu-'
10
11
case $BRANCH in
12
13
current)
14
if [[ $GITEE_SERVER == yes ]]; then
15
KERNELSOURCE="https://gitee.com/orangepi-xunlong/orange-pi-6.1-cix.git"
16
fi
17
KERNELBRANCH='branch:orange-pi-6.1-cix'
18
KERNELPATCHDIR='cix-current'
19
LINUXCONFIG="linux-6.1-cix-p1-current"
20
KERNEL_USE_GCC='> 12.0'
21
ROOTFSCACHE_VERSION=12
22
;;
23
24
next)
25
if [[ $GITEE_SERVER == yes ]]; then
26
KERNELSOURCE="https://gitee.com/orangepi-xunlong/orange-pi-6.6-cix.git"
27
fi
28
KERNELBRANCH='branch:orange-pi-6.6-cix'
29
KERNELPATCHDIR='cix-next'
30
LINUXCONFIG="linux-6.6-cix-p1-next"
31
KERNEL_USE_GCC='> 12.0'
32
ROOTFSCACHE_VERSION=11
33
;;
34
esac
35
36
family_tweaks_bsp() {
37
:
38
}
39
40
function create_cix_deb() {
41
local pkg_Name="$1"
42
local PATH_CHANGELOGS=${EXTER}/cache/sources/component_cix-${BRANCH}/changelogs
43
local PRIVATE_DEB_PACKAGES=("cix-dpu-ddk" "cix-npu-umd" "cix-isp-umd" "cix-gpu-umd" "cix-audio-dsp" "cix-hdcp2" "cix-noe-umd")
44
local CIX_DEB_VERSION="0.01-1"
45
46
display_alert "Building cix deb" "${pkg_Name}" "info"
47
CHANGELOG="$PATH_CHANGELOGS/changelog.${pkg_Name}"
48
if [[ ! -f "$CHANGELOG" ]]; then
49
exit_with_error "changelog not found" "${CHANGELOG}"
50
fi
51
52
VERSION=$(grep -m 1 -oP '^\S+\s+\(\K[^)]+(?=\))' "$CHANGELOG")
53
if [[ ! -n "$VERSION" ]]; then
54
display_alert "get Version failed from: ${CHANGELOG}, will use default version" "1.0.0" "info"
55
sleep 10
56
VERSION="1.0.0"
57
fi
58
59
local pkg_Ver=$VERSION
60
local pkg_private=false
61
62
for str in "${PRIVATE_DEB_PACKAGES[@]}"; do
63
if [[ "$str" == "$pkg_Name" ]]; then
64
rm -rf ${PATH_OUT_DEB_PACKAGES}/$pkg_Name
65
cp -r ${PATH_OUT_PRIVATE_DEB_PACKAGES}/${pkg_Name} ${PATH_OUT_DEB_PACKAGES}/$pkg_Name
66
break
67
fi
68
done
69
70
local build_deb_dir="${PATH_OUT_DEB_PACKAGES}/${pkg_Name}"
71
72
case "$pkg_Name" in
73
(*)
74
CONTROL_CONTENT="Package: ${pkg_Name}
75
Version: ${pkg_Ver}
76
Architecture: arm64
77
Maintainer: Cix OS team
78
Depends: libc6 (>= 2.34)
79
Section: utils
80
Priority: optional
81
Description: $pkg_Name package"
82
;;
83
esac
84
85
if [[ -e $build_deb_dir/usr/share/doc/$pkg_Name ]]; then
86
if [[ -e $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian.gz ]]; then
87
rm -rf $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian.gz
88
fi
89
else
90
mkdir -p $build_deb_dir/usr/share/doc/$pkg_Name
91
fi
92
93
cp $CHANGELOG $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian
94
gzip $build_deb_dir/usr/share/doc/$pkg_Name/changelog.Debian
95
96
if [[ -e $PATH_OUT_PRIVATE_DEB_PACKAGES/copyright/$pkg_Name ]]; then
97
mkdir -p $build_deb_dir/usr/share/doc/$pkg_Name
98
cp $PATH_OUT_PRIVATE_DEB_PACKAGES/copyright/$pkg_Name/copyright $build_deb_dir/usr/share/doc/$pkg_Name
99
fi
100
101
if [[ -e "$build_deb_dir" ]]; then
102
if [[ ! -e "$build_deb_dir/DEBIAN/control" ]]; then
103
mkdir -p "$build_deb_dir/DEBIAN"
104
echo "${CONTROL_CONTENT}" > "$build_deb_dir/DEBIAN/control"
105
else
106
sed -i "s/^Version: .*/Version: $pkg_Ver/" "$build_deb_dir/DEBIAN/control"
107
fi
108
109
chmod -R 755 "$build_deb_dir"
110
chmod -R g-s "$build_deb_dir"
111
rm -f ${PATH_OUT_DEB_PACKAGES}/${pkg_Name}_*.deb
112
dpkg-deb -b --root-owner-group "$build_deb_dir" "${PATH_OUT_DEB_PACKAGES}/${pkg_Name}_${pkg_Ver}_arm64.deb" > /dev/null
113
rm -rf ${PATH_OUT_DEB_PACKAGES}/${pkg_Name}
114
else
115
display_alert "deb path does not exist" "${build_deb_dir}" "info"
116
fi
117
}
118
119
family_tweaks_kernel () {
120
121
cix_open_src=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_opensource
122
PATH_OUT_PRIVATE_DEB_PACKAGES=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_proprietary/cix_proprietary-debs
123
PATH_OUT_DEB_PACKAGES=${DEB_STORAGE}/cix_debs-${BRANCH}
124
125
export ARCH=arm64
126
export KDIR=${SRC}/kernel/${KERNELBRANCH#branch:}
127
export CROSS_COMPILE=${toolchain}/${KERNEL_COMPILER}
128
129
[[ -d ${PATH_OUT_DEB_PACKAGES} ]] && rm -r ${PATH_OUT_DEB_PACKAGES}
130
mkdir -p ${PATH_OUT_DEB_PACKAGES}
131
132
cd ${cix_open_src}/vpu/vpu_driver/
133
bash ./clean.sh > /dev/null
134
scons $CTHREADS target=linux > /dev/null
135
# build deb package
136
pkg_Name="cix-vpu-driver"
137
linux_version=$(strings ${SRC}/output/cix/Image | grep "Linux version" | cut -d' ' -f3 | head -1)
138
build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}
139
rm -rf ${build_deb_dir}
140
install_dir=${build_deb_dir}/usr/share/cix/bin
141
install_dir_kernel_modules=${build_deb_dir}/lib/modules/${linux_version}/extra
142
install_dir_include=${build_deb_dir}/usr/share/cix/include
143
install_dir_firmware="${build_deb_dir}/lib/firmware"
144
mkdir -p ${install_dir}
145
mkdir -p ${install_dir_kernel_modules}
146
mkdir -p ${install_dir_include}
147
mkdir -p ${install_dir_firmware}
148
if [ -f bin/aarch64-none-linux-gnu/amvx.ko ]; then
149
cp bin/aarch64-none-linux-gnu/amvx.ko ${install_dir_kernel_modules}
150
cp include/aarch64-none-linux-gnu/mvx-v4l2-controls.h ${install_dir_include}
151
if [[ -d "${PATH_OUT_PRIVATE_DEB_PACKAGES}/cix-vpu-umd/usr/lib/firmware" ]]; then
152
cp -fp ${PATH_OUT_PRIVATE_DEB_PACKAGES}/cix-vpu-umd/usr/lib/firmware/* ${install_dir_firmware}/
153
fi
154
create_cix_deb "${pkg_Name}"
155
else
156
exit_with_error "vpu: amvx.ko module not exist"
157
fi
158
# finish build deb package
159
cd - > /dev/null
160
161
export COMPASS_DRV_BTENVAR_ARCH=${ARCH}
162
export COMPASS_DRV_BTENVAR_KMD_DIR=driver
163
export COMPASS_DRV_BTENVAR_KMD_VERSION=5.11.0
164
export COMPASS_DRV_BTENVAR_KPATH=${KDIR}
165
export BUILD_AIPU_VERSION_KMD=BUILD_ZHOUYI_V3
166
export BUILD_TARGET_PLATFORM_KMD=BUILD_PLATFORM_SKY1
167
export BUILD_NPU_DEVFREQ=y
168
cd ${cix_open_src}/npu/npu_driver
169
cp -f ${COMPASS_DRV_BTENVAR_KMD_DIR}/armchina-npu/include/armchina_aipu.h ${KDIR}/include/uapi/misc
170
make $CTHREADS -C ${COMPASS_DRV_BTENVAR_KMD_DIR} ARCH=${COMPASS_DRV_BTENVAR_ARCH} CROSS_COMPILE=${CROSS_COMPILE} clean > /dev/null
171
make $CTHREADS -C ${COMPASS_DRV_BTENVAR_KMD_DIR} ARCH=${COMPASS_DRV_BTENVAR_ARCH} CROSS_COMPILE=${CROSS_COMPILE} > /dev/null
172
pkg_Name="cix-npu-driver"
173
if [ -f ${COMPASS_DRV_BTENVAR_KMD_DIR}/aipu.ko ]; then
174
# build deb package
175
build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}
176
rm -rf ${build_deb_dir}
177
install_dir=${build_deb_dir}/lib/modules/${linux_version}/extra
178
dkms_src_dir=${build_deb_dir}/usr/src
179
mkdir -p ${install_dir}
180
mkdir -p ${dkms_src_dir}
181
cp ${COMPASS_DRV_BTENVAR_KMD_DIR}/aipu.ko ${install_dir}
182
make $CTHREADS -C ${COMPASS_DRV_BTENVAR_KMD_DIR} ARCH=${COMPASS_DRV_BTENVAR_ARCH} CROSS_COMPILE=${CROSS_COMPILE} clean > /dev/null
183
cp -r ${COMPASS_DRV_BTENVAR_KMD_DIR} ${dkms_src_dir}/aipu-${COMPASS_DRV_BTENVAR_KMD_VERSION}
184
create_cix_deb "${pkg_Name}"
185
rm -f $PATH_LINUX/include/uapi/misc/armchina_aipu.h
186
# finish build deb package
187
else
188
exit_with_error "npu: aipu.ko module not exist"
189
fi
190
cd - > /dev/null
191
192
export CONFIG_MALI_BASE_MODULES=y
193
export CONFIG_MALI_MEMORY_GROUP_MANAGER=y
194
export CONFIG_MALI_PROTECTED_MEMORY_ALLOCATOR=y
195
export CONFIG_MALI_PLATFORM_NAME="sky1"
196
export CONFIG_MALI_CSF_SUPPORT=y
197
export CONFIG_MALI_CIX_POWER_MODEL=y
198
cd ${cix_open_src}/gpu
199
bash clean.sh > /dev/null
200
gpu_driver_dir=${cix_open_src}/gpu/gpu_kernel/drivers
201
if [[ "${DOCKER_MODE}" == "docker" ]]; then
202
ARCH=arm64 make KCFLAGS="-D__ANDROID_COMMON_KERNEL__ -DUSING_DOCKER_MODE" $CTHREADS -C ${gpu_driver_dir}/base/arm/ > /dev/null
203
ARCH=arm64 make KCFLAGS="-D__ANDROID_COMMON_KERNEL__ -DUSING_DOCKER_MODE" $CTHREADS -C ${gpu_driver_dir}/gpu/arm/ > /dev/null
204
else
205
ARCH=arm64 make $CTHREADS -C ${gpu_driver_dir}/base/arm/ > /dev/null
206
ARCH=arm64 make $CTHREADS -C ${gpu_driver_dir}/gpu/arm/ > /dev/null
207
fi
208
# build deb package
209
pkg_Name="cix-gpu-driver"
210
build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}
211
rm -rf ${build_deb_dir}
212
install_dir=${build_deb_dir}/lib/modules/${linux_version}/extra
213
mkdir -p ${install_dir}
214
if [ -f ${gpu_driver_dir}/gpu/arm/midgard/mali_kbase.ko ]; then
215
cp ${gpu_driver_dir}/base/arm/memory_group_manager/memory_group_manager.ko ${install_dir}
216
cp ${gpu_driver_dir}/base/arm/protected_memory_allocator/protected_memory_allocator.ko ${install_dir}
217
cp ${gpu_driver_dir}/gpu/arm/midgard/mali_kbase.ko ${install_dir}
218
create_cix_deb "${pkg_Name}"
219
else
220
exit_with_error "gpu: amxv.ko module not exist"
221
fi
222
# finish build deb package
223
cd - > /dev/null
224
225
local DRV_DIR=${cix_open_src}/isp/isp_driver
226
MODULE=armcb_isp_v4l2
227
cd "${DRV_DIR}"
228
make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} $CTHREADS PATH_ROOT=${KDIR} clean > /dev/null
229
make ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} $CTHREADS PATH_ROOT=${KDIR} build > /dev/null
230
if [ -f ${DRV_DIR}/${MODULE}.ko ]; then
231
# build deb package
232
pkg_Name="cix-isp-driver-v4l2"
233
build_deb_dir=${PATH_OUT_DEB_PACKAGES}/${pkg_Name}
234
rm -rf ${build_deb_dir}
235
install_dir=${build_deb_dir}/lib/modules/${linux_version}/extra
236
mkdir -p ${install_dir}
237
cp ${DRV_DIR}/${MODULE}.ko ${install_dir}
238
create_cix_deb "${pkg_Name}"
239
else
240
exit_with_error "${MODULE}.ko module not exist"
241
fi
242
cd - > /dev/null
243
244
rm ${SRC}/output/debs/linux-dtb* > /dev/null 2>&1
245
rm ${SRC}/output/debs/linux-libc-dev* > /dev/null 2>&1
246
}
247
248
install_cix_debs() {
249
250
[[ $BUILD_DESKTOP != yes ]] && return
251
252
display_alert "Installing" "Cix debs" "info"
253
254
rm -rf ${SDCARD}/bin/sh
255
run_on_sdcard "ln -sf /bin/bash /bin/sh"
256
257
local POOL_PATH=${EXTER}/cache/sources/component_cix-${BRANCH}/cix_proprietary/cix_proprietary-debs
258
local DEB_PATH=${SDCARD}/root/debs
259
260
mkdir -p ${DEB_PATH}
261
if [[ $BRANCH == current ]]; then
262
cp -fp $POOL_PATH/pool/main/*/*/*.deb ${DEB_PATH}/
263
cp -fp $POOL_PATH/pool/main/*/*.deb ${DEB_PATH}/
264
fi
265
266
if [[ ${RELEASE} == noble ]]; then
267
cp ${EXTER}/cache/sources/component_cix-${BRANCH}/debs/cix-npu-onnxruntime*.deb ${DEB_PATH}/
268
cp ${EXTER}/cache/sources/component_cix-${BRANCH}/ubuntu_debs/*.deb ${DEB_PATH}/
269
270
chroot $SDCARD /bin/bash -e -c "apt-get -y --allow-downgrades install /root/debs/*.deb"
271
rm ${DEB_PATH} -rf
272
else
273
cp ${EXTER}/cache/sources/component_cix-${BRANCH}/debs/*.deb ${DEB_PATH}/
274
275
chroot $SDCARD /bin/bash -e -c "apt-get -y --allow-downgrades install /root/debs/*.deb"
276
run_on_sdcard "systemctl mask swap.target"
277
run_on_sdcard "systemctl enable cix_resume.service"
278
run_on_sdcard "systemctl enable cix_resume_prepare.service"
279
rm ${DEB_PATH} -rf
280
281
run_on_sdcard "EBIAN_FRONTEND=noninteractive apt-get -yqq install pulseaudio"
282
run_on_sdcard "EBIAN_FRONTEND=noninteractive apt-get -yqq remove wireplumber"
283
run_on_sdcard "EBIAN_FRONTEND=noninteractive apt-get -yqq remove pipewire-pulse"
284
dpkg_install_deb_chroot "${EXTER}/cache/sources/component_cix-${BRANCH}/debs_manual/gnome-core_arm64.deb"
285
fi
286
287
rm $SDCARD/root/*.deb >/dev/null 2>&1
288
}
289
290
family_tweaks() {
291
292
#install_cix_debs
293
install_balenaEtcher
294
#install_wiringop
295
296
if [[ -L "${SDCARD}/usr/lib/policykit-1/polkit-agent-helper-1" ]]; then
297
chmod 5755 ${SDCARD}/usr/lib/policykit-1/polkit-agent-helper-1
298
fi
299
300
cp ${DEB_STORAGE}/cix_debs-${BRANCH} ${SDCARD}/root/ -rf
301
run_on_sdcard "apt-get -y --allow-downgrades install /root/cix_debs-${BRANCH}/*.deb"
302
303
linux_version=$(strings ${SRC}/output/cix/Image | grep "Linux version" | cut -d' ' -f3 | head -1)
304
305
run_on_sdcard "depmod -a $linux_version/"
306
rm -rf ${SDCARD}/root/cix_debs-${BRANCH}
307
rm -rf ${SDCARD}/usr/local/test.mp4
308
309
touch ${SDCARD}/root/.Xauthority
310
311
mv ${SDCARD}/usr/share/cix/bin/spidev_test ${SDCARD}/usr/bin/ >/dev/null 2>&1
312
rm ${SDCARD}/usr/share/cix/bin/isp_app >/dev/null 2>&1
313
314
sed -i 's/^ENABLED=true$/ENABLED=false/' ${SDCARD}/etc/default/orangepi-zram-config
315
316
run_on_sdcard "systemctl --no-reload enable [email protected] >/dev/null 2>&1"
317
if [[ ${RELEASE} == bookworm ]]; then
318
run_on_sdcard "systemctl mask ssh.socket" >/dev/null 2>&1
319
fi
320
321
rsync -a --chown=root:root "${EXTER}"/packages/bsp/overlays_cix/* ${SDCARD}/
322
if [[ $BRANCH == next ]]; then
323
rsync -a --chown=root:root "${EXTER}"/packages/bsp/overlays_cix_next/* ${SDCARD}/
324
fi
325
run_on_sdcard "systemctl --no-reload enable isp-daemon.service >/dev/null 2>&1"
326
327
#run_on_sdcard "apt-get -qqy install libgpiod-dev libgpiod2 gpiod >/dev/null 2>&1"
328
329
if [[ ${RELEASE} == noble ]]; then
330
sed -i 's/^# *AutomaticLoginEnable.*/AutomaticLoginEnable = true/' ${SDCARD}/etc/gdm3/custom.conf
331
sed -i "s/^# *AutomaticLogin.*/AutomaticLogin = ${OPI_USERNAME}/" ${SDCARD}/etc/gdm3/custom.conf
332
333
# fix cix chromium
334
cp ${EXTER}/cache/sources/component_cix-${BRANCH}/ubuntu_debs/libjpeg.so.62 $SDCARD/usr/lib/aarch64-linux-gnu/
335
336
run_on_sdcard "apt-mark hold \
337
gstreamer1.0-gl \
338
gstreamer1.0-gtk3 \
339
gstreamer1.0-plugins-base \
340
gstreamer1.0-plugins-base-apps \
341
gstreamer1.0-plugins-good \
342
gstreamer1.0-pulseaudio \
343
gir1.2-gst-plugins-base-1.0 \
344
libgstreamer-plugins-base1.0-0 \
345
libgstreamer-plugins-good1.0-0 \
346
libavcodec60 \
347
xwayland"
348
else
349
sed -i 's/^# *AutomaticLoginEnable.*/AutomaticLoginEnable = true/' ${SDCARD}/etc/gdm3/daemon.conf
350
sed -i "s/^# *AutomaticLogin.*/AutomaticLogin = ${OPI_USERNAME}/" ${SDCARD}/etc/gdm3/daemon.conf
351
fi
352
353
rm $SDCARD/root/*.deb >/dev/null 2>&1
354
}
355
356
install_balenaEtcher(){
357
358
if [[ $BUILD_DESKTOP == yes && $install_balena_etcher == yes ]]; then
359
360
[[ ${RELEASE} == noble ]] && return
361
362
if [[ ${RELEASE} == backup ]]; then
363
balena_etcher_name=balenaEtcher-1.7.9+5945ab1f-arm64.AppImage
364
else
365
balena_etcher_name=balena-etcher-electron_1.7.9+5945ab1f_arm64.deb
366
fi
367
368
balena_etcher_url="https://github.com/Itai-Nelken/BalenaEtcher-arm/releases/download/v1.7.9/${balena_etcher_name}"
369
balena_etcher=${EXTER}/cache/debs/arm64/${balena_etcher_name}
370
371
if [[ ! -f ${balena_etcher} ]]; then
372
wget -P ${EXTER}/cache/debs/arm64 ${balena_etcher_url}
373
fi
374
375
if [[ ${RELEASE} == backup ]]; then
376
display_alert "Installing" "${balena_etcher_name}" "info"
377
cp ${balena_etcher} $SDCARD/opt/
378
chmod +x $SDCARD/opt/${balena_etcher_name}
379
else
380
install_deb_chroot ${balena_etcher}
381
rm $SDCARD/root/*.deb >/dev/null 2>&1
382
fi
383
fi
384
}
385
386