RK3568基于ubuntu20.04编译linphone-desktop
rk3568为arm64架构,板子内存为2+16g,可以直接在板子上编译,不用交叉编译;
已测试4.4.10版本和5.15版本,发现4.4.10版本更流畅;
linphone4.10版本下载
git clone --branch 4.4.10 https://gitlab.linphone.org/BC/public/linphone-desktop.git --recursive
安装依赖
sudo apt install yasm nasm doxygen perl git pkg-config python3-pip cmake v4l-utils libv4l-dev libx11-dev libpulse-dev pulseaudio apulse
sudo apt install mesa-common-dev libglu1-mesa-dev libegl1-mesa-dev
sudo apt-get install -y libglew-dev
sudo pip3 install pystache six
安装qt5.12.8
选择apt安装,也可编译安装;
sudo apt install qt5-default
后面编译会提示一些qt模块没有安装,报的哪个没有安装直接apt安装即可;
编译linphone
进入下载好的linphone,执行命令:
cd linphone-desktop
mkdir build
cd build
# 有一些库没有编译,可自行选择
cmake .. -DCMAKE_BUILD_PARALLEL_LEVEL=4 -DENABLE_FFMPEG=OFF -DENABLE_MSWEBRTC=true -DENABLE_WEBRTC_AEC=true -DENABLE_UNIT_TESTS=OFF -DENABLE_MKV=true -DENABLE_CXX_WRAPPER=true -DENABLE_NON_FREE_CODECS=ON -DENABLE_VCARD=true -DENABLE_BV16=true -DENABLE_V4L=true -DENABLE_OPUS=OFF -DCMAKE_BUILD_TYPE=Release
cmake --build . --target install --parallel 4 --config RelWithDebInfo
-DCMAKE_BUILD_PARALLEL_LEVEL
多线程编译。-DENABLE
开启关闭某个模块的编译。- 编译linphone4.10版本时,opus库报错,由于之前测试opus音频编解码库在开发板表现不好,直接不编译了。
- 注意在rk3288上编译时,
cmake ..
命令后面加上-DCMAKE_C_FLAGS="-mcpu=native -mfpu=auto"
,rk3568不需要;
没有报错即编译成功,在图形界面,到build启动linphone:
./OUTPUT/bin/linphone --verbose
推荐一个window的sip服务
免费提供5人使用
https://www.myvoipapp.com/download/index.html
编译可能出现的问题
问题一:
- `CMake Error at /usr/share/bctoolbox/cmake/bctoolboxCMakeUtils.cmake:146 (message):
invalid git describe version: ''`
解决:在linphone-desktop和linphone-sdk目录里执行:git submodule sync && git submodule update --init --recursive
参考:https://github.com/BelledonneCommunications/linphone-desktop/issues/684
问题二:
- C++: fatal error: Killed signal terminated program cc1plus
解决:可能是内存不足,通过swap分区添加虚拟内存
# 创建分区路径
sudo mkdir -p /var/cache/swap/
# 设置分区的大小
# bs=64M是块大小,count=32是块数量,所以swap空间大小是bs*count=2048MB=2GB
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=32
# 设置该目录权限
sudo chmod 0600 /var/cache/swap/swap0
# 创建SWAP文件
sudo mkswap /var/cache/swap/swap0
# 激活SWAP文件
sudo swapon /var/cache/swap/swap0
# 查看SWAP信息是否正确
sudo swapon -s
删除交换分区的命令:
sudo swapoff /var/cache/swap/swap0
sudo rm /var/cache/swap/swap0
# 释放空间命令:
sudo swapoff -a
#详细的用法:swapoff --help
#查看当前内存使用情况:free -m
问题三:
- 已安装pystache,编译仍然提示‘pystache‘ python module found
- attributeerror: module 'pystache' has no attribute 'renderer'
解决:卸载重新安装,然后通过sudo编译
参考:https://blog.csdn.net/liluochengren/article/details/118599947
问题四:
- vpx编译失败
报错:Configuration failed. This could reflect a misconfiguration of your
toolchains,
解决:
往上看,编译器没有正确识别,因为rk3568为arm64,需要指定此架构;
在\linphone-desktop\linphone-sdk\cmake-builder\builders\vpx.cmake
指定架构:
写死arm64即可
问题五:
- 编译mediastreamer2时报错
error: unused parameter ‘flags’ [-Werror=unused-parameter]
,
解决:
就是函数参数定义了没使用然后报错,粗暴一点直接干掉
参考
https://blog.csdn.net/crazymegic/article/details/127933470
注意:参考链接文中的4.5.0-alpha编译后在开发板上无法正确识别摄像头;
修罗 管理员 2024-06-07 17:45 回复
12223332323