修罗

RK3568基于ubuntu20.04编译linphone-desktop
RK3568基于ubuntu20.04编译linphone-desktoprk3568为arm64架构,板子内存为...
扫描右侧二维码阅读全文
08
2023/07

RK3568基于ubuntu20.04编译linphone-desktop

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

image-20230708104842393.png

推荐一个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,

解决

image-20230708102457134.png

往上看,编译器没有正确识别,因为rk3568为arm64,需要指定此架构;

\linphone-desktop\linphone-sdk\cmake-builder\builders\vpx.cmake指定架构:

image-20230708102709474.png

写死arm64即可

问题五:

  • 编译mediastreamer2时报错error: unused parameter ‘flags’ [-Werror=unused-parameter]

解决

就是函数参数定义了没使用然后报错,粗暴一点直接干掉

参考

https://blog.csdn.net/crazymegic/article/details/127933470

注意:参考链接文中的4.5.0-alpha编译后在开发板上无法正确识别摄像头;

Last modification:September 13th, 2023 at 11:35 am

Leave a Comment