免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4056 | 回复: 10
打印 上一主题 下一主题

如何访问 nand flash 分区 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-22 11:43 |只看该作者 |倒序浏览
我用提优龙 2440 中 NAND Flash 总共 64M,系统只用了前 32M,
我希望把后面 32M 利用来存储我自己的数据,

系统是 2.6.30.4,在 common-S3C2440.c 中的 uc_default_nand_part 数组加上一项:
        [3] = {
                .name        = "cfg",
                .offset        = 0x02000000,
                .size        = 0x01000000,
        }
启动后,增加了一个分区 /dev/mtdblock3;

但这个 mtdblock3 如何加载成一个可以访问的磁盘分区呢?
以下是几次失败的尝试:

=============================================================================
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument

[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg -t ext2  
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument

[root@(none) /]# mkfs.minix /dev/mtdblock3
5472 inodes
16384 blocks
Firstdatazone=176 (176)
Zonesize=1024
Maxsize=268966912
[root@(none) /]# mount /dev/mtdblock3 /tmp/cfg -t minix
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: No such device
=============================================================================

请问我应该怎么做?
谢谢。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
2 [报告]
发表于 2010-01-22 11:55 |只看该作者
mount -t minix -o loop /dev/mtdblock3 /tmp/cfg
mount -t minix -o nolock /dev/mtdblock3 /tmp/cfg

论坛徽章:
0
3 [报告]
发表于 2010-01-22 12:17 |只看该作者
[root@(none) /]# mount -o loop /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument

[root@(none) /]# mount -o nolock /dev/mtdblock3 /tmp/cfg
mount: mounting /dev/mtdblock3 on /tmp/cfg failed: Invalid argument

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
4 [报告]
发表于 2010-01-22 12:41 |只看该作者
kernel编译的时候选上了minix了吗?

论坛徽章:
0
5 [报告]
发表于 2010-01-22 13:57 |只看该作者
原帖由 T-Bagwell 于 2010-1-22 12:41 发表
kernel编译的时候选上了minix了吗?


谢谢 Bagwell 的提醒,内核的确没选上 minix,加上可以 mount 了,
(我本来以为有了 mkfs.minix,内核就是支持的,后来才发现 mkfs.minix 是 busybox 带来的。)

但是又有问题:
mount 到 /tmp/cfg 后,在 /tmp/cfg 中的建立、修改文件,在断电之后却不能被保存下来,
连用上 sync 都不管用,除非 umount 或 reboot (会调用 umount ?);

这又是怎么回事?

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
6 [报告]
发表于 2010-01-22 14:23 |只看该作者
是不是必须用minix呢?
比如ext2
如果是flash的话,jffs2  yaffs 都应该可以的

论坛徽章:
0
7 [报告]
发表于 2010-01-22 14:38 |只看该作者
原帖由 T-Bagwell 于 2010-1-22 14:23 发表
是不是必须用minix呢?
比如ext2
如果是flash的话,jffs2  yaffs 都应该可以的


那倒不是,不过 busybox 中的 mkfs 只有 minix 版本,
而我又一时没找到 mkfs 的代码和可以在 arm 中运行的 mkfs.ext2/yaffs 等版本,

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
8 [报告]
发表于 2010-01-22 15:08 |只看该作者
不用
这个你可以在pc上做一个,然后烧写到flash里

论坛徽章:
0
9 [报告]
发表于 2010-01-22 15:22 |只看该作者
嗯,烧了一个 ext2 的,现象一样,非要 umount 数据才能保存,
真奇怪。。。。

我怀疑 busybox 提供的 sync 没正确工作,自己写了一个执行程序调用 api 中的 sync(),
但现象依旧。

难道以后都要 umount ?

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
10 [报告]
发表于 2010-01-22 15:25 |只看该作者
mount -o 选项加上一个sync应该就可以了
或者mount的时候-o加上一个rw,然后手动sync
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP