I.MX6制作Bulidroot根文件系统

一、Bulidroot介绍
buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
二、下载安装
2.1下载
Buildroot,官方下载地址为:https://buildroot.org/downloads/ 本文使用的是 buildroot-2019.02.tar.gz。将下载的文件系统移植到ubantu下。
2.2定制化配置
输入图形界面命令

sudo make menuconfig 

弹出如下界面:
在这里插入图片描述
Buildroot 的配置选项简单介绍如下:
Target options :
目标选项。包括处理器体系结构、二进制文件格式、架构系列、ABI、浮点运算、指令集。
这里使用的 I.MX6ULL,它的 CPU 架构是 cortex-A7 架构 。配置如图:
在这里插入图片描述
Build options
编译选项,和编译相关的配置。 这里我没做修改,用的是默认设置。
Toolchain
交叉编译链。选择哪种编译链,包括 Buildroot 自身提供的和外部的。针对我这里使用的情况,需要修改以下几处内容: 在这里插入图片描述
Toolchain type
选择外部编译工具链:External toolchain
Toolchain
选择->Custom toolchain
Toolchain Path:
选择gcc编译器地址->/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf (根据自己工具链选择位置)
gcc version
根据自己交叉编译器版本选择本文使用的版本为4.9.3.查看方式

arm-linux-gnueabihf-gcc -v

在这里插入图片描述
External toolchain kernel header series kenerl:
根据自己安装的编译器选择:查看方法在交叉编译器查看:

cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/
cat arm-linux-gnueabihf/libc/usr/include/linux/version.h 

在这里插入图片描述

用计算器把这个十进制换算成 16 进制,40000,再对应 10 进制版本就是 4.0.0 版本。
在这里插入图片描述
System configuration 系统配置选项。例如 hostname,banner,busybox,password,console 等一些配置 比如咱们这里的 hostname 默认是 buildroot。 这里需要核对一下登录的串口号是否配置正确,
在这里插入图片描述
Kernel
配置嵌入式系统的内核.因为我们不在 Buildroot 里编译内核,所以我们不需要选中内核相关配置。默认的是选择的,需要取消掉。
在这里插入图片描述
Target packages
文件系统运用程序以及库安装包。包含 1800 多种 buildroot package,供我们选择性的安装。 这里我要使用 dropbear 来实现 ssh 和 scp 的功能,只要到 Networking application 里选中就行了。
在这里插入图片描述
Filesystem images
文件系统镜像文件。生成各种类型的根文件系统,例如 BUIFS、EXT2/3/4、jffs2 等。
这里使用如下的默认配置:
在这里插入图片描述
Host utilities
嵌入式系统的主机工具。选择一些需要的工具。
Legacy config options
历史遗留的配置。该版本的 buildroot 已经删除或者不支持的内容。
2.3make all 编译

sudo make all 

会编译一段时间,不是很长,编译完之后,输出结果位于 output/images 下,会生成 rootfs.tar 格式文件。
在这里插入图片描述
2.4将 rootfs.tar 转成成 bz2 格式文件

cd output/images/ 
sudo mkdir rootfs 
sudo tar xvf rootfs.tar -C ./rootfs/ 
cd rootfs/ 
sudo tar -cjf core-image-base-myd-y6ull14x14.rootfs.tar.bz2 * 

因为 Mfgtool 里面的 rootfs 文件格式 bz2 格式,所以这里先解压,再压缩成bz2格式文件,最后放到Mfgtool对应目录里,通过USB烧写到板子里就行了。至此Bulidroot文件系统制作完成。

三.结束语
使用 Buildroot 相比 Yocto 环境的搭建和具体使用要简单的多,它的整体使用
和编译 uboot、kernel 差不多,同时生成的根文件系统也比较精简,建议大家尝
试尝试。另外通过这次 Buildroot 我深刻的体会到利用第三方工具来构建系统的
便捷之处,之前我还不理解为什么有这种东西的存在,对比我之前手动用 busybox
去构建根文件系统,以及自己编译移植 dropbear 到文件系统里,使用 Buildroot
这种工具真是方便的太多了,实践出真知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值