目录
01. buildroot简介
1.1简介
1.2 源码下载
1.3 buildroot版本更新介绍
02. 实操演示
2.1 buildroot源码目录层级的简介
2.2 实操演示
03. 结语
01. buildroot简介
1.1简介
Buildroot是一个嵌入式Linux系统的工具链,它用于构建嵌入式设备的根文件系统。Buildroot能够从源代码自动构建整个嵌入式Linux系统,包括内核、库、驱动程序和应用程序等。
Buildroot具有以下特点:
- 自动化:Buildroot可以根据配置文件自动完成构建过程,包括下载源代码,构建交叉编译工具链,编译内核和文件系统等。
- 灵活性:用户可以通过配置文件自定义构建过程,选择所需的软件包和选项,以及对构建系统进行定制化的配置。
- 轻量级:Buildroot致力于生成精简的根文件系统,适用于资源有限的嵌入式设备。
- 社区支持:Buildroot有一个活跃的社区,提供文档、邮件列表和IRC等支持渠道,以及经验分享和开源项目。
总的来说,Buildroot是一个功能强大且灵活的工具,可以帮助开发人员快速构建定制的嵌入式Linux系统,适用于各种嵌入式设备和嵌入式应用。
题外话:
嵌入式系统发移植指将一个计算机系统或者平台软件移植到特定的硬件平台的过程, 在这一过程中需要做很多适配工作。
1.2 源码下载
https://buildroot.org/
点击有右上角的DOWNLOAD加入下载界面
也可以点击图中的位置, 去往列表处查看更多版本的buildroot, 选择适配你自己的。
1.3 buildroot版本更新介绍
02. 实操演示
2.1 buildroot源码目录层级的简介
第一步:将下载的buildroot源码移动到linux目录下面去, 可以受用共享目录, 也可以直接拖, 或则创建一个网络共享目录。
tar -vxf buildroot-2023.11.tar.xz
cd buildroot-2023.11
第二步: 进入buildroot的源码目录下之后
第三步: 查看buildroot的makefile中支持的指令 make help
重点我们关注configuration的部分, 可以看到buildroot支持很多种图形化界面的配置, 基于ncurses库的, Qt的等等。
题外话:接下来我们执行的nake menucinfig进入的图型化的配置界面本质就是在修改源码目录下的各个目录中的配置文件, 所以我们也可以直接修改配置文件, 最后再编译, 但是不推荐这样,难度大且没意义。那我们为什么要修改配置文件呢?原因就是我们要指定一个硬件平台, cpu的架构, 网卡的型号, bootloader用哪一种, 文件系统使用哪一种格式, 设备树, 构建好linux系统之后我们要使用拿一些软件支持包或者库等等都需要我们选择。
2.2 实操演示
第一步: 在buildroot的源码的顶层目录下执行
make menuconfig
方向键控制方向, 空格和Y或N控制item的选择, 上面的英文就是解释。
接着进入各个目录下面选择与我们的需求适配的选项, 退出的时候选择保存, 接着执行make, 编译。
补充:
图中圈住的位置是在Linux中我们需要的一些包, 进入该目录结构下我们可以看到
在这里就是我们需要在linux中安装的一些库, 在这里选中之后就不需要我们在配置好linux之后再去一个一个的装这些库, 依赖啥的, 在这里一步到位, 是不是特别方便。
最后, 当我们在menuconfig中配置好我们需要的功能之后, 进入buildroot顶层目录下的config目录下
cd config
接着咱们就可以看到许许多多的官方评估版, 咱们执行选择一块, 这里我就选择stm32mp157a_dk1_defconfig,回到顶层目录
make stm32mp157a_dk1_defconfig
这样就把咱们使用的board的名字写入当前目录下的.config文件中了, 该文件是一个文件以.开头对吧, 用这个命令可以看到该文件
ls -a
在这呢, 对吧
接着我们在顶层目录下执行
make
就可以看到程序工具我们配置好的.config文件进行编译和配置linux内核啦, 接着静静的等待就可以了
03. 结语
好了, 这里本篇文章关于buildroot的分享也就结束了, 希望让大家对buildroot有一个大致和系统的认识, 注意, 这里只是对buildroot工具进行看一个简介, 需要深入了解的家人们可以在buildroot的官网看看官方提供的一些文档和自己配置一个linux系统试试看。