关于部署QT应用到buildroot系统上的方法
快速验证方法
该方法在执行 make clean 后将没有作用,想要重新部署。
在编译成功过的一个 buildroot SDK 中,直接将 /Run 文件夹放到下面 SDK 路径下:
假设我的 SDK 叫 tspi-1f-buildroot-qt5
将启动脚本 S97_auto_runQT 放到下面 SDK 路径:
修改会覆盖我们启动脚本的其他脚本不执行:
tspi-1f-buildroot-qt5/buildroot/output/rockchip_rk3566/target/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&
}
stop_weston()
{
# killall weston
}
case "$1" 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: $0 {start|stop|restart}"
exit 1
esac
exit 0
其实就是把里面真正执行的内容注释掉了
重新编译 SDK:
固件打包
合成镜像
完成后 update.img 系统镜像将生成在 SDK 下的 rockdev 中。烧录该 update.img 即可。
稳定部署方法
第一步:创建文件结构
第二步:创建Config.in文件
创建文件 tspi-1f-buildroot-qt5/buildroot/package/myapp/Config.in。
写入内容:
第三步:创建myapp.mk文件
创建 tspi-1f-buildroot-qt5/buildroot/package/myapp/myapp.mk。
写入内容:
################################################################################
# myapp
################################################################################
# 设置版本和源文件路径
MYAPP_VERSION = 1.0
MYAPP_SITE = $(TOPDIR)/../myapp_files
MYAPP_SITE_METHOD=local
# 定义安装命令
define MYAPP_INSTALL_TARGET_CMDS
$(INSTALL) -d -m 0755 $(TARGET_DIR)/opt/Run
cp -r $(@D)/Run/* $(TARGET_DIR)/opt/Run/
$(INSTALL) -D -m 0755 $(@D)/S97_auto_runQT $(TARGET_DIR)/etc/init.d/S97_auto_runQT
endef
# 告诉Buildroot这是个通用包
$(eval $(generic-package))
第四步:创建文件存放目录
目录结构应该是这样的:
Linux SDK
├── buildroot/ # Buildroot目录
│ ├── package/
│ │ └── myapp/
│ │ ├── Config.in
│ │ └── myapp.mk
│ └── ...其他文件...
└── myapp_files/ # 你的文件目录
├── Run/
│ ├── 你的QT程序
│ └── ...其他文件...
└── S97_auto_runQT
第五步:包含新应用包
需要在 tspi-1f-buildroot-qt5/buildroot/package/Config.in 文件末尾附近添加:
第六步:启用新的package
在menuconfig中:
按 / 搜索 "myapp" 的路径
找到后,按 Y 选中(显示 [*])
保存退出
找对应的config文件并更新配置,路径为:
在最末尾加入我们的myapp使能:
第七步:编译生成固件
回到SDK根目录下重新编译 SDK:
固件打包
合成镜像
完成后 update.img 系统镜像将生成在 SDK 下的 rockdev 中。烧录该 update.img 即可。


评论