mtd utils tool installation
来源:互联网 发布:汽车零件号查询软件 编辑:程序博客网 时间:2024/06/06 00:58
先介绍一下平台环境:
开发环境: Win7+VirtualBox+Debian
工具链:arm-linux-
硬件平台:Tq2440 arm9开发板
使用到的mtd-utils软件包请到 这里 下载,压缩包中已经含有编译mtd-utils用到的所有软件,分别是:
zlib-1.2.8.tar
lzo-2.06.tar
e2fsprogs-1.42.8.tar
mtd-utils-1.4.9.tar
先将压缩包在Win7下解压,然后将得到的上面的四个软件包拷贝到debian。
这里有几个网址,可以下载到比较新的版本:
如果下载上面的软件包,在make的过程中出现不能解决的问题,可以尝试下载下面相应的工具。
mtd-utils http://www.mmnt.net/db/0/0/ftp.infradead.org/pub/mtd-utils
e2fsprogs http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/
lzo http://www.oberhumer.com/opensource/lzo/download/
zlib http://zlib.net/
下面开始进行编译:
参考: http://processors.wiki.ti.com/index.php/MTD_Utilities#MTD-Utils_Compilation
第一步、 编译安装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:
CPPFLAGS += -I./include -I$(BUILDDIR)/include -I./ubi-utils/include $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
PREFIX = /home/pengdl/tq2440/my_mtd_utils/mtd_utils
CROSS=arm-linux-
ZLIBCPPFLAGS = -I$(PREFIX)/include
ZLIBLDFLAGS = -L$(PREFIX)/lib
LZOCPPFLAGS = -I$(PREFIX)/include
LZOLDFLAGS = -L$(PREFIX)/lib
LDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
上面的内容插入的位置如下:
# -*- sh -*-
VERSION = 1.5.0
#added contents beginning!
PREFIX = /home/book/s3c2440/drivers/nand/mtd_utils_tools_package/utilstool
CROSS=arm-linux-
ZLIBCPPFLAGS = -I$(PREFIX)/include
ZLIBLDFLAGS = -L$(PREFIX)/lib
LZOCPPFLAGS = -I$(PREFIX)/include
LZOLDFLAGS = -L$(PREFIX)/lib
LDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
#added contents ended!
CPPFLAGS += -I./include -I$(BUILDDIR)/include -I./ubi-utils/include $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
修改common.mk,将PREFIX=/usr注释掉
#PREFIX=/usr
保存,执行下面的命令
WITHOUT_XATTR=1 make
如果make时出现不能解决的问题,可以尝试下载高版本的
make 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.txt
file_list="`ls .`"
rm -rf $file
touch $file
for i in $file_list;do
du -sh $i >>$file
echo "" >>$file
arm-linux-objdump -x $i | grep NEEDED >>$file
done
- mtd utils tool installation
- mtd-utils
- mtd-utils
- mtd-utils交叉编译
- mini2440 安装 mtd-utils
- mtd-utils交叉编译
- mtd-utils命令简介
- MTD-utils 使用方法
- mtd-utils交叉编译 .
- mtd-utils的编译
- 编译mtd-utils
- mtd-utils编译过程
- mtd-utils命令简介
- mtd-utils命令简介
- mtd-utils交叉编译
- ubuntu mtd-utils
- mtd-utils编译
- mtd-utils编译过程
- windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息
- 【BZOJ3922】Karin的弹幕 线段树&暴力
- AT&T扩展随选网络至100城 SDN在美国落地开花
- JSON和模型之间的转换(CoderMJLee/MJExtension)
- MyBatis模糊查询分页
- mtd utils tool installation
- 软件测试面试 (二) 如何测试网页的登录页面
- 委托和匿名委托的比较
- Android沉浸式
- 作为编程的人,我自己认为我的能力是这样子。
- yum最新源?yum php最新版本?yum mysql最新版本?
- 概述C#定义接口成员
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
- Delegate,Action,Func,匿名方法,匿名委托,事件