当前位置: 首页 > news >正文

Buildroot构建Linux系统根文件系统

文章目录

  • 1 . 为什么使用buildroot构建根文件系统
  • 2. buildroot 下载
  • 3. buildroot 构建根文件系统
    • 3.1 下载源码
    • 3.2 配置buildroot
      • 3.2.1 配置Target options
      • 3.2.2 Toolchain
      • 3.2.3 配置 System configuration
      • 3.2.4 配置 Filesystem images
      • 3.2.5 禁止编译 Linux 内核和 uboot
    • 3.3 编译buildroot
  • 4. buildroot 第三方软件和库的配置
    • 4.1 使能alsa-lib

1 . 为什么使用buildroot构建根文件系统

构建根文件系统可以使用很多种方式,比如busybox等,但是busybox构建的根文件系统不是完整的,缺少很多库和软件,需要再次移植,使用比较麻烦。而buildroot不仅包含busybox的功能,而且还集成了很多常见的第三方库和软件,能很方便的构建我们需要的根文件系统。

2. buildroot 下载

Buildroot使用需要从源码构建,所以需要下载源码, 官网地址: https://buildroot.org/ , 点击Download即可下载
在这里插入图片描述
可选择下载最新版本或者需要旧版本的在历史版本种找即可。
在这里插入图片描述
历史版本是存放在gitlab中的,选择对应分支后可选择下载压缩包或者使用git clone即可。
在这里插入图片描述
在这里插入图片描述
下载的压缩文件格式为tar.bz2, 上传到linux下使用以下命令解压即可:

tar -vxjf buildroot-xxx版本.tar.bz2

3. buildroot 构建根文件系统

3.1 下载源码

这里使用2019.02.6 版本, 直接clone或者直接下载,
在这里插入图片描述

git clone https://gitlab.com/buildroot.org/buildroot/-/tags/2019.02.6

克隆或者解压后如下:
在这里插入图片描述

3.2 配置buildroot

buildroot 和 uboot、Linux kernel 一样也支持图形化配置,输入如下命令即可打开图形化配
置界, 配置界面如下:

make menuconfig

注意: 这里需要先安装 gcc , ncurses库

# 更新包列表
sudo apt update# 安装GCC、make、ncurses库等必要工具
sudo apt install build-essential libncurses5-dev libncursesw5-dev# build-essential 包含了 GCC、g++、make 等基础编译工具。
# libncurses5-dev/libncursesw5-dev 是menuconfig图形界面依赖的终端交互库。

在这里插入图片描述
权限不足直接使用: sudo make menuconfig 即可。
配置界面如下:
在这里插入图片描述

3.2.1 配置Target options

此选项是配置一些平台相关的东西,按需选择,示例如下:
在这里插入图片描述

3.2.2 Toolchain

此为交叉编译工具链配置, 使用自己安装的即可。选项选择和取消按 y 和 n。
在这里插入图片描述

3.2.3 配置 System configuration

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

3.2.4 配置 Filesystem images

此选项配置我们最终制作的根文件系统为什么格式的,配置如下:
在这里插入图片描述

  • 如果是 EMMC 或 SD 卡的话就用 ext3/ext4,variant ext4 格式
  • 如果使用 NAND 的话就用 ubifs
    因为使用的是 I.MX6ULL, 所以此选项不用配置,因为我们是通过 Mfgtool 工具将根文件系统烧写到开
    发板上的 EMMC/SD 卡中,烧写的时候需要自己对根文件系统进行打包。

3.2.5 禁止编译 Linux 内核和 uboot

buildroot 不仅仅能构建根文件系统,也可以编译 linux 内核和 uboot。当配置 buildroot,使
能 linux 内核和 uboot 以后 buildroot 就会自动下载最新的 linux 内核和 uboot 源码并编译。但是
我们一般都不会使用 buildroot 下载的 linux 内核和 uboot,因为 buildroot 下载的 linux 和 uboot
官方源码,里面会缺少很多驱动文件,而且最新的 linux 内核和 uboot 会对编译器版本号有要
求,可能导致编译失败。因此我们需要配置 buildroot,关闭 linux 内核和 uboot 的编译,只使用
buildroot 来构建根文件系统,首先是禁止 Linux 内核的编译,配置如下:
在这里插入图片描述
在这里插入图片描述
不选择编译linux kernel 选项。
在这里插入图片描述
在这里插入图片描述
不选择uboot。

退出时记得点yes保存配置 :
在这里插入图片描述

3.3 编译buildroot

配置完成以后就可以编译 buildroot 了,编译完成以后 buildroot 就会生成编译出来的根文件
系统压缩包,我们可以直接使用。输入如下命令开始编译:

sudo make //注意,一定要加 sudo,而且不能通过-jx 来指定多核编译!!!

如果遇到下载失败的或者下载很慢的包,可根据链接自己下载后放到dl目录下, dl 文件夹专用用于存放下载下来的源码。
等待编译完成,编译完成以后就会在output/images 下生成根文件系统。
注: 配置完后在项目根目录下会生成 .config 文件,这个就是我们上述配置的内容配置文件。
部分示例如下,kernel 编译没有被开启:
在这里插入图片描述
开始编译:
在这里插入图片描述

4. buildroot 第三方软件和库的配置

我们通常会自行移植一些第三方库,如 alsa-lib、alsa-utils 等, 现在可以通过配置buildroot中使能配置,通过buildroot来一次编译,示例如下:

4.1 使能alsa-lib

Target packages-> Libraries-> Audio/Sound -> -*- alsa-lib ---> 此配置项下的文件全部选中

在这里插入图片描述
配置后保存退出重新编译即可。

http://www.dtcms.com/a/568454.html

相关文章:

  • 在自动驾驶数据闭环中的特征工程应用(上)
  • 【具身智能】Spatial Forcing 论文笔记 如何隐式地为 VLA 注入 3D 空间感知能力
  • 多模态技术深度探索:融合视觉与语言的AI新范式
  • 自动化单mysql多实例库的全量迁移脚本-v2版本
  • [CARLA系列--04]如何在Carla中去调用传感器模型--相机篇
  • 【ASP.NET MVC 进阶】DataAnnotations 特性验证全解析:从基础到避坑,让数据校验像 “安检“ 一样靠谱
  • 做ppt兼职的网站有哪些北京中燕建设公司网站
  • webgl 顶点、片元着色器传参,绘制彩色三角形
  • 实验室安全教育与管理平台学习记录(八)特种设备安全
  • 浙江网站制作国外翻墙设计网站
  • 《神经网络与深度学习》学习笔记一
  • 超越蓝牙与Wi-Fi,UWB技术如何解锁手机下一波创新浪潮?
  • 【VPX650G】基于 VPX 系统架构的 JFM9VU13P FPGA+JFMQL100TAI 超宽带信号处理平台
  • 软考 系统架构设计师系列知识点之杂项集萃(190)
  • Linux信号(下):信号保存和信号处理
  • 仅需一部智能手机,在NVIDIA Isaac Sim中重建真实场景:终极实战指南
  • Spring设计模式刨根问底
  • 河南郑州做网站汉狮网站赚钱的方式
  • 不是万维网的网站如何注册公司抖音号
  • AI 赋能科研实践:从选题到发表的技术重构之路
  • 技术的秩序:IT资产与配置管理的现代重构
  • 告别布线噩梦:8公里LoRa边缘网关如何重构工业物联边界
  • Python 图像处理利器:Pillow 深度详解与实战应用
  • 【数据结构】:二叉树——顺序结构,链式结构的实现及相关操作
  • RS485转以太网串口服务器-串口设备联网的理想选择
  • 电动化筑基:智能社会的能源革命与产业重构
  • 【深度学习新浪潮】智能体在图像处理领域的技术突破与实践指南
  • 这是我做的网站吗汇云网站建设
  • 【JAVA 进阶】穿越之我在修仙世界学习 @Async 注解(深度解析)
  • [图像处理]图像美化