Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49901
  • 博文数量: 9
  • 博客积分: 290
  • 博客等级: 二等列兵
  • 技术积分: 108
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-04 18:28
文章分类

全部博文(9)

文章存档

2012年(3)

2011年(6)

我的朋友

分类: LINUX

2011-09-04 19:33:44

yaffs2 老版本不支持2.6.36以上内核
 网上下载的yaffs2常见版本(点击下方的Download GNU tarball进行下载)一般不支持2.6.36/37。但2.6.36一下版本依然可以使用。
 最新的yaffs2采用git发布,利用git工具下载到最新的yaffs2源代码,即可支持。办法是使用到发布的git方法获得最新版,并且查看readme确认其支持2.6.36/37。yaffs有一个较大的变化,是在2.6.36/37内核发布之后的一段时间里出现的,主要就是patch-ker.sh多了一个参数,m/s 是选择multiversion支持,还是singleversion支持。
=============================================================== 
(1)下载源代码
如果系统已经安装git工具,就直接执行:
git clone git://
如果没有git工具,请首先下载安装git()。当然,也可以在windows下用git工具下载。
 (2)给内核打补丁
yaffs源代码下载完后,放到某个目录下(但不要放在内核目录下!    )进入yaffs源代码目录:
#cd yaffs2
打补丁:
#./patch-kernel.sh    c    m     ../linux-2.6.37
(3)然后配置内核:
  #cd  ../linux-2.6.37   返回内核根目录
#make menuconfig
File systems -->
Miscellaneous filesystems -->
<*> YAFFS2 file system support

内核支持工作完成,现在通过内核挂载分区,烧写根文件系统。
1.通过nfs启动系统。
2.将根文件系统放到nfs中。
3.查看分区
root@am3517-evm:/# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00080000 00020000 "xloader-nand"
mtd1: 001c0000 00020000 "uboot-nand"
mtd2: 00040000 00020000 "params-nand"
mtd3: 00500000 00020000 "linux-nand"
mtd4: 0f880000 00020000 "rootfs-nand"
4.擦除相应的分区rootfs-nand
root@am3517-evm:/# flash_eraseall /dev/mtd4
Erasing 128 Kibyte @ 2d00000 -- 18 % complete.
Skipping bad block at 0x02d20000
Erasing 128 Kibyte @ 3140000 -- 19 % complete.
Skipping bad block at 0x03160000
Erasing 128 Kibyte @ 6f20000 -- 44 % complete.
Skipping bad block at 0x06f40000
Erasing 128 Kibyte @ 71e0000 -- 45 % complete.
Skipping bad block at 0x07200000
Erasing 128 Kibyte @ f860000 -- 99 % complete.(坏块信息,正常情况,会有几个)

5.挂载rootfs分区为yaffs2.
root@am3517-evm:/# mount -t yaffs2 /dev/mtdblock4 /tempd/
[  442.915039] yaffs: dev is 32505860 name is "mtdblock4" rw
[  442.920654] yaffs: passed flags ""
[  442.924285] yaffs: yaffs: Attempting MTD mount of 31.4,"mtdblock4"
[  443.109069] yaffs: block 362 is bad
[  443.116821] yaffs: block 396 is bad
[  443.180999] yaffs: block 891 is bad
[  443.187255] yaffs: block 913 is bad
[  443.323883] yaffs: yaffs_read_super: is_checkpointed 0
将mtd4挂到/tempd下,文件系统格式为yaffs2

6.解压根文件系统到mtd4分区上。
root@am3517-evm:/# cd /tempd/
root@am3517-evm:/tempd# busybox tar xjf /base-rootfs-am3517-evm.tar.gz 
[  616.761383] yaffs: **>> yaffs write required 2 attempts
[  617.192077] yaffs: **>> yaffs write required 2 attempts
[  617.285827] yaffs: **>> yaffs write required 2 attempts

7.Unmount the Flash file system partition
root@am3517-evm:/tempd# cd /
root@am3517-evm:/# umount /tempd/
root@am3517-evm:/# reboot

修改启动参数,重新启动!
setenv bootargs mem=256M console=ttyO2,115200n8 noinitrd root=/dev/mtdblock4 rw rootfstype=yaffs2 omapfb.rotate=1 omapfb.vrfb=y omap_vout.vid1_static_vrfb_alloc=y
正常的话应该可以正常启动了!

关于uboot烧写根文件系统还没有做,有时间再做学习!



阅读(3124) | 评论(1) | 转发(0) |
0

上一篇:UBI镜像制作

下一篇:让uboot 支持 ubi

给主人留下些什么吧!~~

tekkamanninja2011-09-05 14:13:20

过来帮你赞一下~~~~