2011年5月18日 星期三

crosee compilie mtd-utils

需要 lzo 和 zlib 這是提供資料壓縮之用的函式庫
還有 e2fsprogs(包涵 uuid, 這是 ubifs 需要的)


1. zlib http://www.zlib.net/ 
wget http://www.zlib.net/zlib-1.2.7.tar.gz
./configure --prefix=/joseph/LIN/mtd/install
make install
如果要在 arm 上執行, 要修改 Makefile

vi Makefile,
   gcc 改成 arm-mv5sft-linux-gnueabi-gcc
ar  改成 arm-mv5sft-linux-gnueabi-ar
ranlib 改成 arm-mv5sft-linux-gnueabi-ranlib

如果沒有加上 --static, 會變成 shared library 就需要 libz.so
 ./configure --prefix=/joseph/LIN/mtd/install --static 
這是 static library 方法


2. lzo http://www.oberhumer.com/opensource/lzo/
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
./configure --prefix=/joseph/LIN/mtd/install
make install

如果要在 arm 上執行, 
./configure --prefix=/joseph/LIN/mtd/install_marvell --host=arm-mv5sft-linux-gnueabi


3. e2fsprogs http://e2fsprogs.sourceforge.net/
wget http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/1.45.5/e2fsprogs-1.42.5.tar.gz
./configure --prefix=/joseph/LIN/mtd/install

make install

cd lib/uuid/
make install


如果要在 arm 上執行, 
./configure --prefix=/joseph/LIN/mtd/install_marvell --host=arm-mv5sft-linux-gnueabi



4. mtd-utils
請上 git 下載 git://git.infradead.org/mtd-utils.git

vi Makefile
PREFIX = /joseph/LIN/mtd/install
ZLIBCPPFLAGS = -I$(PREFIX)/include
LZOCPPFLAGS = -I$(PREFIX)/include
ZLIBLDFLAGS = -L$(PREFIX)/lib
LZOLDFLAGS = -L$(PREFIX)/lib
LDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)

如果要在 arm 上執行, 要加上
CROSS=arm-mv5sft-linux-gnueabi-



vi common.mk
           #PREFIX=/usr


make WITHOUT_XATTR=1 install
WITHOUT_XATTR=1  應該是指定 mtd-utils 使用 zlib.h 而不使用 acl.h.


5. 編好後,在  install 裡,可以找到 nandwrite, flash_erase, nanddump 等...



PS:mtd-utils 和 kernel 的 include\mtd\mtd-abi.h 和 include\mtd\mtd-abi.h 要一致,
         主要是 u32 和 u64 的差別。要注意!!



沒有留言:

張貼留言