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) |