使用buildroot制作根文件系统

文章介绍了为何从busybox转向使用buildroot,因为buildroot提供了更方便的第三方库集成方式。详细步骤包括下载buildroot,配置目标选项、工具链、系统配置、文件系统映像和目标包,特别强调了如何启用SSH和busybox的depmod功能。最终,编译结果可用于烧录SD卡或NFS启动。
摘要由CSDN通过智能技术生成

为什么使用buildroot

在之前学习制作根文件系统时,使用的是busybox工具,这个工具仅提供了基本的根文件目录,一些第三方库则需要自己手动移植。buildroot工具则在busybox的基础上,整合了一些第三方库,在构建时可以按需选择,更加方便。

下载buildroot

buildroot官网地址:https://buildroot.org。选择最新的 LTS 版本下载即可。

配置buildroot编译

下载后解压,进入menuconfig界面:

Target options配置如下:

Toolchain 交叉工具链配置(根据自己的环境配置):

注:可以使用whereis xxxx-gcc来查找工具链路径,另外,External toolchain kernel headers series这一项,使用以下方式查找:

进入交叉工具链目录,使用find ./ -name version.h查找文件:

转换为16进制为4140D,就为4.14版本。

System configuration配置:

注意上面的Init system选项中设置的BusyBox。

用于设置一些系统配置,比如开发板名字、欢迎语、用户名、密码等。开发板不建议设置密码

Filesystem images配置:

禁止编译Linux Kernel内核和uboot,因为这两个通常使用自定义的镜像。

取消选中Kernel-->Linux Kernel选项和Bootloaders-->Uboot选项

Target packages 配置

用于配置要选择的第三方库或软件。

然后保存,这里保存到源码目录下的 configs/stm32mp157_defconfig。然后先用make stm32mp157_defconfig命令生成编译配置,再用sudo make进行编译。

如果需要下载的插件太大,可以手动下载,保存到源码目录下的dl文件夹中。

使能第三方库

在buildroot的menuconfig中选中:

使能ssh:

使能busybox中的depmod:

在busybox的menuconfig中选中:

之后就可以解压到nfs进行启动。

rootfs使用

编译完成的结果放在 output/images 目录,.ext4格式的可以直接烧写到sd卡,.tar的可以解压到nfs挂载。

由于在编译buildroot时还用到了busybox,所以将busybox也配置一下,源码在output/build/busybox***/目录下。在buildroot源码目录下使用sudo make busybox-menuconfig命令即可配置。在顶层Makefile中修改交叉编译链。

在编译时也是在buildroot源码目录下进行编译:

sudo make show-targets //当前 buildroot 所有配置了的目标软件包

sudo make busybox//重新编译busybox

sudo make//重新打包buildroot

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李小白20200202

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

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

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

打赏作者

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

抵扣说明:

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

余额充值