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