当前位置:文档之家› yaffs2文件系统制作

yaffs2文件系统制作

交叉编译器ARM-Linux-gcc4.1.2
开发板TX2440A
Busybox-1.15.1.tar.bz2(在Linux中被称为瑞士军刀)
mkyaffs2image工具
首先创建一个名字为root_2.6.31的文件夹,在其中创建如下文件夹
etc bin var dev home lib mnt proc root sbin sys tmp usr opt共14个文件夹
解压Busybox
tar xjvf busybox
进入源目录,修改Makefile
第164行,CROSS_COMPILE=arm-linux-
第190行,ARCH=arm
执行#make men onfig进行配置
配置选项大部分都是保持默认的,只需要注意选择以下这几个选项,其他的选项都不用动:Busybox Setting--->
Build Options--->
[*]Build Busybox as a static binary(no shared libs)
[*]Build with Large File Support(for accessing files>2GB)
Installation Options--->
(./_install)Busybox installation prefix
进入这个选项,输入busybox的安装路径,如:../rootfs
Busybox Library Tuning--->
[*]vi-style line editing commands
[*]Fancy shell prompts
要选择这个选项:“Fancy shell prompts”,否则挂载文件系统后,无法正常显示命令提示符:“[\u@\h\W]#”
配置完成以后
执行#make
#make install
然后就会在上一级目录下生成rootfs文件夹,里面包含几个文件夹/bin/sbin/usr linuxrc
把这些文件全部复制到刚建好的root_2.6.31目录下,
#cp–rf*../root_2.6.31
在dev目录下,创建两个设备节点:
#mknod console c51
#mknod null c13
然后进入自己建立的etc目录
拷贝Busybox-1.15.2/examples/bootfloopy/etc/*到当前目录下。

#cp-r../../busybox-1.15.2/examples/bootfloopy/etc/*./
包括文件:fstab init.d inittab profile
拷贝/etc/passwd,/etc/group,/etc/shadow到当前目录下。

#cp/etc/passwd./
#cp/etc/group./
#cp/etc/shadow./
修改inittab文件:
内容如下:
console::sysinit:/etc/init.d/rcS
ttyS0::respawn:-/bin/sh
s3c2410_serial0::askfirst:-/bin/sh
::once:/usr/sbin/telnetd-l/bin/login
::ctrlaltdel:/bin/umount-a-r
修改fstab文件,内容如下:
proc/proc proc defaults00
tmpfs/tmp tmpfs defaults00
sysfs/sys sysfs defaults00
tmpfs/dev tmpfs defaults00
var/dev tmpfs defaults00
修改init.d/rcS文件,内容如下:
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask022
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 修改profile文件,内容如下:
#Ash profile
#vim:syntax=sh
#No core files by default
#ulimit-S-c0>/dev/null2>&1
USER="`id-un`"
LOGNAME=$USER
PS1='[\u@\h\W]#'
PATH=$PATH
HOSTNAME=`/bin/hostname`
echo"Processing/etc/profile..."
echo"Done"
export USER LOGNAME PS1PATH
在当前目录下(etc)建立文件夹sysconfig,在里面新建HOSTNAME文件,内容为:TX2440A 拷贝库文件:(注意)
进入lib目录,拷贝交叉编译器的库文件到lib目录下(是你使用的那个交叉编译器)#cp-f-a
/opt/toolchains/arm920t-eabi/arm-angstrom-linux-gn?i/lib/*.so*./
由于交叉编译器的库文件比较多,体积较大,所以需要裁剪一下库文件,只保留常用的库文件,具体的裁剪方法可以参考我们提供的文件系统
的源码。

到这里,文件系统的框架已经做好,我们需要把文件系统制作成可以烧写进Nandflash中的yaffs2镜像文件。

使用mkyaffs2image工具,制作yaffs2镜像,这个工具是在yaffs2源码包中utils目录下的mkyaffs2image.c文件编译得到的,如果使用的是大
页NAND,需要修改源码。

把解压出来的可执行文件复制到/usr/bin目录下,
#cp mkyaffs2image/usr/bin
制作文件系统镜像:
#mkyaffs2image root_2.6.31root_2.6.31.bin
root_2.6.31.bin就是yaffs2文件系统镜像,要先修改它的权限,否则该文件无法被复制:#chmod777root_2.6.31.bin
把root_2.6.31.bin下载到nandflash中的文件系统分区中
如果文件系统能正常挂载,终端会打印出:
Please press Enter to activate this console.(按回车)
Processing/etc/profile...
Done
[root@TX2440A/]#
STEP4:完善文件系统
在/mnt目录下创建以下文件夹,用来挂载NFS,SD卡和U盘
nfs sd isk1isk2isk3isk4
设置开发板IP地址:在init.d/rcS文件中加入:
ifconfig lo127.0.0.1
ifconfig eth0192.168.1.10netmask255.255.255.0up
route add default gw192.168.1.1
这样在开机时,就自己设置了IP地址为:192.168.1.10
在/etc/profile中加入:
alias ll=`ls-l`
alias mntnfs=`mount-t nfs-o nolock`
alias mnt1=`mount/dev/sda1/mnt/isk1`
alias umnt1=`umount/mnt/isk1`
alias命令的作用是给一个命令取个别名,可以把较长的命令简化成简单易记的短命令,可以根据自己的需要添加这里的内容。

相关主题