yaffs2根文件系统的制作.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:9 大小:288KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

yaffs2根文件系统的制作.doc

yaffs2根文件系统的制作.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Yaffs2文件系统移植到mini2440现在大部分开发板都可以支持yaffs2文件系统,它是专门针对嵌入式设备,特别是使用nandflash作为存储器的嵌入式设备而创建的一种文件系统,早先的yaffs仅支持小页(512byte/page)的nandflash,使用yaffs2就可以支持大页的nandflash。所谓的根文件系统,就是创建各个目录,并且在里面创建各种文件,比如在/bin,/sbin/目录下存放各种可执行的程序,在/etc目录下存放配置文件,在/lib目录下存放库文件,下面就开始文件系统的移植。一、准备工作1.Yaffs2源代码的获取在http://www.yaffs.net/node/346可以下载到最新的yaffs2源代码,如果使用git工具,在命令行输入:#gitclonegit://www.aleph1.co.uk/yaffs2就可以下载到yaffs2的源代码,到当前目录下。2.下载Busybox-1.13.3可以从http://www.busybox.net/downloads/下载Busybox-1.13.3。3.下载Yaffs2的制作工具可以到友善之臂的网站下载,mkyaffs2image.tgz,其中解压出来有两个可执行的文件,一个是针对小页的,一个是针对NandFlash大页的,其名字为mkyaffs2image-128M,一开始在这里犯了错误,我的NandFlash是128MB的,可以按照网上用的是mkyaffs2image文件,所以老是出来假坏块的提示,仔细一分析,NandFlash不可能一下子出来这么多的坏块,而且我用他们公司提供的根文件系统却没有任何的问题,所以问题处在了制作Yaffs2的工具上面。因为这两种大小NandFlash的ECC校验是不一样的,也就是spare区的大小是不一样的,造成了ECC校验出错。4.链接库制作根文件系统时,要使用到链接库,这里直接使用友善之臂根文件系统中的链接库。从网站下载root_qtopia.tgz。使用lib目录下的链接库。5.给内核打上YAffs2补丁然后进入yaffs2源代码目录执行:#cdyaffs2#./patch-ker.shc/opt/mini2440/linux-2.6.33.3此时进入linux-2.6.32.2/fs目录,可以看到已经多了一个yaffs2目录。上面命令完成下面三件事情:修改内核fs/Kconfig增加一行:source"fs/yaffs2/Kconfig"修改内核fs/Kconfig增加一行:ojb-$(CONFIG_YAFFS_FS)+=yaffs2/在内核fs/目录下创建yaffs2目录将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie;将yaffs2源码目录的Kconfig文件复制到内核fs/yaffs2目录下;将yaffs2源码目录下的*.c*.h文件复制到内核fs/yaffs2目录下.6.配置内核以支持Yaffs2文件系统在Linux内核源代码根目录运行:makemenuconfig,找到FileSystems,再找到“Miscellaneousfilesystems”菜单项,找到“YAFFS2filesystemsupport”,并选中它(如上图),这样我们就在内核中添加了yaffs2文件系统的支持,保存退出。然后在命令行中,执行makeuImage,这时不要在执行magemini2440_defconfig了,如果再执行的话,前面的配置就失效了,在这我也犯了一个低级的错误。二、构建根文件系统1.根文件系统的目录结构bin存放所有用户都可以使用的、基本的命令。sbin存放的是基本的系统命令,它们用于启动系统、修复系统等。usr里面存放的是共享、只读的程序和数据。proc这是个空目录,常作为proc文件系统的挂载点。dev该目录存放设备文件和其它特殊文件。etc存放系统配置文件,包括启动文件。lib存放共享库和可加载块(即驱动程序),共享库用于启动系统、运行根文件系统中的可执行程序。boot引导加载程序使用的静态文件home用户主目录,包括供服务账号锁使用的主目录,如FTPmnt用于临时挂接某个文件系统的挂接点,通常是空目录。也可以在里面创建空的子目录。opt给主机额外安装软件所摆放的目录。rootroot用户的主目录tmp存放临时文件,通常是空目录。var存放可变的数据。2.建立根文件系统的目录进入opt/mini2440/fs,创建一个shell的脚本用于构建根文件系统的各个目录。create_rootfs_bash,平且改变执行的权限。#chmod+xcreate_rootfs_b