mkyaffs移植

1. 下载mkyaffs源码:

http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs.tar.gz?view=tar
2. 解压缩,进入 yaffs/utils, 修改Makefile:

(1) MAKETOOLS = arm-linux-

(2) CFLAGS = 增加“-I /your-kernel-include-dir” 指向你的平台的内核目录,例如/src/preview-kit/linux-2.6.28/include

(3) 这时make, 可能会报错,“'mtd_info_t' has no member named 'oobblock'”,原因是我的系统不支持oobblock,解决的办法可以直接将报错的代码注释掉。

(4) 还可能的一个报错是“mtd-abi.h:16: error: expected ':', ',', ';', '}' or '__attribute__' before '*' token,原因是mtd-abi.h中有一个“__user”没有定义,而他的定义在 <linux/compiler.h>中,因此在mtd-abi.h中加入这个同文件即可

(5) 现在应该成功的编译出mkyaffs

 

3.运行mkyaffs

(1)如果运行“./mkyaffs /dev/mtdblock5”, 会报错“MEMGETINFO: Inappropriate ioctl for device”,原因是mtd block device 不支持这个ioctrl,只有mtd char device才支持,参见drivers/mtd/mtdchar.c, drivers/mtd/mtdblock.c

(2) 因此正确的用法是“./mkyaffs /dev/mtd5”, 则是它有报“MEMSETOOBSEL: Inappropriate ioctl for device”,同样是因为系统不支持,注释掉

(3)重新编译,运行,成功!输出信息:

argc 2 sh 0 optcnt 1
Erasing and programming NAND
Erasing block at 0x080
Erasing block at 0x0820000
Erasing block at 0x0840000
Erasing block at 0x0860000
Erasing block at 0x0880000
Erasing block at 0x08a0000
Erasing block at 0x08c0000
Erasing block at 0x08e0000
.....

OK

(4) mkdir /mount_yaffs

(5) mount -t yaffs /dev/mtdblock5 /mount_yaffs

 

 

原文出处(http://blog.sina.com.cn/wyw1976),邮箱(wyw1976@gmail.com)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值