鸿鸥派板端QT移植教程

鸿鸥派板端QT移植教程 易百纳技术社区 2026-04-10 16:15:35 61

目录


1. QT源码下载

2. QT源码编译

2.1. 解压QT源码

2.2. 修改qmake

2.3. configure 配置

2.4. 编译与安装

3. HIFB/GFBG 适配

3.1. 修改linuxfb插件

3.2. 编译

4. 板端环境部署

4.1. 添加板端QT运行环境

4.2. linuxfb 插件

4.3. QT依赖库

4.4. 字库

5. 板端测试QT程序


1. QT源码下载

官网链接:https://download.qt.io/archive/qt/

2. QT源码编译

2.1. 解压QT源码

tar -xvf qt-everywhere-opensource-src-5.15.16.tar.xz

2.2. 修改qmake

进入 qt-everywhere-src-5.15.16/qtbase/mkspecs/目录,复制一份 linux-aarch64-linux-gnu-g++为 aarch64-v01c01-linux-gnu-g++, 打开文件夹下面文件 qmake.conf, 将”aarch64-linux-gnu-” 替换为”aarch64-v01c01-linux-gnu-“, 如下图所示:

易百纳社区

2.3. configure 配置

(1) 回到源码根目录, 新建 auto_build.sh 并添加以下配置:auto_build.sh

易百纳社区

易百纳社区

注意:以上配置做了一定的裁剪,可按需进行修改。

-prefix "$PWD"/Hi3519DV500_QT_INTASLL : 指定安装路径为源码目录Hi3519DV500_QT_INTASLL。
 
-xplatform aarch64-v01c01-linux-gnu-g++ : 指定编译器为aarch64-v01c01-linux-gnu-g++

(2) 执行./auto_build.sh , 出现以下信息则说明配置没问题。

易百纳社区

2.4. 编译与安装

源码目录执行 make && make insatll

make && make insatll 

3. HIFB/GFBG 适配

参考文档以及代码:

ReleaseDoc\zh\01.software\board\MPP\GFBG 开发指南.pdf
ReleaseDoc\zh\01.software\board\MPP\GFBG API 参考.pdf
Hi3519DV500_SDK_V2.0.2.0/smp/a55_linux/source/mpp/sample/gfbg/sample_gfbg.c

HIFB/GFBG 相关说明可参考以上文档,以下不进行详细描述,只总结以下两个要点:

  • HIFB/GFBG 开启前,必须先打开 VO 设备。
  • colorkey 功能能让 QT 层设置成配置的颜色时透明,从而达到显示视频层的效果。

3.1. 修改linuxfb插件

(1) 进入源码目录 qt-everywhere-src-5.15.16/qtbase/src/plugins/platforms,复制一份 linuxfb 并改名为 linuxfb_hi3519dv500

易百纳社区

(2) 修改qlinuxfbscreen.cpp 代码进行以下修改:

a. 设置FB 输出大小

易百纳社区

b. 在 initialize 函数中添加海思相关 HIFB/GFBG 配置,相关代码参考于Hi3519DV500_SDK_V2.0.2.0/smp/a55_linux/source/mpp/sample/gfbg/sample_gfbg.c

易百纳社区

易百纳社区

易百纳社区

c. 绘制函数 doRedraw 中修改为对 HIFB/GFBG 画布更新

易百纳社区

d. 析构函数 QLinuxFbScreen 释放相关资源

易百纳社区

3.2. 编译

(1) linuxfb.pro 适配

a. 拷贝 HIFB/GFBG 相关库文件和头文件到qt-everywhere-src-5.15.16/qtbase/src/plugins/platforms/linuxfb_hi3519dv500 目录下,相关库文件和头文件可从 SDK 目录 Hi3519DV500_SDK_V2.0.2.0/smp/a55_linux/source/out 中获取,可以先一次性复制 lib 和 include 目录。

b. 修改linuxfb.pro 文件

易百纳社区

c. 需要依赖的头文件和库

易百纳社区

(2) 编译插件

进入 qt-everywhere-src-5.15.16/qtbase/src/plugins/platforms/linuxfb_ss928v100 目录,打开终端,执行下图命令,即可生成 makefile

易百纳社区

执行 make 操作,即可在目录 qt-everywhere-src-5.15.16/qtbase/plugins/platforms 生成libqlinuxfb_hi3519dv500.so 文件。

易百纳社区

4. 板端环境部署

4.1. 添加板端QT运行环境

板端/etc/profile 文件中添加 QT 运行环境

export QT_QPA_PLATFORM_PLUGIN_PATH=/opt/plugins
export LD_LIBRARY_PATH=/opt/lib/
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=1920x1080:offset=0x0:nographicsmodeswitch
export QT_QPA_FONTDIR=/opt/fonts

注意:

a).size=1920x1080, 尽量与 libqlinuxfb_hi3519dv500.so 插件里 FBIOPUT_VSCREENINFO 设置的大小一致;

b).load3519dv500 中 gfbg.ko 参数配置, 参考 ReleaseDoc\zh\01.software\board\MPP\GFBG 开发指南.pdf 2.模块加载。

易百纳社区

4.2. linuxfb 插件

拷贝libqlinuxfb_ss928v100.so 插件到板端/opt/plugins 目录下

易百纳社区

4.3. QT依赖库

拷贝 QT 相关库到板端/opt/lib 目录下,仅拷贝测试验证相关库,如果程序中依赖了其他 QT 库,也需要拷贝到该目录下

易百纳社区

易百纳社区

4.4. 字库

拷贝字符文件到板端/opt/fonts 下,OPlusSans3-Medium.ttf 为一加开源免费使用的字库

易百纳社区  

5. 板端测试QT程序

(1) 修改并编译 QT 测试程序,以qt-everywhere-src-5.15.16/qtbase/examples/widgets/animation/moveblocks 为例。

易百纳社区

(2) 在该目录下打开终端执行如下图命令, 生成 makefile,执行 make 生成可执行程序moveblocks

易百纳社区

(3) 拷贝 moveblocks 到板端, 由于 HIFB/GFBG 的运行依赖 VO 设备的开启,板端需运行相关程序例如 sample_v io 打开 VO 设备。

易百纳社区

易百纳社区

易百纳社区

fb插件未过滤颜色

易百纳社区

代码修改后

易百纳社区

代码修改前

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
易百纳技术社区
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区