作者:程姚根,华清远见嵌入式学院讲师。
1、zlib的编译
解压zlib-1.2.3.tar.bz2并进入zlib-1.2.3配置编译安装
$ tar xvf zlib-1.2.3.tar.bz2
$ cd zlib-1.2.3
$ ./configure
$ make
$ make install
2、mtd工具编译
解压mtd-snapshot-20050519.tar.bz2 并进入mtd/util编译安装
$ tar xvf mtd-snapshot-20050519.tar.bz2
$ cd mtd/util
$ make
$ make install
这样我们的系统里就有了mkfs.jffs2这个工具了
3、jffs2文件系统镜像制作
$ mkfs.jffs2 -r /source/rootfs -o rootfs.jffs2 -e 0x4000 --pad=0x800000 -n
(-e擦的块大小更cat /proc/mtd下面的要统一,这个参数是根据nand flash芯片手册查到的
--pad 如果根文件系统小于此参数指定的大小,那么制作成的文件系统镜像会跟指定的参数一样大。
-n指定小端模式)
$ cp rootfs.jffs2 /tftpboot
4、jffs2文件系统烧写
# tftp 30008000 rootfs.jffs2
# nand erase 500000 800000
# nand write 30008000 500000 800000
5、设置u-boot启动参数
# setenv bootcmd tftp 33000000 zImage\; go 33000000
# setenv bootargs root=/dev/mtdblock2 init=/linuxrc rootfstype=jffs2 rw
console=ttySAC0,115200
# savenv
6、重新启动开发板,查看是否成功
注意:如果NAND FLASH分区比jffs2文件系统镜像大,会提示一些信息,可以通过在内核中找到打印这些信息的文件(可以用grep命令在内核源码树下搜索),进入其中把相应得prink注释掉就行了。