mtd-utils交叉编译

由于制作的Busybox缺少ubiformat命令,然后自己移植mtd-utils,这里记录下:

环境:Ubuntu虚拟机19.04

mtd-utils依赖zlib、lzo、e2fsprogs提供的库和头文件:

zlib: 1.2.11

http://www.zlib.net/

lzo: 2.10

http://www.oberhumer.com/opensource/lzo/download/

e2fsprogs: 1.45.3

http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/

mtd-utils: 1.5.2

ftp://ftp.infradead.org/pub/mtd-utils/         //这个官网下的包有时校验出错

 1.zlib编译:

$ tar -zxvf zlib.tar.gz
$ cd zlib/
$ sudo CC=arm-linux-gcc ./configure --prefix= mtd-utils解压路径/arm-linux-gnueabi
$ make
$ make install

2.lzo编译:

$ tar -zxvf lzo.tar.gz
$ cd lzo/
$ sudo CC=arm-linux-gcc ./configure --host=arm-linux --prefix= mtd-utils解压路径/arm-linux-gnueabi
$ make
$ make install

3. e2fsprogs编译:

$ tar -zxvf e2fsprogs.tar.gz
$ cd e2fsprogs/
$ sudo CC=arm-linux-gcc ./configure --host=arm-linux --prefix= mtd-utils解压路径/arm-linux-gnueabi
$ make
$ make install

4.mtd-utils编译:

修改Makefile

CROSS = arm-linux-gnueabi-
CC := $(CROSS)gcc -EL
LDFLAGS := -static
ZLIBCPPFLAGS = -I/mtd-utils解压路径/arm-linux-gnueabi/include   
LZOCPPFLAGS = -I/mtd-utils解压路径/arm-linux-gnueabi/lzo/include/lzo
UUIDCPPFLAGS = -I/mtd-utils解压路径/arm-linux-gnueabi/include/uuid

ZLIBLDFLAGS = -L/mtd-utils解压路径/arm-linux-gnueabi/zlib/lib
LZOLDFLAGS = -L/mtd-utils解压路径/arm-linux-gnueabi/lzo/lib
UUIDLDFLAGS = -L/mtd-utils解压路径/arm-linux-gnueabi/lib

WITHOUT_XATTR = 1
$ make

若提示"major"错误:

mkfs.ubifs/devtable.c:240:10: error: called object ‘major’ is not a function or function pointer

则在相应文件中添加头文件:

#include <sys/sysmacros.h>

若提示缺少头文件,则从zlib、lzo、e2fsprogs的uuid目录中拷贝到mtd-utils/include目录。

mtd-utils 2.0. 0 和2.1.0编译

依赖包:zlib-1.2.11   lzo-2.10  e2fsprogs-1.45.6

环境:

Linux hangtu 4.15.0-101-generic #102~16.04.1-Ubuntu SMP Mon May 11 11:38:16 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

依赖包编译和上面一样

mtd-utils编译脚本如下:

export WITHOUT_XATTR=1
export PREFIX=mtd-utils安装路径/arm-linux-gnueabi/
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig/
export ZLIBCPPFLAGS=-I${PREFIX}/include
export LZOCPPFLAGS=-I${PREFIX}/lzo/include/lzo
export UUIDCPPFLAGS=-I${PREFIX}/include/uuid
export ZLIBLDFLAGS=-L${PREFIX}/zlib/lib
export LZOLDFLAGS=-L${PREFIX}/lzo/lib
export UUIDLDFLAGS=-L${PREFIX}/lib

export CFLAGS='-I${PREFIX}/include -I${PREFIX}/include/lzo -I${PREFIX}/include/uuid -g -O2'

export ZLIB_LIBS=-L${PREFIX}/lib
export LZO_LIBS=-L${PREFIX}/lib
export UUID_LIBS=-L${PREFIX}/lib/pkgconfig
export LDFLAGS="$ZLIB_LIBS $LZO_LIBS $UUID_LIBS -luuid -lz"
export CFLAGS="-O2 -g $ZLIB_CFLAGS $LZO_CFLAGS $UUID_CFLAGS"
sudo CC=arm-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/home/llw/mtd-utils/install LDFLAGS=-L${PREFIX}/lib UUID_CFLAGS='-I${PREFIX}/include/uuid' LZO_CFLAGS='-I${PREFIX}/include/lzo' ZLIB_CFLAGS='-I${PREFIX}/include' --without-crypto
sudo make

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值