利用mtd-util工具的flash_erase和nandwrite升级yaffs2文件系统,其中nandwrite加上"-o"和“-a”参数后报错

ENGLISH_HHZ 2016-04-07 11:44:55
各位好!最近在飞凌的ok210开发板上搞用U盘自动升级linux系统镜像,我利用mtd的flash_eraseall或flash_erase和nandwrite工具来升级linux系统,内核镜像zImage和logo图片都可以升级成功,只有根文件系统升级失败(cramfs类型的文件系统能写进去,但挂载不起来),板子默认的是yaffs2文件系统来的,写进去nand flash时我用的参数是" -p "(nandwrite -p), 由于写进去挂载不起来,所以我找了百度,说是yaffs2文件系统有oob区,需要加“-y”或者“-o”参数,而不是“-p”参数,但加“-y”或者“-o”参数后,写进去提示有错误,请看下面的截图;后来我实在没有办法,就搞成cramfs类型的文件系统,写进去nand flash时我用的参数是" -p "(nandwrite -p),能写进去了,但重启后cramfs文件系统还是挂载不起来,bootargs的参数设置是对的,内核也支持这两种文件系统了,后来又以为是mtd-utils工具的版本比较旧了,nandwrite才不支持加“-y”或者“-o”参数等等,后来又移植了mtd-utils-1.4.6.tar.gz,问题还是一样,所以请问各位这个问题应该怎么解决呢??比较急,在线等,谢谢!!













...全文
905 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Creator_莫言 2016-04-13
  • 打赏
  • 举报
回复
引用 4 楼 ENGLISH_HHZ 的回复:
你好!网上很多人都是先擦除后,再写进去的;但我现在想有可能是擦除后,那些写的环境变量发生变化了,并且同时也有进程对nandflash进行操作了,所以有可能导致写进去以后不对,所以文件系统就挂载不起来,那请问你有什么好办法吗??怎么解决这个问题呢??谢谢!!
根文件系统加载后就已经在使用了,你直接擦除覆盖这样不行吧。通常烧录根要么在u-boot阶段烧录,要么通过烧录工具(在内核启动阶段烧录,如mfgtool),如果是用户文件系统你可以在使用之前这样擦除覆盖,但是根文件系统好像是不行的。
ENGLISH_HHZ 2016-04-11
  • 打赏
  • 举报
回复
根文件系统加载后,不可以这样直接烧录覆盖吧。 你好!网上很多人都是先擦除后,再写进去的;但我现在想有可能是擦除后,那些写的环境变量发生变化了,并且同时也有进程对nandflash进行操作了,所以有可能导致写进去以后不对,所以文件系统就挂载不起来,那请问你有什么好办法吗??怎么解决这个问题呢??谢谢!!
ENGLISH_HHZ 2016-04-11
  • 打赏
  • 举报
回复
根文件系统加载后,不可以这样直接烧录覆盖吧。
Creator_莫言 2016-04-11
  • 打赏
  • 举报
回复
根文件系统加载后,不可以这样直接烧录覆盖吧。
ENGLISH_HHZ 2016-04-08
  • 打赏
  • 举报
回复
各位大神,别沉着啊!我又重新移植了mtd工具,这回能识别" -o "参数了,但nandwrite进去以后,还是挂载不起来,并且nandflash有很多坏块出现

1,319

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧