linux文件系统yaffs2,yaffs2文件系统的移植

按照Andy博主(Andy的博文在我的Blog中有转载)所说,我也使用Git工具下载最新的yaffs2源码。我是在windows环境下安装的Git,windows版本。下载很方便,直接运行程序后,输入git

clone

git://www.aleph.co.uk/yaffs2 ,注意aleph后面的那个是数字1,不是字母l,否则就会在git的终端出现如下错误:

a4c26d1e5885305701be709a3d33442f.png

把上述错误改正后,下载完成后,在C盘(系统盘)下的 C:\Documents and

Settings\Administrator目录下就会出现yaffs2的目录。这个就是yaffs2的源码了。

把源码拷到linux环境下,就可以进行yaffs2的移植了。对于yaffs2的移植,本文分为如下两个小步骤:

(以下均是在linux环境下操作)

1、从终端进入yaffs2的目录下,执行./patch-ker.sh c m

/opt/linux-3.0.2即可。这里可选c/l m/s。 if c/l is c, then

copy. If l then link. if m/s is m, then use multi version code. If

s then use single version code.

这里如果是第一次执行时,还会出现一个Bad interpreter的错误。错误信息如下:

[root@localhost yaffs2]# ./patch-ker.sh c /opt/linux-3.0.2

bash: ./patch-ker.sh: /bin/sh^M: bad interpreter: No such file or

directory

错误原因是:文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样。

解决方法:

# vi

patch-ker.sh

# set

ff? //看是什么环境下编写的脚本,一看,果然是DOS环境下的脚本啊!

#set

ff=unix //转换成unix环境下

#wq! //保存,退出

重新运行上述打补丁的命令,如下:

[root@localhost yaffs2]# ./patch-ker.sh c m

/opt/linux-3.0.2

Updating /opt/linux-3.0.2/fs/Kconfig

Updating /opt/linux-3.0.2/fs/Makefile

即可,成功!

这时我们可以在linux-3.0.2/fs目录下,出现yaffs2/的目录,同时fs/目录下的Makefile和Kconfig文件也添加了yaffs2的配置和编译条件。再次佐证,补丁成功!

2、在配置单中添加对yaffs2的支持

make menuconfig后 file sysems--->miscellaneous

filesystems--->yaffs2 file system

support

如下:

a4c26d1e5885305701be709a3d33442f.png

配置完成后,保存配置单,编译出镜像,即可!至此,yaffs2移植完毕!

此时,可以看到启动信息如下(仅截取最后一部分,前面同linux-3.0.2在TQ2440上的移植博文的启动信息一样):

Creating 3 MTD partitions on "NAND":

0x000000000000-0x000000040000 : "Boot"

0x000000200000-0x000000400000 : "kernel"

0x00000fb80000-0x00000ff80000 : "filesystem"

mousedev: PS/2 mouse device common for all mice

S3C24XX RTC, (c) 2004,2006 Simtec Electronics

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

yaffs: dev is 32505858 name is "mtdblock2"

rw

yaffs: passed flags ""

VFS: Mounted root (yaffs filesystem) on device 31:2.

Freeing init memory: 112K

Failed to execute /linuxrc. Attempting defaults...Kernel

panic - not syncing: No init

found. Try passing init= option to kernel.

See Linux Documentation/init.txt for guidance.

[]

(unwind_backtrace+0x0/0xf8) from

[] (panic+0x58/0x19c)

[] (panic+0x58/0x19c) from

[]

(init_post+0xc0/0x138)

[] (init_post+0xc0/0x138)

from []

(kernel_init+0xe8/0x124)

[] (kernel_init+0xe8/0x124)

from []

(kernel_thread_exit+0x0/0x8)

可以看出,内核任然出现panic。上述提示信息可以看出yaffs2添加已经完成,下一步需要构建文件系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值