根文件系统rootfs制作——使用buildroot工具(重制版)

2023-11-02


0.前言

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

一、rootfs配置

1.下载buildroot源码

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

2.开始配置

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

Target options配置如下:

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
注:可以使用whereis xxxx-gcc来查找工具链路径,另外,External toolchain kernel headers series这一项,使用以下方式查找:
进入交叉工具链目录,使用find ./ -name version.h查找文件:
在这里插入图片描述
在这里插入图片描述
转换为16进制为4140D,就为4.14版本。

System configuration配置:

在这里插入图片描述
用于设置一些系统配置,比如开发板名字、欢迎语、用户名、密码等。开发板不建议设置密码。

Filesystem images配置:

在这里插入图片描述
禁止编译Linux Kernel内核和uboot,因为这两个通常使用自定义的镜像。
取消选中Kernel-->Linux Kernel选项和Bootloaders-->Uboot选项

Target packages 配置

在这里插入图片描述
用于配置要选择的第三方库或软件。
然后保存,这里保存到源码目录下的 configs/stm32mp157_defconfig。然后先用make stm32mp157_defconfig命令生成编译配置,再用sudo make进行编译。
如果需要下载的插件太大,可以手动下载,保存到源码目录下的dl文件夹中。

二、rootfs使用

编译完成的结果放在 output/images 目录,.ext4格式的可以直接烧写到sd卡,.tar的可以解压到nfs挂载。
由于在编译buildroot时还用到了busybox,所以将busybox也配置一下,源码在output/build/busybox***/目录下。在buildroot源码目录下使用sudo make busybox-menuconfig命令即可配置。在顶层Makefile中修改交叉编译链,并使能中文字符支持,在原子哥教程中都能找到,在此不多赘述。(暂时只需要修改这两个,不需要创建linuxc脚本或者复制库文件之类的操作)
在编译时也是在buildroot源码目录下进行编译:

sudo make show-targets   //当前 buildroot 所有配置了的目标软件包
sudo make busybox		//重新编译busybox
sudo make				//重新打包buildroot

使能第三方库
在buildroot的menuconfig中选中:
在这里插入图片描述
使能ssh:
在这里插入图片描述
使能busybox中的depmod:
在busybox的menuconfig中选中:
在这里插入图片描述
之后就可以解压到nfs进行启动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根文件系统rootfs制作——使用buildroot工具(重制版) 的相关文章

随机推荐