下载
mtd:ftp://ftp.infradead.org/pub/mtd-utils/
zlib:http://www.zlib.net/
lzo:http://bouchez.info/lzo.html

lzo编译

# ./configure --prefix=/usr/local/lzo/ CC=arm-linux-gcc --host=arm-linux
# make && make install

zlib编译

# ./configure --prefix=/usr/local/zlib/
修改Makefile的gcc为arm-linux-gcc
# make && make install

mtd-utils编译

# make CROSS=arm-linux-gcc
# make install

出现错误

mkfs.jffs2.c:69:21: sys/acl.h

解决办法
在Makefile中添加

WITHOUT_XATTR = 1

或者

# make CROSS=arm-linux-gcc WITHOUT_XATTR=1

出现错误
动态链接库错误
解决办法
修改Makefile,动态链接库后加入绝对路径(使用 -L)

出现错误

mkfs.ubifs/mkfs.ubifs.h:48:23: uuid/uuid.h: No such file or directory

解决办法
此问题不用解决,mtd工具已经在arm-linux-gcc目录中生成

编译完成

# mkfs.
mkfs.bfs      mkfs.ext2     mkfs.ext4     mkfs.jffs2    mkfs.msdos    mkfs.vfat
mkfs.cramfs   mkfs.ext3     mkfs.ext4dev  mkfs.minix    mkfs.ntfs  

jffs2

# mkdir jffs2
# mkfs.jffs2 –d jffs2/ -o jffs2.img
# dd if=jffs2.img of=/dev/mtdblock0
# mount -t jffs2 /dev/mtdblock0 /mnt/