编者:这里并不是移植yaffs2文件系统,只是给内核打个补丁,使之支持yaffs2文件系统。
1、获取yaffs2 源代源码
现在大部分开发板都可以支持yaffs2 文件系统,它是专门针对嵌入式设备,特别是使用nand flash 作为存储器的嵌入式设备而创建的一种文件系统,早先的yaffs 仅支持小页(512byte/page)的nand flash,现在的开发板大都配备了更大容量的nand flash,它们一般是大页模式的(2K/page),使用yaffs2 就可以支持大页的nand flash,下面是yaffs2 的移植详细步骤。
在http://www.yaffs.net/node/346 可以下载到最新的yaffs2 源代码,需要使用git工具,在命令行输入:
#git clone git://www.aleph1.co.uk/yaffs2
稍等片刻,就可以下载到最新的yaffs2 的源代码目录,本光盘中也有单独的yaffs2 源码包( 文件名为:yaffs2-src-20100329.tar.gz)
2 为内核打上yaffs2 补丁
然后进入yaffs2 源代码目录执行:
#cd yaffs2
#./patch-ker.sh c /opt/FriendlyARM/mini2440/linux-2.6.32.2
此时进入linux-2.6.32.2/fs 目录,可以看到已经多了一个yaffs2 目录。
3 配置和编译带YAFFS2 支持的内核
在Linux 内核源代码根目录运行:make menuconfig,移动上下按键找到File Systems,按回车进入该子菜单再找到“Miscellaneous filesystems”菜单项,按回车进入该子菜单,找到“YAFFS2 file system support”,并按空格选中它,这样我们在内核中添加了yaffs2 文件系统的支持,按“Exit”退出内核配置。
在命令行执行:
#make zImage
4 烧写到开发板运行测试
最后会生成linux-2.6.32.2/arch/arm/boot/zImage,使用supervivi 的“k“功能把它烧写到nand flash,按“b“启动系统,这时,如果nand flash 已经存在文件系统(可以使用supervivi的“y“功能烧写友善之臂提供的现成的yaffs2 文件系统映像root_qtopia-128M.img 用以测试)。