0K6410学习之移植linux内核支持yaffs2文件系统

环境:

 

PC机系统:Redhat6.1

目标板:    OK6410

目标板系统:linux3.0.101

编译器:       arm-linux-gcc4.3.2

 

1. 进入make menuconfig后       Boot options  ---> 输入

noinitrd console=ttySAC0,115200root=/dev/mtdblock2 init=/linuxrc rootfstype=yaffs2

如下图示:

2.    内核加入YAFFS2文件系统,编译

    参考前面这篇:http://blog.csdn.net/jxnu_xiaobing/article/details/17999115

3.    makemenuconfig 配置如下:

Device Drivers配置Generic Driver Options选择

       [*] Maintain a devtmpfs filesystem to mount at /dev 

       [*] Automount devtmpfs at /dev, after the kernel mounted the .... 

MTD-->Caching block device access to MTDdevices

4.    FileSystems 配置

         取消 Secondextended fs support 和 Ext3 journalling file system support

         [*] Miscellaneous filesystems --->选择yaffs2 file system support选项

 

 

 

5.      保存,编译内核。但是出现了如下错误:


这是因为,我之前在打补丁的时候使用的是:

./patch-ker.sh  c s ../linux-3.0.101

s选项,这里应该使用m选项,正确的命令是:

./patch-ker.sh  c m ../linux-3.0.101

两个命令的区别不仔细解释,看下help手册就知道。

上面命令完成下面三件事情: 

 (1) 修改内核fs/Kconfig      

增加一行:source"fs/yaffs2/Kconfig" 

 (2) 修改内核fs/Kconfig      

增加一行:ojb-$(CONFIG_YAFFS_FS)+=yaffs2/ 

 (3) 在内核fs/目录下创建yaffs2目录      

将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie;     

将yaffs2源码目录的Kconfig文件复制到内核fs/yaffs2目录下;     

将yaffs2源码目录下的*.c *.h文件复制到内核fs/yaffs2目录下.

这样就没有问题了。

4.        再次编译内核,烧写到开发板上,能够看到以下启动信息:

0K6410学习之移植linux内核支持yaffs2文件系统_第1张图片

可以看到文件系统已经成功挂载了。

但是执行初始化进程的时候失败了,接下来就是添加文件系统了。

 

你可能感兴趣的:(文件系统,移植,OK6410,yaffs2)