linux buildroot配置和根文件系统制作

本文介绍了Linux Buildroot的配置和使用,包括如何获取buildroot、目录介绍、交叉工具链配置以及编译过程。重点讲解了外部工具链的选择、System configuration的设置,如hostname、Init system、设备节点配置,以及Filesystem images选项,特别是ext2/3/4root filesystem的配置。通过执行`make`指令,可以在output/image目录下得到固件镜像。

linux buildroot的配置和使用



一、pandas是什么?

buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。

二、buildroot如何获取

可以从官网 http://buildroot.org/downloads/ 获取buildroot的发行包。
通过github仓库获取:

git clone git://git.busybox.net/buildroot
执行解压命令

# tar -jxvf buildroot-2020.05.tar.bz2 -C .

未编译的buildroot源码目录如下:
在这里插入图片描述

三、buildroot目录介绍

进入buildroot首先映入眼帘的是一系列目录,简要介绍如下:

.
├── 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

四、交叉工具链配置

buildroot 和 uboot、Linux kernel 一样也支持图形化配置,进入目录,输入如下命令即可打开图形化配置界面。

# cd buildroot-2020.05/
# ARCH=arm make menuconfig

在这里插入图片描述

4.1、toolchain类型选择

选中第一行Toolchain type,可以选择采用buildroot生成的toolchain,还是外面已有的toolchain


buildroot提供了两种交叉编译工具链的解决方案:

内部工具链,称为Buildroot toolchain在配置接口。
外部工具链EXternal toolchain
这里选择 外部工具链EXternal toolchain

**Toolchain:**设置为 Custom toolchain,表示使用用户自己的交叉编译器。
**Toolchain origin:**设置为 Pre-installed toolchain,表示使用预装的交叉编译器。
**Toolchain path:**设置自己安装的交叉编译器绝对路径!buildroot 要用到。
**Toolchain prefix:**设置交叉编译器前缀,要根据自己实际所使用的交叉编译器来设置,比如我们使用的是 arm-linux-gnueabihf-gcc,因此前缀就是$(ARCH)-linux-gnueabihf,其中 ARCH我们前面已经设置为了 arm。
—————————————————————————————————————————
在这里插入图片描述

4.2、System configuration配置

切换到system hostname目录下,可以输入用户板的名称,默认为buildroot,在system banner中可输入开机提示,默认为 welcome to buildroot。在Init system中选择BusyBox,在/dev management中选择Dynamic using mdev,即使用mdev动态加载设备节点的方式,然后在Path to thepermission tables中选择设备节点的配置表,这里我们一定要选择system/device_table_dev.txt,否则后面在dev目录下将不会生成各 种设备节点。当然我们也可以手动的配置该文件,添加必要的节点或删除不需要的节点。Root password为配置进入linux控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为root。选中Run agetty(login prompt)after boot。Remount root filesystem read-write during boot表示可以进行动态的挂载;
在这里插入图片描述再进入下面的getty options选项:

将TTY port配置为ttyS0,将baudrate配置为115200,对应开发板的打印串口。
在这里插入图片描述

4.3、Filesystem images选项配置

选中ext2/3/4root filesystem,可以根据自己的实际需要进行配置 ext2/3/4variant选项,选中tar the root filesystem,最后按下键盘右键选择“save”保存当前的配置并退出,配置完成。
—**

4.4、编译buildroot

只需在buildroot的根目录下执行make指令即可编译整个buildroot。
在这里插入图片描述

编译时,buildroot会自动下载第三方软件的源码,我们只要等一下,让buildroot自己下载编译。编译完成后,会在output/image目录下面生成固件的镜像包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

章鱼哥嵌入式开发

坚持不易,你们的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值