RK3568平台(文件系统篇)Buildroot文件系统

一.Buildroot文件系统概述

Buildroot 是Linux平台上一个开源的嵌入式Linux系统自动构建框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。可通过Buildroot配置,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件。

获取buildroot官方源码:

使用浏览器打开以下网址下载 buildroot 最新的源码。

https://buildroot.org/download.html

下载后使用以下命令解压buildroot压缩包:

二.Buildroot框架结构目录 

arch: 存放CPU架构相关的配置脚本,如arm/mips/x86,这些CPU相关的配置,在制作工具链时,编译uboot和kernel时很关键;

board:这个目录包含了针对特定开发板的配置文件和补丁。每块开发板都有自己的子目录,里面可能包含特定的配置文件、设备树文件、补丁以及其他相关文件;这些文件帮助Buildroot在不同的硬件平台上进行适配和配置,以生成针对特定开发板的嵌入式 linux系统;

boot:这个目录包含与引导加载程序相关的文件和脚本。它通常包括引导加载程序(如 u-boot)、引导配置文件、引导脚本等;Buildroot可以在这里生成和配置引导加载程序以及相关的启动文件;

configs: 存放各个单板的 buildroot 配置文件

dl:目录存放从官网上下载的开源软件包,第一次下载后,下次就不会再去从官网下 载了,而是从 dl/目录下拿开源包,以节约时间。本身下载通常都是很慢的,你可以手动找到相 关包下载后放到这里就 OK 了。

docs: 存放 pdf,html 格式的 buildroot 详细说明。

fs:放各种文件系统的源代码。

linux:存放 Linux 的构建脚本*.mk 和配置选项 Config.in

package/: 此目录下放着应用软件的配置文件,每个应用软件的配置文件有 Config.in 和软件包 名字.mk。软件包名字.mk 文件可以下载应用软件包,是 Makefile 脚本的自动构建脚本。

output/: 是编译的输出文件夹,里面的 build/目录存放着解压后的各种软件包编译 完后的现场。

output/build:所有源码包解压出来的文件存放地和编译的发生地

output/staging:包含了根文件系统的层次结构,编译生成的所有头文件和库,以及其他开发文件, 体积较大;

output/Images:目录下就是最终生成的可烧写到板子上的各种 image。

support:存放一些为 bulidroot 提供功能支持的脚本、配置文件

toolchain:存放制作各种交叉编译工具链的构建脚本*.mk 和配置选项 Config.in

utils:存放一些 buildroot 的实用脚本和工具。

 三.编译Buildroot

再编译Buildroot之前先确认好以下编译环境是否有安装

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

可以使用make menuconfig配置Buildroot。

配置了 build root 的基础功能,然后我们输入 make 命令进行编译, 注意编译过程中需要保证虚拟机 ubuntu 是联网状态。

buildroot-2022.05# make

编译的时候会从官网上下载的开源软件包。

ls output/images/即可看到编译出来的文件系统。

 

然后在 123 文件夹的同级目录,输入以下命令。制作自己的根文件系统,大小依据自己的 根文件系统而定,注意依据 文件夹的大小来修改 count 值,:

这样 rootfs.img 就是最终的根文件系统映像文件了。

mkdir rootfs 
dd if=/dev/zero of=rootfs.img bs=1M count=1024 //这个命令将创建一个大小为1M * 1024虚拟磁盘镜像文件rootfs.img
mkfs.ext4 rootfs.img //使用命令mkfs.ext4格式化rootfs.img磁盘
mount rootfs.img rootfs/ 将rootfs挂载到磁盘rootfs.img
cp -rfp 123/* rootfs/ //拷贝目录123/到目录rootfs/下
umount rootfs/ //解除挂载
e2fsck -p -f rootfs.img //ex2fsck检查ext2、ext3、ext4文件系统是否正常
resize2fs -M rootfs.img  //resize2fs命令 – 调整文件系统大小

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式_笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值