制作yaffs2文件系统并移植到ok6410开发板上

本文档详细介绍了如何使用busybox制作根文件系统,然后将YAFFS2文件系统移植到ok6410开发板上。包括下载yaffs2源码,将其添加到内核,配置内核支持YAFFS2,编译生成mkyaffs2image工具,制作根文件系统映像文件,并最终通过UBOOT将文件系统烧写到NAND Flash。
摘要由CSDN通过智能技术生成

首先用busybox制作根文件系统,参考我之前的博客:http://blog.csdn.net/start530/article/details/8018170

 

 

yaffs2源码下载:http://download.csdn.net/detail/chenxh/4186203

 

1.解压: tar -jxvf yaffs_source_util_larger_small_page_nand.tar.bz2 生成了一个[yaffs2]文件夹

 

第2、3步的前提是你内核里不支持yaffs2文件系统,及在内核/fs/下没有一个yaffs2目录。

2.拷贝[yaffs2]文件夹至Kernel根目录下的[fs]文件夹下: cp yaffs2 /usr/src/linux-2.6.36/fs/

3.操作: ./patch-ker.sh c /usr/src/linux-2.6.36/[这个是我Kernel的根目录的路径,请按照你的进行修改]

上面命令完成下面三件事:

(1) 修改内核fs/Kconfig

    增加一行:source "fs/yaffs2/Kconfig"

(2) 修改内核fs/Kconfig

    增加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/

(3) 在内核fs/目录下创建yaffs2目录

    将yaffs2源码目录下面的Makefile.kernel文件复制为内核fs/yaffs2/Makefie;

    将yaffs2 源码目录的Kconfig文件复制到内核fs/yaffs2目录下;

    将yaffs2源码目录下的*.c *.h文件复制到内核fs/yaffs2目录下.

 

4.进入Kernel根目录: cd /usr/src/linux-2.6.36/

5.操作: make menuconfig 进入内核设置界面

6.进入主界面的File systems  --->

7.进入: [*] Miscellaneous filesystems  --->

8.选中: <*>   YAFFS2 file system support

9.保存&退出.

 

使用以下命令安装好yaffs文件系统制作工具: 

mkyaffs2image 可执行文件是使用 Linux3.0 源代码目录 yaffs2 文件夹下 util s

目录中的 mkyaffs2image.c 文件编译出来的,如果您有兴趣可以自己制作适合 256MB

NandFlash 和 2G NandFlash 的 Yaffs2 工具。

 

在/nfsroot/目录下,使用命令mkyaffs2image rootfs rootfs.img生成根文件系统映像文件。

 

烧写:

设置uboot:

首先来看下我的分区表:(在开发板启动内核的时候会看到下面这几行)

0x000000000000-0x000000100000 : "Bootloader"

0x000000100000-0x000000600000 : "Kernel"

0x000000600000-0x000007e00000 : "User"

0x000007e00000-0x000080000000 : "File System"

 

setenv bootargs root=/dev/mtdblock3 rootfstype=yaffs2 init=/linuxrc console=ttySAC0,115200

Setenv bootcmd 

 

Printenv

Saveenv

 

用tftp下载zImage跟rootfs.img,并写入nand flash

zImage:

Tftp 50008000 zImage

Nand erase 100000 500000

Nand write.e 50008000 100000 500000

 

rootfs.img:

Tftp 50008000 rootfs.img

Nand erase 7e00000 8000000

Nand write.e 50008000 7e00000 8000000

 

 

重启。

 

*************************************************************************************

如果要修改uboot的bootargs跟bootcmd的话,

在开发板带的uboot1.16里的include/configs/smdk6410.h

#define CONFIG_BOOTCOMMAND      "nand read 0xc0008000 0x100000 0x300000;bootm 0xc0008000"

 

#define CONFIG_BOOTARGS         "root=/dev/mtdblock2 rootfstype=yaffs2 console=tty0 console=ttySAC0,115200"

//#define CONFIG_BOOTARGS       "root=/dev/mtdblock2 rootfstype=cramfs console=ttySAC0,115200"

 

保存后重新编译uboot,

Make smdk6410_config

make;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值