Tq2440 上移植mtd-utils工具

Tq2440 上移植mtd-utils工具

先介绍一下平台环境:

开发环境: Win7+VirtualBox+Debian

工具链:arm-linux-

硬件平台:Tq2440 arm9开发板

zlib-1.2.8.tar

lzo-2.06.tar

e2fsprogs-1.42.8.tar

mtd-utils-1.4.9.tar

先将压缩包在Win7下解压,然后将得到的上面的四个软件包拷贝到debian。

这里有几个网址,可以下载到比较新的版本:

mtd-utils

e2fsprogs

lzo

zlib

下面开始进行编译:

参考:

第一步、 编译安装zlib

tar -xzf zlib-1.2.8.tar.gz

cd zlib-1.2.8/

./configure –prefix=/home/pengdl/tq2440/my_mtd_utils/mtd_utils

修改Makefile

CC=arm-linux-gcc

LDSHARED=arm-linux-gcc -shared -Wl,-soname,libz.so.1,–version-script,zlib.map

CPP=arm-linux-gcc -E

AR=arm-linux-ar

RANLIB=arm-linux-ranlib

修改完成后保存,执行下面的命令

make

make install

第二步、编译安装lzo

tar -xzvf lzo-2.06.tar.gz

cd lzo-2.06/

./configure –host=arm-linux –prefix=/home/pengdl/tq2440/my_mtd_utils/mtd_utils

make

make install

第三步、编译安装e2fsprogs

tar -xzvf e2fsprogs-1.42.8.tar.gz

cd e2fsprogs-1.42.8/

./configure –host=arm-linux –prefix=/home/pengdl/tq2440/my_mtd_utils/mtd_utils

make

make install

cd ./lib/uuid/

make install

第四步、编译安装mtd-utils

tar -xjvf mtd-utils-1.4.9.tar.bz2

cd mtd-utils-1.4.9/

修改Makefile:

PREFIX = /home/pengdl/tq2440/my_mtd_utils/mtd_utilsCROSS=arm-linux-ZLIBCPPFLAGS = -I$(PREFIX)/includeZLIBLDFLAGS = -L$(PREFIX)/libLZOCPPFLAGS = -I$(PREFIX)/includeLZOLDFLAGS = -L$(PREFIX)/libLDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS)CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)

#CFLAGS ?= -static -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)

修改common.mk,将PREFIX=/usr注释掉

#PREFIX=/usr

保存,执行下面的命令

WITHOUT_XATTR=1 makemake install

执行完后,会在/home/pengdl/tq2440/my_mtd_utils/mtd_utils/sbin生成需要的工具:

使用的是否只需要将相应的工具拷贝到根文件系统的/sbin下即可,,比如想测试一下mtdinfo能不能用,

cp mtdinfo /source/rootfs/sbin/ (我的根文件系统是用nfs挂载实现的)

在串口终端中执行下面的命令

可以用。

也可以看看这些工具依赖那些动态库

arm-linux-objdump –x mtdinfo | grep NEEDED

这些工具依赖库有:

libc.so.6、libdl.so.2、libgcc_s.so.1、libuuid.so.1、libm.so.6、libz.so.1、libpthread.so.0,所以根文件系统中应该有这些库。

libc、libgcc、libdl、ligpthread、libm这几个库在工具链中一般都有

libz在zlib-1.2.8下就有(工具链中也有,/opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib)

libuuid也在工具链中:/opt/EmbedSky/4.3.3/arm-none-linux-gnueabi/libc/armv4t/usr/lib

这里有一个脚本,用于获取当前目录下的依赖关系:

#!/bin/bash file=bin.txtfile_list= rm -rf $filetouch $filefor i in $file_list;dodu -sh $i >>$fileecho “” >>$filearm-linux-objdump -x $i | grep NEEDED >>$filedone

完!!

posted on

用最少的浪费面对现在

Tq2440 上移植mtd-utils工具

相关文章:

你感兴趣的文章:

标签云: