1、提供源码下载地址  buildroot官网源码

         上面红色标记处进入历史版本选择:  笔者选择的是buildroot-2019.02.6.tar.bz2 这个版本

2、下载与解压

下载后拷贝至服务器或者虚拟机上;

解压命令: tar vxjf buildroot-2019.02.6.tar.bz2

上面就是buildroot源码

3、 这个是支持图形化配置界面的 执行   make menuconfig

 提示如下错误 :

  使用sudo后成功:

 接下来依次配置每个选项即可;

4、配置buildroot; 网上有很多配置教程

       先介绍我的单板硬件情况: xilinx zcu102的板子; cortex-A53架构 64bit

        1》 Target options

   2》Toolchain 这个是配置交叉编译工具的     

 配置参数含义如下:

配置参数备注
-> Toolchain type= External toolchain使用外部工具(自己安装的)
->ToolchainCustom toolchain表示我们使用我们自己的工具
Toolchain originPre-installed toolchain 使用预装的工具
Toolchain path/tools/xilinx-v2018.3/linux-i386/aarch64-linux-gnu工具的路径
Toolchain prefix$(ARCH)--linux-gnu 交叉编译器前缀
External toolchain gcc version7.X                        交叉编译器版本
External toolchain kernel headers series4.9.x这个我也没搞懂
External toolchain C libraryglibc/eglibcC库
Toolchain has SSP support选中
Toolchain has C++ support选中
Enable MMU support 选中

 3》System configuration

配置项参数备注
Root FS skeletondefault target skeleton选择默认项
System hostname任意就是文件系统起来之后的前缀显示
System banner任意进入系统前的打印语句
Passwords encodingsha-512
Init systemBusyBox系统初始化 BusyBox
/dev managementDynamic using devtmpfs + mdev
Enable root login with password 登录文件系统所需要的账号
Root password登录所需要的密码
/bin/shbusybox' default shell选择默认的shell
Run a getty (login prompt) after boot默认选中
remount root filesystem read-write during boot选中

4》 Kernel:不选中        因为不用这个生成内核镜像

5》Target packages : 编译三方库的先不选择

6》Bootloaders: 这个也先不配置

7》Filesystem images:  配置文件系统镜像

根据自己的需要选择对应的文件系统; 剩下的选择默认就可以了

 接下来就是编译: sudo make

遇到的错误:

源码包下载失败:

buildroot编译错误you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
解决办法:

 执行
1、su 回车-----------进入root用户模式

2、export FORCE_UNSAFE_CONFIGUREFORCE_UNSAFE_CONFIGURE=1 回车------设置

3.再次执行指令就可以了

 由于我的电脑好像源有问题,下载一些包的时候老是报错:


下载zlib-1.2.11.tar.xz失败
https://osdn.net/projects/sfnet_libpng/downloads/zlib/1.2.11/zlib-1.2.11.tar.xz/
下载util-linux-2.33.tar.xz失败
http://sources.buildroot.net/util-linux/util-linux-2.33.tar.xz
下载e2fsprogs-1.45.4.tar.xz失败
https://cdn.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.45.4/e2fsprogs-1.45.4.tar.xz
下载attr-2.4.48.tar.gz失败
http://download.savannah.gnu.org/releases/attr/attr-2.4.48.tar.gz
下载acl-2.2.53.tar.gz失败
http://download.savannah.gnu.org/releases/acl/acl-2.2.53.tar.gz
下载
在这里下载失败http://snapshot.debian.org/archive/debian/20141005T221953Z/pool/main/f/fakeroot/fakeroot_1.20.2.orig.tar.bz2
在这里下载成功http://ftp-ext.osuosl.org/debian/pool/main/f/fakeroot/

错误如下:
>>> toolchain-external-custom  Configuring
Incorrect selection of kernel headers: expected 4.3.x, got 4.9.x
解决办法:
1、参考https://blog.csdn.net/u012577474/article/details/104621180
	4.9.x的版本因该是
2、通过menuconfig 修改 External toolchain kernel headers series 版本号为4.9

错误如下:
>>> toolchain-external-custom  Configuring
External toolchain uses the unsuported OABI		

if ! echo $aarch64-linux-gnu | grep -qE 'eabi(hf)?$$' ; then 
	echo "External toolchain uses the unsuported OABI" ; 
这里需要指定make ARCH=arm64 	不能是arm,我的交叉编译器是aarch64-linux-gnu-gcc 所以平台架构是arm64
最后发现原来在make menuconfig额arch中有arm64 little endpoint选项;

下载失败:	
http://www.busybox.net/downloads/busybox-1.29.3.tar.bz2	

下载失败patchelf-0.9.tar.bz2
https://nixos.org/releases/patchelf/patchelf-0.9/patchelf-0.9.tar.bz2

下载失败:lzo-2.10.tar.gz
http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz	

下载失败:
ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-2.0.2.tar.bz2
从这里下载的
http://sources.buildroot.net/mtd/mtd-utils-2.0.2.tar.bz2	

下载失败:
https://github.com/lz4/lz4/archive/v1.8.3/lz4-v1.8.3.tar.gz

下载失败:
http://tukaani.org/xz/xz-5.2.3.tar.bz2

https://sourceforge.net/

     解决办法就是手动去网站下载,之后拷贝到 buildroot-2019.02.6/dl 目录,一定是和报错的文件一直的压缩文件,版本不能下载错了;这种方式就是等用用离线包安装;

拷贝后如下:

 之后在编译就没遇到什么问题了:sudo make ARCH=ARM64

编译后生成的镜像等文件都在output目录

 如果要做定制化再增加一系列东西到根文件系统可以使用target里的,可以根据上面output输出的基本的文件系统再新增,如新增tcpdump 工具 i2ctools等等;最后使用跟文件系统制作工具手动来打包文件系统镜像

如制作squashfs :

          /tools/bin/mksquashfs rootfs rootfs.img -b 64K -comp xz -no-xattrs

如制作jiffs2 :

        /tools/bin/mkfs.jffs2 -r mnt/xxx  -o xxx.img -e 0x10000 --pad=0x4000000

参考文档:

buildroot项目构建    

buildroot使用介绍 - ArnoldLu - 博客园

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐