01

下载busybox

busybox从诞生至今已有近20年的历史,目前已经成为嵌入式行业主流的文件系统。官网是https://busybox.net/,点击GetBusyBox下面的Download Source进入到源码下载界面。

02

busybox的配置及编译

下载源码之后将源码拷贝到编译环境中,在编译前需要对busybox进行配置,主要涉及三方面的内容:

1)编译工具链设置2)编译模式设置3)文件系统支持的功能前两项为必须完成的,而第三点根据用户自己的需求自行制定。执行      makemenuconfig进入到配置界面。

编译工具链设置

设定的交叉编译工具链最好和kernel编译时使用的工具链一样,例如将交叉编译工具链设置为arm-linux-gnueabi-,则进入到build options中进行设置。

当然,也可以进入到根目录下的Makefile文件中修改对应的交叉编译工具链以及平台信息等。

编译模式设置

设置编译出的镜像文件是静态还是动态的,若是动态编译,需要手动将交叉编译工具链下的lib库拷贝到最终的_install文件夹下面,反之则不需要。

静态编译的配置如下,可以看到括号内的提示是不包含共享库。该项不使能则编译方式为动态的。

文件系统支持的功能剪裁

busybox可以支持上百种命令行及其他功能,根据自己的需求可进行增减,例如增加devmem命令行,则勾选上对应的使能框。

执行make、makeinstall后,在编译路径下会生成_install文件夹,里面包含bin、sbin、usr等文件。查看刚添加的devmem命令,发现已编译出。

此时将busybox下编译出来的_install拷贝出来作为文件系统的基本框架,然后再增添文件系统其他必须的组件即可。

03

构建文件系统

配置lib目录

将_install下的所有文件拷出并创建lib、etc文件夹,然后将交叉编译工具链arm-linux-gnueabi下的lib库拷贝到创建的lib文件夹下。

然后再依次创建home、opt、run、sys、var、boot、dev 、media、proc、tmp、usr。

配置lib目录

创建fstab文件

创建inittab文件

创建rcS文件

在创建rcS文件前需要在etc目录下手动创建init.d文件夹,并在init.d文件夹下创建rcS。

至此,执行tar -jcvf rootfs.tar.bz2 *,已经构建了一个可以基本运行的根文件系统了。

03

文件系统验证

使用mfgtools将压缩好的rootfs.tar.bz2下载到mmc中,再次启动系统,可以看到制作的根文件系统已经可以正常工作,我们之前添加的devmem命令也可以正常执行。

构建根文件系统_Linux之构建文件系统相关推荐

  1. 教你用 buildroot 构建根文件系统

    如果想要构建完整的根文件系统,大家一般都是使用buildroot,它不仅包含了 busybox 的功能,而且里面还集成了各种软件,需要什么软件就选择什么软件,不需要我们去移植. 嵌入式系统三大部分:b ...

  2. 构建根文件系统(一)

    接着前边内核移植的文章,记录根文件系统的构建. 这里要用到强大的busybox,我选择的版本是busybox-1.18.5.tar.bz2 ,1.17的也可以:之所以选择这个版本是因为基于现在的交叉编 ...

  3. 构建根文件系统的/dev目录

    在嵌入式ARM开发中,用busybox制作根文件系统时,其中必须构建的一个目录就是/dev目录.这个目录对所有的用户都十分重要,因为在这个目录中包含了所有Linux系统中使用到的外部设备,即所有的设备 ...

  4. buildroot构建根文件系统

    buildroot构建根文件系统 一.简介 Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.本文使 ...

  5. Buildroot 构建根文件系统(Jz2440)

    1. Buildroot 简介      Buildroot是Linux平台上一个构建嵌入式Linux系统的框架.整个Buildroot是由Makefile脚本和Kconfig配置文件构成的.你可以和 ...

  6. 野火i.MX6ULL Pro开发板构建根文件系统

    眼瞅着2020年马上就要到头了,承诺给大家的Linux移植三部曲还差最后一篇,这个拖延癌晚期恐怕今年是治不好了,不到最后的DL绝不妥协-- (这句话是年前写的,写了个开头就疫情了,封城,电脑丢在了公司 ...

  7. 从零开始构建根文件系统

    以下内容源于网络资源的学习与整理,如有侵权请告知删除. 参考博客 Uboot和系统移植(19)------- 根文件系统构建过程详解_big__C的博客-CSDN博客 一.总结 (1)本节在前面的理论 ...

  8. 嵌入式中利用ubuntu-base构建根文件系统

    在嵌入式环境中,我们最常用busybox.yocto或buildroot来构建根文件系统,这种情况下,当我们需要使用一些组件的时候,往往需要我们使用源码编译,移植到开发板中.那有没有像ubuntu的文 ...

  9. 【ARM】使用Ubuntu-base构建根文件系统

    使用Buildroot构建根文件系统 介绍 资源下载 配置根文件系统 设置软件源 安装必要软件 添加新用户 设置主机名称和本机IP 设置终端串口 网络DHCP FTP服务器搭建 串口无法登录 开机启动 ...

  10. linux busybox路径,BusyBox构建根文件系统

    BusyBox是一个复合了大量简易版Linux工具的程序,嵌入式系统中使用它可以快速建立一个相对简易的根文件系统. 1.下载busybox 官网 www.busybox.net 目前(2015.8.8 ...

最新文章

  1. 百度搜索技巧语法大全
  2. python if语句多个条件-Python 条件语句(if..elif..else)
  3. Android应用开发基础篇(1)-----Button
  4. WebRTC / Jitsi / 多人视频通讯常用架构 Mesh / MCU / SFU
  5. how is opportunity detail page display first item by default
  6. 流程平台:子表控件(二) - 属性、事件、方法
  7. 2021年电竞营销行业半年度报告
  8. excel公式:用countif、match、index合并同类项
  9. QStandardItemModel——数据模型
  10. Unity3D-后期处理 Post-process Volume Profile
  11. cad画流程图的插件_CAD高手教您画工艺流程图设计一些列图
  12. (转载) Android RecyclerView 使用完全解析 体验艺术般的控件
  13. 【第一期】大话计算机网络(猫、路由器、wifi)
  14. 魔百盒CM201-1、CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包
  15. 共享服务器与独立服务器的区别是什么?
  16. 唐仲英基金会:从“钢铁大王”到“十大慈善家”,他的一生如此传奇
  17. 计算机编程背那个英语词汇,编程英语词汇
  18. 【阅读】《法治的细节》笔记整理
  19. 基于梯度优化的混沌PSO算法matlab仿真以及在磁悬浮球系统方面的应用
  20. java毕业设计软件S2SH人力资源管理系统|人事薪资招聘oa人力请假考勤工资[包运行成功]

热门文章

  1. Python学习之路--Day5
  2. 关于使用swiper心得
  3. autoresizingMask的用法
  4. 关于 Profile
  5. 可逆加密,支持中文,支持密钥,加密后的密文每次都不同,且可随意改变算法 组件之Vb.Net版本...
  6. 第十三次CCF CSP认证(2018年3月)真题跳一跳
  7. 李宏毅机器学习HW1_pm2.5prediction(adagrad/gradient descent/SGD)
  8. 利用ENVI自带全球DEM数据计算区域平距高程
  9. Windows安装apache+php的nts版本
  10. Android Context简单说明