mtd-utils 的交叉编译

编译服务器版本
Ubuntu 12.04

mtd-utils依赖于zlib、lzo、e2fsprogs提供的库
zlib下载地址:zlib Home Site
lzo下载地址:Index of /opensource/lzo/download
e2fsprogs下载地址:Ext2/Ext3/Ext4 Filesystems Utilities - Browse /e2fsprogs at SourceForge.netIndex of /e2fsprogs
mtd-utils下载地址:Memory Technology Device (MTD) Subsystem for Linux.

解压编译
tar -zxf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
CC=arm-hisiv600-linux-gcc ./configure -share --prefix=/home/admin/out
make
make install

tar -zxf lzo-2.09.tar.gz
cd lzo-2.09/
CC=arm-hisiv600-linux-gcc ./configure --host=arm-hisiv600-linux --enable-shared --prefix=/home/admin/out
make
make install

tar -zxf e2fsprogs-1.42.13.tar.gz
cd e2fsprogs-1.42.13/
./configure --host=arm-hisiv600-linux --enable-elf-shlibs --prefix=/home/admin/out
make
make install-libs

tar -jxf mtd-utils-1.5.0x.tar.bz2
cd mtd-utils-1.5.0/
修改 Makefile,打入该patch

--- Makefile.old	2019-10-08 11:03:09.563027087 +0800
+++ Makefile.new	2019-10-08 11:57:07.916998400 +0800
@@ -1,6 +1,13 @@
 
 # -*- sh -*-
 
+WITHOUT_XATTR = 1
+ZLIBCPPFLAGS = -I /home/admin/out/include
+LZOCPPFLAGS  = $(ZLIBCPPFLAGS)
+ZLIBLDFLAGS = -L /home/admin/out/lib -lz
+LZOLDFLAGS  = -L /home/admin/out/lib -llzo2
+UUIDLDFLAGS = -L /home/admin/out/lib -luuid
+
 VERSION = 1.5.0
 
 CPPFLAGS += -I./include -I$(BUILDDIR)/include -I./ubi-utils/include $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
@@ -103,6 +110,7 @@
 #
 obj-mkfs.ubifs = crc16.o lpt.o compr.o devtable.o \
 	hashtable/hashtable.o hashtable/hashtable_itr.o
+LDFLAGS_mkfs.ubifs = $(ZLIBLDFLAGS) $(LZOLDFLAGS) $(UUIDLDFLAGS)
 LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid
 $(call mkdep,mkfs.ubifs/,mkfs.ubifs,,ubi-utils/libubi.a)
 

静态编译mtd-utils
make CROSS=arm-hisiv600-linux- CFLAGS=--static
在 mtd-utils-1.5.0/arm-hisiv600-linux 目录里面,有可执行的bin档,如 nanddump、nandwrite、flash_erase 等
在 mtd-utils-1.5.0/arm-hisiv600-linux/ubi-utils 目录里面,有 mtdinfo

如果编译服务器版本是Ubuntu 16.04或更高,应该使用 mtd-utils-2.0.0,依赖可以这样搭配:
zlib-1.2.11.tar.gz
lzo-2.10.tar.gz
e2fsprogs-1.44.0.tar.gz
mtd-utils-2.0.0.tar.bz2

mtd-utils-2.0.0 目录里不像1.5.0直接有Makefile,2.0.0 是有 configure,步骤有点不一样

export ZLIB_CFLAGS=-I/home/admin/out/include
export ZLIB_LIBS=-L/home/admin/out/lib
export LZO_CFLAGS=-I/home/admin/out/include
export LZO_LIBS=-L/home/admin/out/lib
export UUID_CFLAGS=-I/home/admin/out/include/uuid
export UUID_LIBS=-L/home/admin/out/lib/pkgconfig
export LDFLAGS="$ZLIB_LIBS $LZO_LIBS $UUID_LIBS -lz -llzo2 -luuid"
export CFLAGS="-O2 -g $ZLIB_CFLAGS $LZO_CFLAGS $UUID_CFLAGS"

./configure --host=arm-linux CC=arm-hisiv600-linux-gcc --prefix=$PWD/../out
make CROSS=arm-hisiv600-linux- WITHOUT_XATTR=1
make install

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cfl927096306

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值