linux 使用buildroot制作文件系统

简介

    buildroot工具,可以构建交叉编译工具链、根文件系统、uboot 以及 Linux 内 核镜像,这里以野火的imx6ull为例用来构建文件系统.
Buildroot 官网链接 https://buildroot.org/
在这里插入图片描述

使用步骤

1、下载安装buildroot源码

git clone https://github.com/Embedfire/ebf_6ull_buildroot.git

这里是下载的野火配置好的buildroot,也可以自寻从官网下载,自己配置。

2、安装源码编译环境依赖包

sudo apt-get install -y sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget 
sudo apt-get install -y python-matplotlib python-numpy

3、配置和修改

cd ebf_6ull_buildroot   //进入目录
make clean		//清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
make imx6ull_ebf_pico_defconfig   //指定野火配置文件
make menuconfig   //进入buildroot配置文件配置页面,用来选择增加或者删除某些包至目标(开发板)
make busybox-menuconfig  //(可选)进入 busybox 配置菜单页面,用来增加/删除某些 busybox 配置。

在menuconfig菜单中然后做自己的修改.
编译时间很长,大概1个小时,Be patient.

buildroot配置文件简介

buildroot配置文件在buildroot的目录如下:
在这里插入图片描述
其中imx6ull的配置文件如下所示:
在这里插入图片描述

4、编译

make 

5.输出

Buildroot输出存储在单个目录output/中。这个目录包含几个子目录:
output/
├── build # 所有组件都是在这里构建的(这包括Buildroot在主机上需要的工具和为目标编译的包)。这个目录 
|         包含每个组件的一个子目录。
├── host #包含为该主机构建的工具和目标工具链的sysroot。前者是为正确执行Buildroot所需的主机编译的        
|          工具的安装,包括交叉编译工具链。后者是类似于根文件系统层次结构的层次结构。它包含所有提供 
|          和安装其他包使用的库的用户空间包的头和库。但是,这个目录并不打算作为目标的根文件系统:它 
|         包含大量开发文件、未剥离的二进制文件和库,这使得它对于嵌入式系统来说太大了。这些开发文件 
|         用为依赖于其他库的目标编译库和应用程序。
├── images # 存储所有映像(内核映像、引导加载程序映像和根文件系统映像)的地方。这些是您需要放到目标系    
|             统中的文件
├── staging  #指向host/内部目标工具链sysroot的符号链接,它的存在是为了向后兼容。
└── target  #几乎包含了目标的完整根文件系统:所有需要的东西都存在,除了/dev/中的设备文件(Buildroot 
            不能创建它们,因为Buildroot不是作为root运行的,也不想作为root运行)。此外,它没有正确 
           的权限(例如busybox二进制文件的setuid)。因此,不应该在目标上使用这个目录。相反,您应该 
          使用images/目录中构建的映像。如果您需要根文件系统的解压映像以用于在NFS上引导,那么使用 
           images/中生成的tarball映像并将其解压为根文件。与staging/相比,target/只包含运行所选目 
          标应用程序所需的文件和库:开发文件(头文件等)不存在,二进制文件被剥离调试信息。

编译成功后文件镜像输出路径为 output/images
在这里插入图片描述

编译成功后的output/target文件夹只能用于查看。
在这里插入图片描述

6、文件系统使用----烧写or挂载

  1. 用生成的文件系统替换烧写工具里面的烧写进去就可以了.

  2. Buildroot编译完成之后生成的rootfs.tar.bz2,可以解压之后放到NFS服务器上作为NFS ROOT文件系统供开发板使用。使用NFS文件系统,便于程序的开发调试。所谓NFS服务器,就是我们在VMWare上运行的Ubuntu。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的小熊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值