如题所示,在RK3566的buildroot文件系统下添加qt5模块
- 1,参考文章
- 2,buildroot配置
- 3, 编译例程
- 4,部署到开发板运行
- 5,修改buildroot默认桌面,设置为qt软件启动
1,参考文章
https://blog.csdn.net/OnlyLove_/article/details/128160695
2,buildroot配置
在泰山派上由于之前已经整体编译过一遍SDK了,所以我是在此基础上进行qt5模块的添加,如果你没有编译过SDK请自行编译一遍:https://lceda001.feishu.cn/wiki/Da5owUV4dipiqUkZycbcxckinvc,关于编译过程中可能产生的问题可以参考这篇文章:https://oshwhub.com/forum/post/14e4b189490c4d3d9ec2142f6751ce15
1,添加qt5
Target packages --->
Graphic libraries and applications (graphic/text) --->
[*] Qt5 --->
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/aefbe9978e6a41a3a48d23a590f694d8.png)
2,添加qt5的附属模块,否则可能导致下载过不去,会报缺失模块的错误(如果出现缺失模块的错误的话,我暂时没找到解决方法,也是通过重新编译了一个新的buildroot才通过的)
Target packages --->
Graphic libraries and applications (graphic/text) --->
[*] Qt5 --->
[*] gui module
[*] widgets module
[*] GIF support
[*] JPEG support
[*] PNG support
3,保存配置文件
在menuconfig里save保存后,回到终端输入make savedefconfig保存当前配置为默认配置文件,如果出现了Makefile:3: *** “Please use “source buildroot/build/envsetup.sh” to select a buildroot config”。 停止。
的问题按照提示输入source buildroot/build/envsetup.sh,然后选择65即可
3, 编译例程
进到~/SDK_tsPi/buildroot/output/rockchip_rk3566/build/qt5base-5.15.2/examples/widgets/
目录中选中一个例程,我这里选择的是animation,然后在目录中输入
/home/monisa/SDK_tsPi/buildroot/output/rockchip_rk3566/build/qt5base-5.15.2/bin/qmake animation.pro
选择qmake模块编译工程,编译完成后会生成可执行文件
然后将这个可执行文件拷贝到我们的内存卡中
4,部署到开发板运行
输入./mkfirmware.sh打包文件然后在rockdev目录下找到rootfs.img,打开RKDevTool.exe烧录工具,选择rootfs.img文件烧录到系统中
插入sd卡后将/media/sdcard1/中的文件移到到文件系统里的任意一个地方,我这里移到到了根目录上,然后输入./animatedtiles --platform linuxfb 稍等一下即可运行
./animatedtiles --platform linuxfb
5,修改buildroot默认桌面,设置为qt软件启动
buildroot默认的桌面系统是使用的是weston 在这个启动脚本下,/etc/init.d/S49weston ,所以我们需要修改这个启动脚本,添加我们自己的软件启动
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: weston
# Required-Start: mountvirtfs
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Linux weston daemon
### END INIT INFO
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
# Load default env variables from profiles(e.g. /etc/profile.d/weston.sh)
. /etc/profile
#start_weston()
#{
# /usr/bin/weston&
./animatedtiles --platform linuxfb
#}
#stop_weston()
#{
# killall weston
# killall animatedtiles
#}
#case "" in
# start)
# echo -n "starting weston... "
# start_weston
# echo "done."
# ;;
# stop)
# echo -n "stoping weston... "
# stop_weston || true
# echo "done."
# ;;
# restart|reload)
# echo -n "stoping weston... "
# stop_weston && sleep .3
# echo "done."
# echo -n "starting weston... "
# start_weston
# echo "done."
# ;;
# *)
# echo "Usage: 1 {start|stop|restart}"
# exit 0
#esac
exit