buildroot简介
buildroot是什么,我们为什么要使用buildroot。 buildroot是一个编译框架,主要用来交叉编译嵌入式linux系统,可以很方便的一键式编译生成loader(u-boot)、rootfs、uImage等镜像。 在不使用编译框架的情况下,我们需要手动管理和编译loader、roofs、kernel,其中环境搭建、源码配置等工作重复而繁杂,使用编译框架可以帮助我们完成一键式编译。 buildroot官网:https://buildroot.org
buildroot环境与下载
buildroot环境
buildroot是以makefile为基本结构的编译框架,只支持在linux环境下运行,编译时使用普通用户权限,无需root权限。 在编译环境中,以下工具是必须的,一般linux发行版都已经默认安装,无需过分关注。
which
sed
make (version 3.81 or any later)
binutils
build-essential (only for Debian based systems)
gcc (version 4.8 or any later)
g++ (version 4.8 or any later)
bash
patch
gzip
bzip2
perl (version 5.8.7 or any later)
tar
cpio
unzip
rsync
file (must be in /usr/bin/file)
bc
buildroot下载
可以选择网站下载压缩包或者使用git下载。 下载方式1: 在window下登陆https://buildroot.org/download.html 下载压缩包,在linux环境下curl -O https://buildroot.org/downloads/Vagrantfile; vagrant up 。 下载方式2: git clone git://git.buildroot.net/buildroot 或git clone https://git.buildroot.net/buildroot
buildroot的使用-以树莓派4B为例
配置
使用builtroot的第一步是生成一个配置文件,builtroot将根据配置文件编译生成镜像,与编译linux时的.config类似。生成配置文件的方式有两种:
- 手动配置,在builtroot代码目录下执行
make menuconfig ,可以看到如下配置:
│ │ Target options ---> 配置目标平台的架构,如aarch64
│ │ Build options ---> 配置编译选项,如源代码位置、编译debug信息等
│ │ Toolchain ---> 配置编译链,交叉编译选择、编译优化等级等
│ │ System configuration ---> 配置编译出的系统配置,主要和rootfs相关
│ │ Kernel ---> 目标内核的编译配置
│ │ Target packages ---> 主要是busybox编译,选择编入哪些工具
│ │ Filesystem images ---> 选择rootfs的文件类型
│ │ Bootloaders ---> 编译loader,常用的为u-boot
│ │ Host utilities ---> 编译服务器的工具配置
│ │ Legacy config options ---> 选择其它库,如opencv、python等
│ │
- 使用对应开发板的默认配置,以树莓派4B为例
在builtroot代码目录下执行make raspberrypi4_64_defconfig ,即可使用树莓派默认配置,如果需要在默认配置上进一步修改配置,可按照手动配置的方法。
|