大致流程参考正点原子的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在用户文件夹下,大家可以看个人进行更改。
如果测试完没什么问题的话,就大功告成了!!!!!