yaffs根文件系统的制作

一、建立根文件系目录

 包括root dev etc boot tmp var sys proc lib mnt home usr 及一些下层子目录

可创建一个shell脚本creat_rootfs_bash完成:

#!/bin/sh

echo "------Create rootfs directons start...--------"

mkdir rootfs

cd rootfs

echo "--------Create root,dev....----------"

mkdir root dev etc boot tmp var sys proc lib mnt home usr

mkdir etc/init.d etc/rc.d etc/sysconfig

mkdir usr/sbin usr/bin usr/lib usr/modules

echo "make node in dev/console dev/null"

mknod -m 600 dev/console c 5 1

mknod -m 600 dev/null c 1 3

mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp

mkdir var/lib var/lock var/run var/tmp

chmod 1777 tmp

chmod 1777 var/tmp

echo "-------make direction done---------"

 

二、建立动态链接库

动态链接库直接用arm-linux-gcc4.3.3   .../arm-none-linux-gnueabi/libc/armv4t/lib *.so.*

复制到根文件目录lib 内。


三、交叉编译Bosybox

Bosybox 是一个遵循GPL v2 协议的开源项目,它在编写过程总对文件大小进行优化,

并考虑了系统资源有限(比如内存等)的情况,使用Busybox 可以自动生成根文件系统所需的

bin、sbin、usr 目录和linuxrc 文件。

1、解压busybox

tar –zxvf busybox-1.13.3.tar.tgz –C Downloads/

2、进入源码,修改Makefile 文件:

cd /Downloads/busybox-1.13.3

修改:

CROSS_COMPILE ?=arm-linux- //第164 行

ARCH ?=arm //第189 行

3、配置busybox

友善之臂提供的缺省配置文件:fa_config(输入命令“cp fa.config .config”可以调用该配置),一般用户直接使用缺省文件就可以了,这样生成的busybox 和root_qtopia 中的是完全一致的。但为了对它的配置了解更多一些,可以参考原文作者的如下步骤:

输入 make men onfig 进行配置

(1)、Busybox Settings--->

(2)、Linux Module Utilities--->

(3)、在busybox 中配置对dev 下设备类型的支持

Linux System Utilities --->

[*]Support /etc/mdev.conf

[*]Support command execution at device addition/removal

 

4、编译busybox

编译busybox 到指定目录:

make CONFIG_PREFIX=/Downloads/rootfs install

在rootfs 目录下会生成目录bin、sbin、usr 和文件linuxrc 的内容。

 

 

四、建立etc 目录下的配置文件

1、etc/mdev.conf 文件,内容为空。

2、拷贝主机etc 目录下的passwd、group、shadow 文件到rootfs/etc 目录下。

3、etc/sysconfig 目录下新建文件HOSTNAME,内容为”nyist”。

4、etc/inittab 文件:(这个文件编辑好后最好备份起来备以后用,因为编译之后会消失)

#etc/inittab

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

console::askfirst:-/bin/sh   #笔者写成s3c2440_serial0 提示出错

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a –r

5、etc/init.d/rcS 文件:

#!/bin/sh

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

runlevel=S

prevlevel=N

umask 022

export PATH runlevel prevlevel

echo "----------munt all----------------"

mount –a

echo /sbin/mdev>/proc/sys/kernel/hotplug

mdev -s

echo "***********************************************"

echo "Kernel version:linux-2.6.32.2"

echo "nyist"

echo "Date:2013.04.18"

echo "***********************************************"

/bin/hostname -F /etc/sysconfig/HOSTNAME

(或者直接 /bin/hostname nyist)

使用以下命令改变 rcS 的执行权限:

Chmod +x rcS

6、etc/fstab 文件:

#device mount-point type option dump fsck order

proc /proc proc defaults 0 0

none /tmp ramfs defaults 0 0

sysfs /sys sysfs defaults 0 0

mdev /dev ramfs defaults 0 0

7、 etc/profile 文件:

#Ash profile

#vim:syntax=sh

#No core file by defaults

#ulimit -S -c 0>/dev/null 2>&1

USER="id -un"

LOGNAME=$USER

PS1='\u@\h:\w\$' #ubuntu style

PATH=$PATH

HOSTNAME='/bin/hostname'

export USER LOGNAME PS1 PATH

 

 

五、制作根文件系统映像文件

使用以下命令安装好 yaffs 文件系统制作工具:

tar –zxvf mkyaffs2image.tgz –C /    (注意 —C 和解压到根目录,之间有空格)

Downloads目录下,使用命令mkyaffs2image rootfs rootfs.bin生成根文件系统映像文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值