- 在Microchip Buildroot中配置QT5选择Graphic配置文件增加QT5的配置
- 修改根文件系统支持QT5修改output/target/etc/profile配置文件增加output/target/usr/share/X11配置文件
- 烧录生成的Linux镜像下载etcher工具生成最终烧录镜像使用etcher工具烧录SD卡烧录后的SD卡分区介绍
- 下篇预告
本系列专题将基于Microchip官方提供的Buildroot仓库,创建个人第一个可运行的嵌入式Linux系统。
在Microchip Buildroot中配置QT5
选择Graphic配置文件
我们现在需要为嵌入式Linux中配置Graphic图形系统,需要选择sama5d2_xplained_graphics_defconfig配置文件:
本次配置中需要使用Graphic图形系统,则使用以下配置命令:
cd buildroot-mchp-linux4microchip-2024.10/
BR2_EXTERNAL=../buildroot-external-microchip-linux4microchip-2024.10/ make sama5d2_xplained_graphics_defconfig
需要注意的是,在Microchip BUildroot配置文件中,我们这时选择的graphic配置,使能的是Microchip提供的基于Cairo的图形开发套件EGT,如该需要使用QT5,还需要参考该教程进行进一步的手动配置:
Microchip图形开发套件EGT介绍
增加QT5的配置
Toolchain的修改
需要手动将默认的Toolchain下GCC版本修改为gcc13.x,否则编译的时候会出现很多莫名其妙的问题,比如:
undefined reference to '__atomic_load_8'
QT5的配置
关于QT5的完整配置如下截图所示:Target packages → Libraries → Graphics
其他库的配置
选择libxcb: Target packages → Graphic libraries and applications (graphic/text):
选择libxkbcommon:Target packages → Libraries → Hardware handling:
常见编译错误的解决方法
fatal error: stdlib.h: No such file or directory
修改前的源头文件:
修改后的源头文件:#include_next直接修改为#include
运行QT5常见错误的解决方法
qt.qpa.input: xkbcommon not available, not performing key mapping
解决方案:选择libxkbcommon,有遇到运行QT5程序的时候报xkbcommon not available错误,但是检查的时候发现libxkbcommon也是勾选上的,最后没招了只能删除生成的根文件系统和Build目录下的所有文件,重新make后就OK:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
解决方案XDG_RUNTIME_DIR变量值,例如:export XDG_RUNTIME_DIR=/run/qt
修改根文件系统支持QT5
修改output/target/etc/profile配置文件
可以在output/target/etc/profile系统配置文件中添加以下内容:
export TSLIB_TSDEVICE=/dev/input/event0
export QT_QPA_FB_TSLIB=1
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=/usr/share/fonts
export QT_QPA_FB_DRM=1
export XDG_RUNTIME_DIR=/run/qt
export XKB_CONFIG_ROOT=/usr/share/X11/xkb
增加output/target/usr/share/X11配置文件
个人解决方案是直接将Ubuntu系统下/usr/share/X11文件夹拷贝到output/target/usr/share/目录
烧录生成的Linux镜像
下载etcher工具
etcher工具下载地址
https://etcher.balena.io/
etcher是一款跨平台工具软件,可以在Linux主机下直接使用
生成最终烧录镜像
在完成QT5相关配置后,另外还需要根据上面的建议修改根文件,最后重新执行make命令,在output/images/目录下查看重新生成的sdcard.img文件。
使用etcher工具烧录SD卡
Microchip官方提供的烧录教程
https://www.linux4sam.org/bin/view/Linux4SAM/DemoSD
建议使用SD卡读卡器,用于将SD卡通过USB读卡器接入到所使用的系统
第一步:选择需要烧录的镜像和烧录所使用的SD卡
第二步:执行镜像烧录命令
第三步:烧录完成移除SD卡即可
烧录后的SD卡分区介绍
烧录后的SD卡会被分成2个分区,一个是BOOT分区,另外一个是ROOTFS分区
BOOT分区包含boot.bin(at91bootstrap)、itb文件(包含linux image、linux dtb和其他dtb文件)、u-boot文件和其配置文件。BOOT分区比较小,所安排放置的文件大小是受限的
ROOTFS分区包含根文件的所有内容,在平时开发调试时可以将用户代码、新增加的库文件so、修改系统配置文件,都可以在该目录下进行操作
将烧录后的SD卡插入到SAMA5D2-XULT开发板后,就可以从打印串口看到Linux系统启动信息
下篇预告
- 在QT Creater下配置嵌入式Linux下QT5
- 简单的QT5代码demo