buildroot 入门

buildroot简介

1. 概述

https://buildroot.org/downloads/manual/manual.html#_getting_started

目前我的理解是,buildroot是一个可以自动化的构建完整Linux系统的工具。

一般来说,要构建一个系统,需要配置 a cross-compilation toolchain, a root filesystem, a Linux kernel image and a bootloader等等,以及第三方package等等,手动来做非常复杂。

而buildroot可以通过简单的选择脚本、配置脚本,就可以自动化的实现上述内容的构建。甚至在,还可以只构建Linux系统的一部分,比如use an existing cross-compilation toolchain, and build only your root filesystem with Buildroot。

通过buildroot构建一个Linux系统后,就可以下载到板子,或者使用该系统的一些命令。比如构建一个mips架构的系统,然后使用该系统的ldd命令,帮助你分析mips架构的文件。

 

 2. output文件夹

构建的系统存在于output文件夹

 

 

 

一、安装

https://buildroot.org/downloads/

下载后解压,进入XX/buildroot下。可见有一个Makefile

 

执行make help可见一些帮助信息

 

 尝试make menuconfig ,使用图形化界面构建一个Linux系统。

 

 报错,安装所需库即可。

https://www.cnblogs.com/Crysaty/p/6247548.html

sudo apt-get install libncurses5-dev

过程中选择保留之前的配置

 

 

 

二、简单运行

2.1 使用defconfig

如简介中所言,构建文件系统前需要选择或配置脚本。这里先尝试使用默认的脚本构建一个Linux系统。

在/buildroot/config中有很多默认配置,使用 make list-configs也可以查看

如图中,有专门为arm_juno平台准备的配置。

 

 在/buildroot 使用  make arm_foundationv8_defconfig 选择该deconfig

 

 之后 make menuconfig,使用图形化界面进行配置

 

 因为选择了deconfig,大部分设置已经自动配置好了。如Target options

 

 选择save,保存退出

 

 

 make all (这里我觉得应该有选项选择哪个保存到config,从而构建不同的Linux系统。也可能是每次构建新系统都新建一个buildroot文件夹(buildroot本身也不大,几mb)。不过暂时先不管了)

 

2.2 使用menuconfig 自定义

make menuconfig

 

target options

 

 make all

编译后

output文件夹中就包含了映像、package等内容。

尝试使用构建的libtool

 

可见本机是没有安装libtool的,但是通过buildroot构建的linux系统,我们可以使用libtool

 

 

 三、构建ARM虚拟机

https://zhuanlan.zhihu.com/p/340362172

https://www.cnblogs.com/arnoldlu/p/9689585.html

1. 环境配置

配置工作环境

sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtool bc git
安装交叉编译器
sudo apt-get install gcc-arm-linux-gnueabi

 

验证安装结果

dpkg -l gcc-arm-linux-gnueabi

显示如下:

安装qemu工具:

sudo apt install qemu-system-arm

遇到问题sh: 0: getcwd() failed: No such file or directory

则先

cd ~

然后再

apt-get install XXX

就没有这个问题了

2.使用buildroot 编译配置内核

在buildroot目录下

make qemu_arm_vexpress_defconfig--------选择虚拟qemu配置

 

 

make-------------------------------------------------下载并且编译包

经过两个多小时的安装。 

结果在output/images下生成zImage、vexpress-v2p-ca9.dtb、rootfs.ext2三个文件,分别是内核、DeviceTree文件和文件系统。

 

 

 

 

 四、powerpcf

新解压一个buildroot包,进入

make configs/qemu_ppc64_pseries_defconfig 
make

 

 

 

参考:

https://buildroot.org/downloads/manual/manual.html#_getting_started

https://www.cnblogs.com/fuzidage/p/12049442.html

posted @ 2021-09-01 16:03  Erio  阅读(1062)  评论(0编辑  收藏  举报