yaffs2根文件系统制作教程

根文件系统制作教程

特别说明:根文件系统制作过程中所有拷贝命令均需加“-a”参数(  #cp  –a  )否则将出现难以预料的问题。美观起见,文中空格格式不统一,请勿直接复制文中命令

1工具准备:

busybox(本教程采用1.20版本)    

yaffs2打包工具

交叉编译工具链

2、busybox配置编译

2.1、解压busybox压缩包,进入解压后的目录

2.2执行  # make menuconfig命令,进入配置界面

注意以下选项:

(1) Build BusyBox as a static binary ( no shared libs )  //将busybox编译成静态链接

(2) Cross Compile prefix  //指定交叉编译器路径(/usr/local/arm/4.3.2/bin/arm-linux-) 

(3) Installation Options  指定安装路径(默认为./_install)

其余大部分选项默认即可,busybox的具体问题可以网络搜索相关文档查看。

2.3、保存退出

执行#make#make install、目录结构如下图

将会在指定目录下(./_install)生成文件系统需要的目录结构及相关命令和启动文件(/bin/sbin/usr目录和linuxrc文件)

2.4、创建动态库(使用静态编译的跳过本步骤)

使用#arm-linux-readelf  –d 命令查看busybox程序所使用的动态库文件及其软链接

拷贝库文件及其软链接到指定存放文件系统目录的/lib目录下(切记拷贝使用#cp –a 命令)

3、建立文件系统的目录结构

执行# mkdir myroots  建立文件系统根目录

执行# mkdir bin sbin usr lib dev mnt opt root etc home proc tmp var创建所有需要用到的目录结构

busybox编译产生的/bin/sbin/usr目录和linuxrc文件拷贝至文件系统根目录myroots

执行# mkdir etc/init.d

进入etc/init.d目录下,建立一个脚本文件,并命名为rcS,用gedit打开,添加如下内容:

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel

#

#Trap CTRL-C &c only in this shell so we can interrupt subprocesses.

#

trap ":" INT QUIT TSTP 

这个文件可以添加各种启动需要运行的命令脚本,如网卡配置、nfs挂载等

4、创建设备节点文件

在根目录/dev目录下,执行“#mknod 设备名字 类型 主设备号 次设备号”创建设备文件

#mknod console c 5 1

也可以从pclinuxdev目录中复制相关设备文件到文件系统/dev目录

5、写init启动脚本

/etc下创建启动脚本文件inittab

#vi /etc/inittab

写入如下两行:

::sysinit:/etc/init.d/rcS

::respawn:-/bin/login

第一行指定开机系统启动之后运行的启动脚本是rcS,第二行要求需用户密码登录系统

pc/etc/下的passwdshadowgroup文件拷贝至根文件系统/etc下,删去root以外的条目。则可以用pcroot帐号和密码登录嵌入式设备

6、创建虚拟文件系统 

文件系统根目录下执行#mkdir /proc /sys /tmp

rcS脚本中挂载三个虚拟文件系统,或板子启动后在串口终端执行:

#mount –t proc proc /proc

#mount –t sysfs sys /sys

#mount –t tmpfs tmp /tmp

挂载后proc文件夹存放系统关键信息

Sys目录存放系统信息

Tmp目录可做临时文件存储,直接存在内存上,读写速度快

7、用yaffs2工具打包文件系统

在工具所在目录执行#yaffs2 2 根文件系统目录 根文件系统镜像名字

#yaffs2  2  ***/rootfs  myrootfs.image

#chmod  644  myrootfs.image  更改镜像权限

至此,一个空白的根文件系统制作完毕,可以烧写到板子上运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值