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