linux-buildroot

参考链接

官网:https://buildroot.org/
官方手册:https://buildroot.org/downloads/manual/manual.html

buildroot目录

arch:存放cpu架构相关的配置脚本
board:厂商相关
boot:启动相关
Config.in:
configs:存放开发板的一些配置参数
dl(download):存放下载的源代码和应用软件的压缩包
docs:参考文档
fs:存放各种文件系统的源代码
linux:存放linux kernel的自动构建脚本
Makefile:
output:编译出来的输出文件夹
	build:存放解压后的各种软件包编译完成后的现场
		.tar:打包编译后的文件
	host:存放着制作好的编译工具链
	images:存放着编译好的镜像文件
	target:用来制作rootfs文件系统,里面存放着Linux系统基本的目录结构,以及编译好的应用库和bin可执行文件
package:存放着应用软件的配置文件,配置文件有Config.in和soft_name.mk
	Config.in:Config.in和menuconfig配合配置哪些软件被整合到buildroot
	soft_name.mk:配置具体软件包版本,下载地址,软件安装路径,可执行文件安装路径,库文件安装路径
README:
support:
system:
toolchain:工具链

配置buildroot

make xxx_defconfig 选择默认配置文件
make menuconfig 图形化配置文件
make savedefconfig 保存menuconfig的配置

编译buildroot

make 						//全编译
make qplayer				//编译 qplayer
make qplayer-rebuild		//重编 qplayer
make qplayer-dirclean		//删除 qplayer   

buildroot构建rootfs的流程

将/buildroot/system/skeleton/文件拷贝到/buildroot/output/target/目录下作为rootfs的模板。
将/buildroot/output/staging/目录下的工具链中的动态库拷贝到/buildroot/output/target/目录下。
编译/buildroot/output/build/应用,然后将生成的动态库和bin文件安装到/buildroot/output/target/对应的目录下。
将/buildroot/package/initscripts/目录下的系统启动脚本安装到/buildroot/output/target/对应的目录下。
将执行/buildroot/board/rockchip/ok3568/fs-overlay中的操作,对输出目录中的文件和目录进行定制化修改。
构建fakeroot(伪造的root)环境,在fakeroot环境下修改/buildroot/output/target/中对应的目录文件权限,制作dev节点,并根据用户配置制作出rootfs镜像。
fakeroot是一个主机上使用的软件包,它会被buildroot下载编译,用于为构建rootfs提供一个虚拟的root权限环境。只有在root权限下,才能把output/target/中的目录和文件变成root用户,并创建dev节点。有了fakeroot环境,系统构建者无需获取主机的root权限, 也能在fakeroot下把文件改为root用户,并制作rootfs。

Buildroot 通过以下步骤来构建文件系统:

配置系统:
	在使用 Buildroot 构建文件系统之前,需要对系统进行配置。这包括选择用于编译的 CPU 架构、选择文件系统类型等。配置文件通常保存在 .config 文件中,可以使用 make menuconfig 或其它命令来修改。完成系统配置后,将开始编译所需的软件包。
编译软件包:
	Buildroot 会下载、编译和安装软件包。这些软件包包括内核、基础组件 (如编译器、库等)、文件系统和其它应用程序。
生成 rootfs:
	Buildroot 会在输出目录(output/target)中生成一个完整的 rootfs。在编译阶段的最后,Buildroot 将生成的文件分类及打包到 output/target 目录中。这些文件包括构建好的二进制文件、库、头文件、配置文件、启动脚本等,并且将它们按照一定的目录结构组织起来。同时,Buildroot 还会拷贝一个模板文件系统存放在 output/target 中,这个模板文件系统会作为rootfs的基础。output/target 目录中的文件就构成了制作rootfs所需的全部文件。
定制 rootfs:
	Buildroot 还会在用户所指定的目录(board/<board_name>/fs-overlay/)或者默认的目录下(output/target/root/) 中追加或覆盖特定的文件。这里可以加入用户需要的文件,也可以增加一些控制启动等特殊功能的脚本。
生成 rootfs 镜像文件:
	Buildroot 将 rootfs 目录中的文件与Boot Loader、kernel 镜像等内容一起打包成为一个完整的文件系统镜像文件,通常为 ext2、ext3、jffs2、ubifs、squashfs 等格式。这个文件系统镜像文件可以通过 TFTP、NFS、FTP 等传输方式,将文件系统加载到设备的闪存中。

以上就是 Buildroot 构建文件系统的过程。通过这些步骤,构建出来的文件系统可以运行在目标嵌入式设备上,包含所需的功能和应用程序。这个过程中,需要根据具体的硬件平台和应用程序需求进行配置,才能生成能够满足系统需求的文件系统。

软件包执行流程

下载标记:	.stamp_downloaded			表示软件包已被下载
解压标记:	.stamp_extracted 			表示软件包已被解压,将buildroot/dl/*.tar文件解压到/buildroot/output/build/*文件夹下。
打补丁标记:	.stamp_patched				表示软件包已经被成功打补丁。
配置标记:	.stamp_configured 			表示软件包已经被成功配置。
编译标记:	.stamp_built 				表示软件包已被编译。将/buildroot/output/build/*文件夹下文件编译安装到/buildroot/output/
安装标记:	.stamp_staging_installed	用于标志交叉编译过程中所有的交叉编译工具、库、头文件等是否已经安装到内部 staging 暂存目录中。
安装标记:	.stamp_target_installed		表示软件包已经交叉编译并成功安装到target目标中。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Paper_Love

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

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

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

打赏作者

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

抵扣说明:

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

余额充值