linux3.6.5的yaffs移植
来源:互联网 发布:印度人看中国知乎 编辑:程序博客网 时间:2024/05/16 10:13
进入urdir目录(为描述方便,将yaffs文件下载至urdir目录下,内核源码目录为urdir/linux3.6.5)。
如果系统已经安装git工具,直接执行:
git clonegit://www.aleph1.co.uk/yaffs2 (@qingwu:一般在终端下都有git支持)
如果没有git工具,首先下载安装git(http://git-scm.com/ ,如果在Fedora下,可直接yum安装,命令:yum installgit.i686)。当然,也可以在windows下用git工具下载(这里请注意:windows下的文件可能会出现回车换行的错误,比如^M不能识别等,可以参考:
http://blog.csdn.net/cocoxiaomei/article/details/8497929)
2,给内核打补丁
yaffs源代码下载完后,进入urdir/yaffs源代码目录,执行:
#./patch-kernel.sh c m ../linux-3.6.5
根据帮助文档说明,可知c m的含义(you wish to copy(c) or link (l) the code and the path to your kernel sources and whether youwant to use the single-version or multi-version code.)
File systems --->
[*] Miscellaneous filesystems --->
<*> yaffs2 file system support如果在文件系统配置界面中发现没有yaffs的配置选项,解决办法:
在配置界面,查找 /yaffs,找到如图的说明:
其中[]内的参数是对应选项当前的状态,要让yaffs_fs选项为[y],依赖于MISC_FILESYSTEMS 和 MTD_BLOCK同时为[y],但是后者当前状态为[n],因此,需要将其选为[y]。请自行配置。
4,如果在这里直接make,会出现下面一连串错误,解决方法在错误的对应行已给出。
提到的需要修改的文件目录为:
注:这一条的解决办法是转载的,原文链接:
http://blog.csdn.net/longtian635241/article/details/8259107
fs/yaffs2/yaffs_vfs.c:439: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_vfs.c:443: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_vfs.c:445: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_vfs.c:478: error: unknown field 'write_super' specified in initializer——在fs.h中的struct super_operations中添加 void (*write_super) (struct super_block *);
fs/yaffs2/yaffs_vfs.c:478: warning: initialization from incompatible pointer type
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_evict_inode':
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_do_sync_fs':
fs/yaffs2/yaffs_vfs.c:2203: error: 'struct super_block' has no member named 's_dirt'
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_put_super':
fs/yaffs2/yaffs_vfs.c:2506: error: 'struct mtd_info' has no member named 'sync' ——所有mtd_info中的报错,都在参数前面加下划线
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_touch_super':
fs/yaffs2/yaffs_vfs.c:2523: error: 'struct super_block' has no member named 's_dirt'
fs/yaffs2/yaffs_vfs.c: In function 'yaffs_internal_read_super':
fs/yaffs2/yaffs_vfs.c:2699: error: 'struct mtd_info' has no member named 'erase'
fs/yaffs2/yaffs_vfs.c:2700: error: 'struct mtd_info' has no member named 'read'
fs/yaffs2/yaffs_vfs.c:2701: error: 'struct mtd_info' has no member named 'write'
fs/yaffs2/yaffs_vfs.c:2702: error: 'struct mtd_info' has no member named 'read_oob'
fs/yaffs2/yaffs_vfs.c:2703: error: 'struct mtd_info' has no member named 'write_oob'
fs/yaffs2/yaffs_vfs.c:2704: error: 'struct mtd_info' has no member named 'block_isbad'
fs/yaffs2/yaffs_vfs.c:2705: error: 'struct mtd_info' has no member named 'block_markbad'
fs/yaffs2/yaffs_vfs.c:2729: error: 'struct mtd_info' has no member named 'erase'
fs/yaffs2/yaffs_vfs.c:2730: error: 'struct mtd_info' has no member named 'block_isbad'
fs/yaffs2/yaffs_vfs.c:2731: error: 'struct mtd_info' has no member named 'block_markbad'
fs/yaffs2/yaffs_vfs.c:2731: error: 'struct mtd_info' has no member named 'read'
fs/yaffs2/yaffs_vfs.c:2731: error: 'struct mtd_info' has no member named 'write'
fs/yaffs2/yaffs_vfs.c:2733: error: 'struct mtd_info' has no member named 'read_oob'
fs/yaffs2/yaffs_vfs.c:2733: error: 'struct mtd_info' has no member named 'write_oob'
fs/yaffs2/yaffs_vfs.c:2754: error: 'struct mtd_info' has no member named 'erase'
fs/yaffs2/yaffs_vfs.c:2754: error: 'struct mtd_info' has no member named 'read'
fs/yaffs2/yaffs_vfs.c:2754: error: 'struct mtd_info' has no member named 'write'
fs/yaffs2/yaffs_vfs.c:2756: error: 'struct mtd_info' has no member named 'read_oob'
fs/yaffs2/yaffs_vfs.c:2756: error: 'struct mtd_info' has no member named 'write_oob'
make[2]: *** [fs/yaffs2/yaffs_vfs.o] 错误 1
make[1]: *** [fs/yaffs2] 错误 2
fs/yaffs2/yaffs_mtdif.c:53: error: 'struct mtd_info' has no member named 'erase'
fs/yaffs2/yaffs_mtdif.c: In function 'yaffs_mtd_write':
fs/yaffs2/yaffs_mtdif.c:79: error: 'struct mtd_info' has no member named 'write_oob'
fs/yaffs2/yaffs_mtdif.c: In function 'yaffs_mtd_read':
fs/yaffs2/yaffs_mtdif.c:115: error: 'struct mtd_info' has no member named 'read_oob'
fs/yaffs2/yaffs_mtdif.c: In function 'yaffs_mtd_erase':
fs/yaffs2/yaffs_mtdif.c:168: error: 'struct mtd_info' has no member named 'erase'
fs/yaffs2/yaffs_mtdif.c: In function 'yaffs_mtd_mark_bad':
fs/yaffs2/yaffs_mtdif.c:184: error: 'struct mtd_info' has no member named 'block_markbad'
fs/yaffs2/yaffs_mtdif.c: In function 'yaffs_mtd_check_bad':
fs/yaffs2/yaffs_mtdif.c:196: error: 'struct mtd_info' has no member named 'block_isbad'
make[2]: *** [fs/yaffs2/yaffs_mtdif.o] 错误 1
make[1]: *** [fs/yaffs2] 错误 2
make: *** [fs] 错误 2
- linux3.6.5的yaffs移植
- linux3.6.5的yaffs移植
- idea6410 linux3.6.6的yaffs移植
- yaffs移植
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- NandFlash驱动和Yaffs文件系统的移植
- Yaffs 文件系统在TE2410上的移植
- NandFlash驱动和Yaffs文件系统的移植
- 基于arm9的linux3.0内核移植
- linux3.6.5内核移植到S3C6410
- YAFFS文件系统移植
- YAFFS文件系统移植笔记
- YAFFS文件系统移植笔记
- YAFFS文件系统移植笔记
- yaffs 文件系统移植
- YAFFS移植经验总结
- yaffs 文件系统 移植
- [leetcode] Valid Parentheses
- 有关内容对齐方式的四个容易混淆的属性
- UINavigationBar的使用小结
- Json—使用gson jar包将json字符串解析为java对象或集合(一)
- UITabBar使用小结
- linux3.6.5的yaffs移植
- qt/embedded 4.5.3 的编译与移植
- select()函数要点解析
- iyt髅了,yu于良玉ulkturlyt也可以留个
- Sqrt(x)
- 简单实用的Code Review工具
- 百度搜索引擎基础知识:从抓取到输出
- [读后感]编程能力与编程年龄
- 磨刀不误砍柴功:App开发者必备的运营、原型、UI设计工具整理