開發平台:Ubuntu 11.04
Yaffs2源碼包:yaffs2.tar.bz2
yaffs2.tar.bz2 下載地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /pub/常用工具/DiskGenius-磁碟管理與數據恢復軟體最新版/
通過以下命令即可在Linux-2.6.38.8上成功移植yaffs2文件系統(以下命令都是基於內核源碼目錄linux-2.6.38.8和yaffs2源碼包yaffs2.tar.bz2在Ubuntu的同一目錄下)。
- $ tar jvxf yaffs2.tar.bz2
- $ cd yaffs2/
- $ ./patch-ker.sh c m ../linux-2.6.38.8
- $ cd ../linux-2.6.38.8/
- $ make menuconfig
- File systems --->
- [*] Miscellaneous filesystems --->
- <*> yaffs2 file system support
- $ make
如果你在以前移植yaffs2時出現下面類似的錯誤信息,那說明你的yaffs2源碼包太老了,與新版本內核已經不兼容了,因為不同版本的內核有些結構體和函數是不太一樣的。
- fs/yaffs2/yaffs_fs.c:290: warning: initialization from incompatible pointer type
- fs/yaffs2/yaffs_fs.c:349: warning: initialization from incompatible pointer type
- fs/yaffs2/yaffs_fs.c:362: error: unknown field 'delete_inode' specified in initializer
- fs/yaffs2/yaffs_fs.c:362: warning: initialization from incompatible pointer type
- fs/yaffs2/yaffs_fs.c:363: error: unknown field 'clear_inode' specified in initializer
- fs/yaffs2/yaffs_fs.c:363: warning: initialization from incompatible pointer type
- fs/yaffs2/yaffs_fs.c: In function 'yaffs_delete_inode':
- fs/yaffs2/yaffs_fs.c:573: error: implicit declaration of function 'clear_inode'
- fs/yaffs2/yaffs_fs.c: In function 'yaffs_setattr':
- fs/yaffs2/yaffs_fs.c:1523: error: implicit declaration of function 'inode_setattr'
- fs/yaffs2/yaffs_fs.c: In function 'yaffs_internal_read_super':
- fs/yaffs2/yaffs_fs.c:2100: error: implicit declaration of function 'init_MUTEX'
- make[2]: *** [fs/yaffs2/yaffs_fs.o] Error 1
- make[1]: *** [fs/yaffs2] Error 2
- make: *** [fs] Error 2
可以通過GIT獲得最新的yaffs2源碼包,至於如何操作,在yaffs2的官網上( http://www.yaffs.net/node/346 )已有說明。
- $ sudo apt-get install git
- $ git clone git: