开发环境:
主机:fedora 14
虚拟机:vmware workstation 10
交叉编译工具:arm-linux-gcc 4.3.2
开发板:mini2440(2m nor ,64m sdram,256m nand)
一、获取yaffs2源码
我这里是从友善之臂的光盘里有一个压缩包,不过是zip格式的,可以在windows下解压,然后直接拷贝里面的yaffs2到虚拟机里面。
也可以使用git直接输入:git clonegit://www.aleph1.co.uk/yaffs2
我这里没有成功,也安装了git了,git –version显示1.7.3.1版本,错误提示为:fatal:unable to look up www.aleph1.co.uk(port 9418).这个错误暂时略过。因为可以用另一种方法获得yaffs2,先完成实验。
二、打补丁
#cd yaffs2
#./patch-ker.sh c ../linux2.6.32.2
成功会提示如下,并在fs下看到yaffs2的目录:
这一步主要做了两件事:
(1)修改内核fs/Kconfig
增加一行:source”fs/yaffs2/Kconfig”
增加一行:obj-$(CONFIG_YAFFS_FS)+=yaffs2/
(2)在内核fs/目录下创建yaffs2目录
将yaffs2源码目录下的Makefile.kernel复制为fs/yaffs2/Makefile
将yaffs2源码目录下的Kconfig,*.c,*.h文件复制到内核fs/yaffs2目录下。
三、配置内核
#makemenuconfig
Filesystems -à
[*]Miscellaneousfilesystems -à
选上
<*>YAFFS2file sysytem support
四、编译测试
#make zImage
将生成的内核./mkz2uimage打包成uImage
#cp uImage /tftpboot/
开发板从nand启动,进入u-boot命令行。
#tftp 0x30008000 uImage
#nand erase 0x60000 0x500000
#nand write 0x30008000 0x60000 0x500000
#boot
成功以后就会进入控制台,如下:
五、注意事项
这里是默认你在nand分区的mtdblock3下烧写了yaffs2文件系统的,也就是从0x560000开始的部分,这里我用的是我之前制作的rootfs,使用友善提供的mkyaffs2image-128M打包制作成的yaffs2文件系统。具体制作方法和步骤请参照《【申嵌培训】嵌入式linux根文件系统构建步骤(linux2.6.32.2)》里面讲的还算比较清楚。这篇帖子就到这里吧,这样友善的手册也结束了。如有不当还请指出,大家共同进步。