yaffs2文件系统制作

内核版本:2.6.31

编译器版本:4.1.2

所用工具busybox版本:1.15.2

一、创建目录

#sudo root_2.6.31

#cd root_2.6.31

#sudo mkdir bin etc dev home lib mnt opt proc root sbin sys tem usr var

二、解压busybox

#tar xjvf busybox1.15.2.tar.bz2

进入busybox主目录

#cd busybox1.15.2

把第164行 CROSS_COMPILE ?=改成:

CROSS_COMPILE ?= arm-linux-

第190行 ARCH ?= $(SUBARCH) 改成:

ARCH ?= arm

3、配置busybox

 Busybox Settings  --->

      Build Options  --->

             [*] Build BusyBox as a static binary (no shared libs)                静态编译
             [*] Build with Large File Support (for accessing files > 2 GB)

      Installation Options  ---> 

           (./_install) BusyBox installation prefix         ./_install  是安装路径

     Busybox Library Tuning  --->

      [*]   vi-style line editing commands 

      [*]   Fancy shell prompts

保存退出

4、编译、安装

#make

#make install

5、制作文件系统

在busybox/_install 生成 bin sbin usr linuxrc 文件和文件夹,把这文件全部复制到root_2.6.31文件下

#sudo cp -rf * /root_2.6.31

在root_2.6.31/dev文件下创建两个结点

#sudo mknod console c 5 1
#sudo mknod null c 1 3

写配置文件,可以从busybox-1.15.2/examples/bootfloppy/etc复制到root_2.6.31/etc文件下

#sudo cp -r ../../busybox-1.15.2/examples/bootfloppy/etc/* ./

 把宿主机上的有关密码文件复制到root_2.6.31/etc文件下

sudo cp -rf /etc/passwd ./

sudo cp -rf /etc/group ./

sudo cp -rf /etc/shadow ./

把passwd文件下第一行root:x:0:0:root:/root:/bin/bash 改成:

root:x:0:0:root:/root:/bin/ash        由于文件系统下的bin没有bash,所以用ash代替

修改Inittab文件

console::sysinit:/etc/init.d/rcS
ttyS0::respawn:-/bin/sh
s3c2410_serial0::askfirst:-/bin/sh
::tty2::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r

修改profile文件

# /etc/profile: system-wide .profile file for the Bourne shells
USER="'id -un'"
LOGNAME=&USER
PS1='[/u@/h /W]#'
PATH=$PATH
HOSTNAME='/bin/hostname'
echo "Processing /etc/profile... "
echo "Done"
export USER LOGNAME PS1 PATH

修改/etc/init.d/reS文件

#! /bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock
/bin/hostname -F /etc/sysconfig/HOSTNAME

修改fstab文件

proc        /proc    proc    defaults    0    0
tmpfs           /temp   tpfs    defaults    0   0
sysfs           /sys    sysfs   defaults    0   0
tmpfs           /dev    tmpfs   defaults    0   0
var             /dev    tmpfs   defaults    0   0

在/etc文件夹想创建sysconfig,在sysconfig创建文件HOSTNAME里面的内容为:My2440

把库文件复制到文件系统的lib文件夹下

sudo cp -f -a /toolchains/arm920t-eabi/arm/angstrom-linux-gnueabi/lib/*.so ./

这样制作出的文件系统很大,下面是常用到的库文件:

libresolv.so           libthread_db.so

最后是有mkyaffs2image工具制作yaffs2镜像

该文章与http://hi.baidu.com/123820668/blog/item/b400e5dd5d8ae44eccbf1a4f.html为同一人博客

你可能感兴趣的:(yaffs2文件系统制作)