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

首先用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;

原文地址:https://www.cnblogs.com/start530/p/3834380.html