一、移植到RK:
编译相关:
ndi本身没有什么好移植编译的,本身提供的就是so库。但是ndi依赖其它第三方开源库:
avahi; dbus; expat; libcap; libdameon。因为编译这些开源库的服务器也需要安装一些插件所以在自己虚拟机Ubuntu20.04上编译好so,再把so库打包到rootfs目录, 都是开源的读者可以自行下载对应版本就行编译。
目录结构:
xxx@xxx-VirtualBox:~/work/rk3588$ ls
avahi build_spi_nand.sh mkfirmware.sh rockdev
build docs NDI_Advanced_SDK_v5_Linux tinyalsa_new
build_all.sh_bk fdk-aac note.sh tools
build_avahi_all.sh IMAGE RK3588_LINUX_NVR_SDK_Release_V1.4.0_20221021.tgz u-boot
build_emmc.sh kernel rkbin
交叉编译遇到很多问题,这里提供一键编译脚步,编译结果cp到rootfs相应目录:
build_avahi_all.sh 编译脚本:
#!/bin/sh
usage()
{
echo "USAGE: [-A] [-D] [-E] [-C] [-L] [-N] [-R]"
echo "No ARGS means use default build option "
echo "WHERE: -A = build avahi "
echo " -D = build dbus "
echo " -E = build expat "
echo " -C = build libcap "
echo " -L = build libdaemon "
echo " -N = build ndi "
echo " -R = build libdaemon "
exit 1
}
CODE_PATH=$PWD
BUILD_AVAHI=false
BUILD_DBUS=false
BUILD_EXPAT=false
BUILD_CAP=false
BUILD_DAEMON=false
BUILD_NDI=false
BUILD_CLEAN_FLAG=false
BUILD_JOBS=8
# check pass argument
while getopts "ADECLNR" arg
do
case $arg in
A)
echo "will build avahi"
BUILD_AVAHI=true
;;
D)
echo "will dbus"
BUILD_DBUS=true
;;
E)
echo "will build expat"
BUILD_EXPAT=true
;;
C)
echo "will build libcap"
BUILD_CAP=true
;;
L)
echo "will build libdaemon"
BUILD_DAEMON=true
;;
N)
echo "will build ndi"
BUILD_NDI=true
;;
R)
echo "will clean"
BUILD_CLEAN_FLAG=true
;;
?)
usage ;;
esac
done
# set env
echo "start set env..............


1231

被折叠的 条评论
为什么被折叠?



