buildroot使用介绍

buildroot使用介绍

经验文章nimo972025-03-25 13:08:039A+A-

1、功能介绍

在进行嵌入式终端开发过程中,如果使用的是linux系统的话,移植适配完成linux kernel后,我们还需要制作linux的启动文件系统,而文件系统通常要包含很多第三方软件,比如udhcpc,tftp,apache,sqlite,PHP,iptable,DNS等,为了避免繁杂的移植工作Buildroot应运而生。Buildroot是Linux平台上一个构建嵌入式Linux系统的框架,你可以和编译Linux内核一样,通过Buildroot的配置指令:make menuconfig,配置我们需要的功能,不需要的功能去掉,再执行make指令编译,Buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件,包含boot、kernel、rootfs以及rootfs中的各种库和应用程序,让我们的工作效率成百倍的提升。

2、获取buildroot

我们可以从buildroot官网(
http://buildroot.uclibc.org/download.html)获取buildroot源码包,我使用的是
buildroot-2021.08.01.tar.gz(
https://buildroot.org/downloads/buildroot-2021.08.1.tar.gz)版本。

Buildroot的目录初始状态下都是一些脚本和配置文件,其中configs文件存放开发板的配置文件,详细介绍如下:

├── arch: 存放CPU架构相关的配置脚本,如arm/mips/x86,这些CPU相关的配置,在制作工具链时,编译uboot和kernel时很关键.
├── board
├── boot
├── CHANGES
├── Config.in
├── Config.in.legacy
├── configs: 放置开发板的一些配置参数. 
├── COPYING
├── DEVELOPERS
├── dl: 存放下载的源代码及应用软件的压缩包. 
├── docs: 存放相关的参考文档. 
├── fs: 放各种文件系统的源代码. 
├── linux: 存放着Linux kernel的自动构建脚本. 
├── Makefile
├── Makefile.legacy
├── output: 是编译出来的输出文件夹. 
│   ├── build: 存放解压后的各种软件包编译完成后的现场.
│   ├── host: 存放着制作好的编译工具链,如gcc、arm-linux-gcc等工具.
│   ├── images: 存放着编译好的uboot.bin, zImage, rootfs等镜像文件,可烧写到板子里, 让linux系统跑起来.
│   ├── staging
│   └── target: 用来制作rootfs文件系统,里面放着Linux系统基本的目录结构,以及编译好的应用库和bin可执行文件. (buildroot根据 │               用户配置把.ko .so .bin文件安装到对应的目录下去,根据用户的配置安装指定位置)
├── package:下面放着应用软件的配置文件,每个应用软件的配置文件有Config.in和soft_name.mk。
├── README
├── support
├── system
└── toolchain

3、配置编译

Buildroot 默认支持了热门的开发板,比如说树莓派,相关的配置文件都位于configs文件目录下:

使用如下命令来选择配置文件:make xxxx_defconfig。(xxxx_defconfig:是configs文件目录下的文件)我使用的是qemu模拟器的配置文件:
qemu_aarch64_virt_defconfig
,选择好配置文件后,使用make menuconfig 命令进行配置:

make menuconfig配置界面可以对编译工具链、Bootloader、linux kernel、文件系统等进行配置。如果要单独配置单个模块可以使用make xxxx-menuconfig进行配置,比如需要配置linux kernel则使用:make linux-menuconfig

最后通过make指令完成编译工作。

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7