嵌入式 详解制作根文件系统以及文件系统中init以及其他文件详解

本文详细介绍了嵌入式Linux系统中根文件系统(rootfs)的制作过程,包括遵循FHS标准建立目录、编译安装Busybox、构建/lib目录、手工构建/etc和/dev目录等步骤。同时讲解了如何通过udev创建动态设备文件,并讨论了使用tmpfs挂载某些目录以保护NAND flash的方法。最后提到了如何将根文件系统打包为jffs2映像文件。
摘要由CSDN通过智能技术生成

一、FHS(Filesystem Hierarchy Standard)标准介绍

当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

该标准规定了根目录下各个子目录的名称及其存放的内容:

目录名 存放的内容
/bin 必备的用户命令,例如ls、cp等
/sbin 必备的系统管理员命令,例如ifconfig、reboot等
/dev 设备文件,例如mtdblock0、tty1等
/etc 系统配置文件,包括启动文件,例如inittab等
/lib 必要的链接库,例如C链接库、内核模块
/home 普通用户主目录
/root root用户主目录
/usr/bin 非必备的用户程序,例如find、du等
/usr/sbin 非必备的管理员程序,例如chroot、inetd等
/usr/lib 库文件
/var 守护程序和工具程序所存放的可变,例如日志文件
/proc 用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容
/sys 用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容
/mnt 文件系统挂接点,用于临时安装文件系统
/tmp 临时性的文件,重启后将自动清除

 

制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:

  • 编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录
  • 利用交叉编译工具链,构建/lib目录
  • 手工构建/etc目录
  • 手工构建最简化的/dev目录
  • 创建其它空目录
  • 配置系统自动生成/proc目录
  • 利用udev构建完整的/dev目录
  • 制作根文件系统的jffs2映像文件

下面就来详细介绍这个过程。

二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

这些目录下存储的主要是常用命令的二进制文件。如果要自己编写这几百个常用命令的源程序,my god, 这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。

1、从http://www.busybox.net/ 下载busybox-1.7.0.tar.bz2

2、tar xjvf busybox-1.7.0.tar.bz2解包

3、修改Makefile文件

175 ARCH            ?= arm
176 CROSS_COMPILE   ?= arm-linux-

4、make menuconfig配置busybox

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值