我的NANDFLASH是1G的2k,NANDFLASH. 我用的uboot是1.3.4,用网上下的yaffs2IAMGE工具源码,做成的yaffs2文件系统,烧进去,提示: yaffs: auto selecting yaffs2 yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" No filesystem could mount root, tried: cramfs msdos vfat romfs fuseblk yaffs ya ffs2 Kernel panic - not syncing: VFS: Unable to mount...
by a62582480 - 嵌入式开发 - 2010-02-03 13:31:07 阅读(2749) 回复(3)
参考:http://blog.csdn.net/IT_114
在自己2.6.33 内核中,分区是:
现在正在看uboot烧写yaffs2的代码,有点疑问 输入命令后执行do_nand,然后执行到nand_write_opts int nand_write_opts(nand_info_t *meminfo, const nand_write_options_t *opts) { 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。 memcpy(data_buf, buffer, readlen); buffer += readlen; if (opts->writeoob) { ...
uboot与yaffs2的集成
请问: 使用烧录器可以直接把yaffs2镜像文件直接烧写到nand flash吗? 我使用软件把bootloader kernel烧录到nand flash,再通过nfs启动,把分区erase掉,然后通过nandwrite把yaffs2格式的根文件系统写进去,这样可以正常启动到根文件系统,但我再通过烧录器把nand flash中的内容read出来,erase掉flash,然后又把read出来的文件烧写回去flash,但这样,bootloader和kernel都可以正常跑起来,但文件系统就挂载不上了。 ...
修改u-boot,使其能正确烧写oob区。 diff --git a/common/cmd_nand.c b/common/cmd_nand.c index a90fcab..69e82fd 100755 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -10,7 +10,7 @@ #include - +#define CFG_NAND_yaffs2_WRITE #ifndef CFG_NAND_LEGACY /* * @@ -363,6 +363,23 @@ int do_nand(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) opts.quiet ...
下载的新内核linux2.6.28。下载yaffs2文件系统,给内核打补丁。结果编译出现。fs/yaffs2/yportenv.h:41:25: operator '<' has no left operand fs/yaffs2/yportenv.h:80:25: operator '>' has no left operand 这个问题。而往linux2.6.19上打补丁没有出现这个问题。试过好几种打补丁方法。都没有解决问题。linux内核是没有问题的。请教各位大侠这是怎麽回事?
这里说明yaffs2 的移植步骤而已。 但对于不同的内核需要改变一些yaffs2的配置。 例如: linux 2.6.12中如果使用yaffs2, 那么需要自己配置OOB64,然后改写R/D chunk的方法(mtdif2.c) 1. 获取yaffs2 最新源码 http://www.yaffs.net/ cvs 获取源码 export CVSROOT=:pserver:anonymous@cvs.aleph1.co.uk:/home/aleph1/cvs cvs logon cvs checkout yaffs2 2. 打系统补丁 ./patch-ker.sh c ../linux-2.6.31 ...
我用的flash(512M, 2K/PAGE, 内核2.6.24 ) 用mtd工具的nandwirite写大一些的文件(比如10多M的)进去,会烧到中间报错(错误信息如下),如果写小一些的,写完后usr下连lost+found都没有了,但是用nanddump 可以看出已经写文件进去了。 请问这个到底是什么问题,如何解决呢??有会的或者有些思路的都提提意见吧,我现在不知从何处下手弄。 先谢谢了、 Unable to handle kernel paging request at virtual address e51b3020 ...
我用的目标板是arm9 + linux 2.6.30. 采用yaffs2 文件系统。 分区如下: dev: size erasesize name mtd0: 00020000 00020000 "bootstrap" mtd1: 00040000 00020000 "uboot" mtd2: 00020000 00020000 "env1" mtd3: 00020000 00020000 "env2" mtd4: 00200000 00020000 "linux" mtd5: 07d60000 00020000 "root" 现在增加在线烧写固件的功能。编译最新的busybox 1.20后,得到flash_erase/flash_eraseall, nandwrite/n...