环境:
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. 再次编译内核,烧写到开发板上,能够看到以下启动信息:
可以看到文件系统已经成功挂载了。
但是执行初始化进程的时候失败了,接下来就是添加文件系统了。