1. 环境准备:从零开始的基石搭建
大家好,我是老张,一个在嵌入式圈子里摸爬滚打了十多年的老码农。今天咱们不聊虚的,直接上手干。如果你手头有一块基于瑞芯微RK3566的开发板,比如最近挺火的泰山派,想在上面跑起自己写的QT图形界面应用,但又被复杂的交叉编译环境、系统定制搞得头大,那你算是来对地方了。我会带你走一遍我用Buildroot为RK3566定制QT开发环境的完整流程,这里面的每一步都是我踩过坑、填过土之后总结出来的,保证小白也能跟着做出来。
首先,咱们得把“厨房”收拾好,也就是准备好编译环境。我强烈推荐使用Ubuntu 22.04 LTS作为你的主机系统,这版本稳定,社区支持好,大部分依赖包都能轻松搞定。别用Windows下的WSL,虽然也能跑,但后续涉及文件权限、设备树编译时,容易遇到一些玄学问题,为了省心,还是直接用实体机或者虚拟机装个纯净的Ubuntu吧。准备一块至少100GB空闲空间的硬盘,因为编译整个Buildroot系统加上QT,中间文件会非常多。内存建议8GB以上,有条件上16GB,编译速度会快不少。
接下来,你需要拿到最关键的东西——RK3566的Linux SDK。这个一般由你的开发板厂商提供,比如Firefly、Rockchip官方或者你购买板子的商家。以我手头的泰山派为例,我需要去其官网下载对应的SDK包。下载下来通常是一个压缩包,名字可能叫 rk356x_linux_release_v1.x.x.tar.gz 之类的。把它放到你的用户目录下,比如 /home/yourname/,然后解压。这里有个细节,解压路径不要包含中文或特殊字符,最好就用纯英文路径,避免后续脚本解析出错。打开终端,进入解压后的SDK根目录,这个目录就是我们未来所有操作的“大本营”了。
2. 初始配置与第一次编译
进入SDK根目录后,咱们先不急着动手编译。第一步是进行板级配置。通常厂商的SDK会支持多种板型,我们需要选择自己对应的那一款。执行命令 ./build.sh lunch。这个命令会弹出一个交互式菜单,列出所有预置的板型配置。以我的泰山派为例,我需要在列表里找到对应“TaiShanPi”或者“RK3566 EVB”的选项,输入它前面的数字编号(比如可能是3)。选择之后,脚本通常会设置好一系列环境变量。
紧接着,还有一个关键的环境变量需要设置:export RK_ROOTFS_SYSTEM=buildroot。这个命令告诉编译系统,我们最终要构建的根文件系统是Buildroot,而不是Debian、Ubuntu等其他系统。你可以直接在执行./build.sh lunch后,在同一终端窗口里输入这条导出命令。为了方便,你也可以查看SDK里是否有类似 build.sh 的脚本说明,有些SDK可能会将这一步集成在lunch选择中自动完成。
配置好之后,就可以开始第一次编译了。执行 ./build.sh all。注意,这里有个非常重要的坑点:千万不要加sudo! 整个编译过程都应该在你的普通用户权限下完成。如果加了sudo,编译过程中创建的文件和目录所有权会变成root,导致后续步骤出现一系列诡异的权限错误,清理起来非常麻烦。所以,记住,就用自己的账号执行。
这次编译的目的不是让它完全编译完


9407

被折叠的 条评论
为什么被折叠?



