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

  • 0.前言
  • 一、rootfs配置
    • 1.下载buildroot源码
    • 2.开始配置
      • Target options配置如下:
      • Toolchain 交叉工具链配置(根据自己的环境配置):
      • System configuration配置:
      • Filesystem images配置:
      • Target packages 配置
  • 二、rootfs使用

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进行启动。

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

  1. [架构之路-30]:目标系统 - 系统软件 - Linux OS根文件系统rootfs的概念、组成、制作以及用busybox制作根文件系统

    目录 前言: 第1章 什么是根文件系统 1.1 什么是文件 1.2 什么是文件系统 1.3 文件系统组织文件的方式:树形结构 1.4 统一的虚拟文件系统 1.5 物理存储介质与物理文件系统类型 1.5 ...

  2. Linux根文件系统的制作

    1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(moun ...

  3. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

  4. Linux——根文件系统的制作(jffs2 and ubifs)

    一.根文件系统简介 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统而言它还是内核启动时所挂载(mount)的第一个文件系统,系统引导启动程序 ...

  5. 嵌入式Linux 根文件系统rootfs的构建

    前言 最近翻出来十年前的ARM9开发板:AT91SAM9261EK,芯片是原Ateml的AT91系列,之前开发的资料,因为更换电脑,基本上找不到了,还好部分经验记录在了[博客]上,所以,这次为了继续学 ...

  6. 根文件系统rootfs构建

    一.根文件系统简介 根文件系统一般也叫做 rootfs,Linux 中的根文件系统更像是一个文件夹或者叫做目录,在这个目录里面会有很多的子目录.根目录下和子目录中会有很多的文件,这些文件是 Linux ...

  7. Porting:linux内核的模块化、根文件系统的制作和自动挂载

    1.关于内核模块($: linux   #: 开发板)      模块化设计. $:' vi drivers/char/Makefile             obj-m    += led_drv ...

  8. 第一季8:完整版(即包含mpp)根文件系统的制作

    以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 一.概述 mpp是海思编写的与视频编解码有关的驱动.库等内容.我们需要部署这些内容,也就是把这些内容放在合适的目录位置. 二.mpp的目 ...

  9. Buildroot构建指南——根文件系统(Rootfs)

    Buildroot的Rootfs构建流程有一个大框架,有些部分是Buildroot系统做好的,有些细节需要自己来实现,Rootfs也是Buildroot中最为复杂的部分. Rootfs的构建流程概述 ...

最新文章

  1. C# 语句中的各种单例模式代码
  2. Linux内存buffer和cache的区别
  3. 【leetcode】443. String Compression
  4. 计算机设计大赛国奖作品_3. 需求分析
  5. Linux 下的任务管理 —— ps、top
  6. AcWing 829. 模拟队列
  7. SQL server2005安装问题
  8. extjs引入html,ExtJs教程第一集 搭建ext环境后的第一个hello World
  9. STM32示波器设计
  10. android 像素密度,屏幕密度,values-sw480dp
  11. 小学计算机教师业务笔记,2016-2017学年度小学教师业务学习笔记
  12. P卡、worldfirst、连连跨境电商收款哪家好?
  13. 基于微信小程序奶茶店在线点单管理系统#毕业设计
  14. 如何给PDF中的内容添加下划线
  15. 阿里P7爆款《K8s+Jenkins》技术笔记,读了后确实有实质性的帮助
  16. SQL语句一二三之SQL基本语句
  17. 关于调节ijkPlayer的音量和静音
  18. 《锋利的jQuery》读书要点笔记7——制作商城网页:网站脚本
  19. 深度优先搜索及python实现围棋“吃子”
  20. 解决The package java.awt is not accessible或者javax.swing is not accessible的问题

热门文章

  1. 从U盘安装centos7(史上最简单的终极解决方案)
  2. 怎么看安装包是什么bit的_沙盘要怎么看 在售楼处看沙盘要注意什么
  3. Orillusion引擎正式开源!AIGC时代下的WebGPU轻量级3D渲染引擎!
  4. 新天地-----周华健新歌
  5. 小样本图像语义分割综述
  6. Word转Pdf(无水印)
  7. 如何保存数组配置到PHP文件
  8. 脑卒中css评分是什么意思,CSS评分表多伦多临床评分系统
  9. Mac 安装 miniconda
  10. 录音读写程序c语言,如果用c语言程序读取一段音频文件要如何做,具体要调用哪些函数,在网上搜索了半天,乱七八糟的,找不到什么有用的信息...