关于内核配置选项中没有yaffs2这个选项问题的解决方案
2014-01-08 13:53
501 查看
从官方网站http://www.aleph1.co.uk/gitweb?p=yaffs2.git;a=summary下载yaffs2源码,解压后给linux3.6.7打补丁:./patch-ker.sh c m /kernel directory,完后看到fs目录下的Kconfig和Makefile文件都有增加yaffs2相关内容;fs目录下也多了yaffs2文件夹。基本上说明打补丁成功了,接下来在linux3.6.7主目录下make menuconfig,找到File Systems--->Miscellaneous
filesystem,却没有发现YAFFS2(用的是s3c6400_defconfig)。查看YAFFS2的Kconfig文件,需要先选择MTD_BLOCK才会有显示YAFFS2.
#
# yaffs file system configurations
#
config YAFFS_FS
tristate "yaffs2 file system support"
default n
depends on MTD_BLOCK
select YAFFS_YAFFS1
select YAFFS_YAFFS2
help
yaffs2, or Yet Another Flash File System, is a file system
optimised for NAND Flash chips.
To compile the yaffs2 file system support as a module, choose M
here: the module will be called yaffs2.
If unsure, say N.
Further information on yaffs2 is available at
<http://www.aleph1.co.uk/yaffs/>.
于是去MTD目录下找Kconfig的内容,看到:
config MTD_BLOCK
tristate "Caching block device access to MTD devices"
depends on BLOCK
select MTD_BLKDEVS
---help---
Although most flash chips have an erase size too large to be useful
as block devices, it is possible to use MTD devices which are based
on RAM chips in this manner. This block device is a user of MTD
devices performing that function.
At the moment, it is also required for the Journalling Flash File
System(s) to obtain a handle on the MTD device when it's mounted
(although JFFS and JFFS2 don't actually use any of the functionality
of the mtdblock device).
Later, it may be extended to perform read/erase/modify/write cycles
on flash chips to emulate a smaller block size. Needless to say,
this is very unsafe, but could be useful for file systems which are
almost never written to.
You do not need this option for use with the DiskOnChip devices. For
those, enable NFTL support (CONFIG_NFTL) instead.
也就说需要先选择Device Drivers-->MTD-->Caching block device access to MTD devices,然后才能够在File Systems--->Miscellaneous filesystem下面找到YAFFS2。
保存后make uImage.这时,错误来了:
1.struct super_block(include/fs.h) 缺少成员unsigned char s_dirt;//需要添加
2.struct super_operations (include/fs.h)缺少成员void (*write_super) (struct super_block *);
//需要添加
3.找不到d_alloc_root()函数;//用d_make_root()函数替换
4.找不到end_writeback()函数;//用clear_node( )函数替换
5.找不到struct mtd_info 下面的write,read,erase,sync等等成员;//全部在前面加下划线_write,_read,_erase等等。
改完这些再编译就可以了。
filesystem,却没有发现YAFFS2(用的是s3c6400_defconfig)。查看YAFFS2的Kconfig文件,需要先选择MTD_BLOCK才会有显示YAFFS2.
#
# yaffs file system configurations
#
config YAFFS_FS
tristate "yaffs2 file system support"
default n
depends on MTD_BLOCK
select YAFFS_YAFFS1
select YAFFS_YAFFS2
help
yaffs2, or Yet Another Flash File System, is a file system
optimised for NAND Flash chips.
To compile the yaffs2 file system support as a module, choose M
here: the module will be called yaffs2.
If unsure, say N.
Further information on yaffs2 is available at
<http://www.aleph1.co.uk/yaffs/>.
于是去MTD目录下找Kconfig的内容,看到:
config MTD_BLOCK
tristate "Caching block device access to MTD devices"
depends on BLOCK
select MTD_BLKDEVS
---help---
Although most flash chips have an erase size too large to be useful
as block devices, it is possible to use MTD devices which are based
on RAM chips in this manner. This block device is a user of MTD
devices performing that function.
At the moment, it is also required for the Journalling Flash File
System(s) to obtain a handle on the MTD device when it's mounted
(although JFFS and JFFS2 don't actually use any of the functionality
of the mtdblock device).
Later, it may be extended to perform read/erase/modify/write cycles
on flash chips to emulate a smaller block size. Needless to say,
this is very unsafe, but could be useful for file systems which are
almost never written to.
You do not need this option for use with the DiskOnChip devices. For
those, enable NFTL support (CONFIG_NFTL) instead.
也就说需要先选择Device Drivers-->MTD-->Caching block device access to MTD devices,然后才能够在File Systems--->Miscellaneous filesystem下面找到YAFFS2。
保存后make uImage.这时,错误来了:
1.struct super_block(include/fs.h) 缺少成员unsigned char s_dirt;//需要添加
2.struct super_operations (include/fs.h)缺少成员void (*write_super) (struct super_block *);
//需要添加
3.找不到d_alloc_root()函数;//用d_make_root()函数替换
4.找不到end_writeback()函数;//用clear_node( )函数替换
5.找不到struct mtd_info 下面的write,read,erase,sync等等成员;//全部在前面加下划线_write,_read,_erase等等。
改完这些再编译就可以了。
相关文章推荐
- 关于pageadmin配置过程中没有安全选项的问题解决方案
- 关于"没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题"的解决方案
- 解决Eclipse中配置中没有server选项——tomcat配置中遇到的问题
- 关于Linux下内核编程函数使用头文件包含的问题解决方案
- 在Cygwin环境下配置Linux内核的问题——解决方案!
- 关于在apache中配置error-page的问题解决方案
- eclipse adt开发android ndk没有NDK选项问题的解决方案
- VMware Workstation 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案
- 还是关于linux 内核编译问题,再次转贴 配置并编译内核[更新到linux-2.6.34]
- Xamarin.IOS问题记录——项目属性里IOS Bundle Signing 配置文件选项没有对应的配置文件选择
- VC6.0重装后新建选项卡中没有关于MFC工程的选项的解决方案
- eclipse配置文件没有提示问题解决方案
- 关于组策略里的用户配置\管理模板里少了很多选项的问题
- VMware 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案
- boost中静态库编译没有-fPIC选项的问题解决方案
- 关于压缩jar包时提示*.*没有这个文件或目录的问题以及解决办法:
- failed to open stream解决办法-关于WIN主机下配置PHP的若干问题解决方案总结
- 关于64位Oracle在tnsnames.ora配置新数据库地址后在PLSQL登陆界面没出现新数据库选项的解决方案
- 解决配置内核后还是出现配置选项的问题
- 关于spring导入配置文件,没有值的问题