使用buildroot构建带qt的根文件系统:

大致流程参考正点原子的Buildroot构建Qt根文件系统文档,根据个人实际使用中的遇到的问题提出解决方法。

1、获取buildroot源码,从https://buildroot.org/官网获取,我是和教程文档同步使用2022.02.3。

传到Linux下解压:

 tar xf buildroot-2022.02.3.tar.gz

2、配置buildroot

2.1安装使用menuconfig需要用到的库:

 sudo apt-get install libncurses5-dev

输入下面的指令打开配置菜单:

 make menuconfig

这里直接使用原子哥的图;

2.2配置 Target options

 Target options
 -> Target Architecture = ARM (little endian)
 -> Target Binary Format = ELF
 -> Target Architecture Variant = cortex-A7
 -> Target ABI = EABIhf
 -> Floating point strategy = NEON/VFPv4
 -> ARM instruction set = ARM

2.3配置交叉编译工具链

 Toolchain
 -> Toolchain type (Buildroot toolchain) = Buildroot toolchain
 -> GCC compiler Version (gcc 9.x) = gcc 9.x
 -> [*] Enable toolchain locale/i18n support
 -> [*] Enable C++ support
 -> [*] Enable MMU support (NEW)

2.4配置 Qt 编译选项

 Target packages->
 ->Graphic libraries and applications (graphic/text) --->
 -> [*] Qt5 --->
 -> [*] Compile and install examples (with code)
 -> [*] MySQL Plugin
 ->SQLite 3 support (Qt SQLite) = Qt SQLite
 -> [*] widgets module(这个要先选gui medule)
 -> [*] GIF support
 -> [*] qt5charts
 -> [*] Enable Tslib support
 -> [*] qt5quickcontrols
 -> [*] qt5quickcontrols2
 -> [*] qt5virtualkeyboard

这里在target packages里面把其他需要的模块和包可以一起加上,我这里还配置了:

 Target packages->
 ->System tools
     ->[*]kmod 

后面要用到模块相关命令。

2.5配置 System configuration

 System configuration
 -> System hostname = atkbuildrootQtfs //平台名字,自行设置
 -> System banner = Welcome to alientek Qt rootfs //欢迎语
 -> Init system = BusyBox //使用 busybox
 -> /dev management = Dynamic using devtmpfs + mdev //使用 mdev
 -> [*] Enable root login with password (NEW) //使能登录密码
 -> Root password = root //登录密码为 root

这里的登陆密码一定要设置,我当时想着不使能还能少点麻烦,结果还是要输入密码,我试来试去最后回来重新编译了一遍。

2.6配置 Filesystem images

 Filesystem images
 -> [*] ext2/3/4 root filesystem //如果是 EMMC 或 SD 卡的话就用 ext3/ext4
 -> ext2/3/4 variant = ext4 //选择 ext4 格式
 -> exact size =1G //ext4 格式根文件系统 1GB(根据实际情况修改)

我没有nand就没有使能nand。

将所有的配置保存(依然借用原子哥的截图):

路径最好不要变,可以改配置文件的名字;

3、配置busybox

这里还要配置一下busybox,不然后面没有depmod命令(不要问我怎么知道的);

直接在buildroot目录下输入:

 make busybox-menuconfig

进入busybox的配置界面(使劲薅原子哥):

大家可以参考之前的教程进行配置,这里一定要配置:

 -> Linux Module Utilities
         -> [*] depmod           //使能depmod命令

4、下载加速

这里通常下载巨慢,首先可以在配置文件里更改源,以此来提高下载速度:

然后还有就是换了源有时候下载有的东西也会很慢,比如ncurses之类的,有的甚至直接下载失败。

我的解决办法是直接在windows下使用魔法下载好(下载的链接在编译框中有,复制下来就行),然后放到buildroot目录下的dl中的相应文件夹中。

中间可以将buildroot的编译先停止,然后再使用make继续就行。

5、编译完的路径

编译好的根文件系统在output/images/rootfs.tar

编译好的qmake路径在output/host/usr/bin/qmake中

6、触摸屏驱动

我使用的是gt911触摸屏驱动芯片,然后要将自己的驱动放到该文件系统中

放到该文件系统的lib/modules/4.1.15(该文件系统中的路径,没有的文件夹需要自己创建);

然后添加环境变量(我的只是参考),配置文件路径为/etc/profile:

里面的设备event*要看个人设备决定,可以先卸载驱动再加载驱动看变化。

然后可以使用ts_test进行测试,注意测试不要有任何报错,然后可以触摸才算成功。

然后使用/usr/lib/qt/examples/widgets/animation/animatedtiles/animatedtiles测试下qt是否正常使用。

然后测试Ubuntu下的qmake是否可以正常使用,进入之前编辑好的qt项目文件夹目录,执行:

 /home/用户名/buildroot-2022.02.3/output/host/usr/bin/qmake

我的buildroot在用户文件夹下,大家可以看个人进行更改。

如果测试完没什么问题的话,就大功告成了!!!!!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值