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

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



