mtd-utils移植

mtd-utils移植 cxcc 2023-06-30 10:49:33 1407

mtd-utils移植

一、移植环境

  1. 开发平台:海思SS528

  2. 编译器:aarch64-mix210-linux-gcc

  3. 源码包:

  4. 编译目录结构

    mtd-utils
    ├── install          # 编译后的安装目录
    ├── pack         # 下载的源码包
    └── source           # 解压后的源码

二、编译

1)zlib

# 解压
tar -xvf ../pack/zlib-1.2.13.tar.gz
cd zlib-1.2.13
# 配置
CHOST=aarch64-mix210-linux ./configure -prefix=`pwd`/../../install/zlib
# 编译
make -j 20
# 安装
make install

2)lzo

# 解压
tar -xvf ../pack/lzo-2.03.tar.gz
cd lzo-2.03
# 修改配置(跳过不必要的检查,否则不能生成Makefile)
sed -i 's/xpassed | xyes) ;;/xpassed | xyes) ;;*);;/' configure
# 配置,虽然我们需要使用aarch64-mix210-linux,进行编译,但是编译器的命名规则校验失败,使用arm-linux配置
./configure --host=arm-linux --prefix=`pwd`/../../install/lzo
# 修改当前目录下所有的arm-linux,改为aarch64-mix210-linux
sed -i 's/arm-linux/aarch64-mix210-linux/' $(grep -rn "arm-linux-" |awk -F ':' '{print $1}')
# 屏蔽文件中的校验
sed -i '1i\#undef ACCCHK_ASSERT\n#define ACCCHK_ASSERT(e)' src/miniacc.h
# 编译
make -j 20
# 安装
make install

3)zstd

# 解压
tar -xvf ../pack/zstd-1.5.5.tar.gz
cd zstd-1.5.5
# 编译
CC=aarch64-mix210-linux-gcc make -j 20
# 安装
CC=aarch64-mix210-linux-gcc make install DESTDIR=`pwd`/../../install/zstd

4)e2fsprogs

# 解压
tar -xvf ../pack/e2fsprogs-1.47.0.tar.gz
cd e2fsprogs-1.47.0
# 配置
./configure --host=aarch64-mix210-linux --prefix=`pwd`/../../install/e2fsprogs
# 编译
make -j 20
# 修改部分文件的安装目录
sed -i 's/CROND_DIR = /CROND_DIR = $(prefix)/' scrub/Makefile
# 安装
make install

5)mtd-utils

# 解压
tar -xvf ../pack/mtd-utils-2.1.5.tar.bz2
cd mtd-utils-2.1.5
# 跳过异常的判定
sed -i 's/lzo_missing="yes"/lzo_missing="no"/' configure
# 导出环境变量
export UUID_CFLAGS=-I`pwd`/../../install/e2fsprogs/include/uuid
export UUID_LIBS="-L`pwd`/../../install/e2fsprogs/lib -luuid"
export ZLIB_CFLAGS=-I`pwd`/../../install/zlib/include
export ZLIB_LIBS="-L`pwd`/../../install/zlib/lib -lz"
export LZO_CFLAGS=-I`pwd`/../../install/lzo/include
export LZO_LIBS="-L`pwd`/../../install/lzo/lib -llzo2"
export ZSTD_CFLAGS=-I`pwd`/../../install/zstd/usr/local/include
export ZSTD_LIBS="-L`pwd`/../../install/zstd/usr/local/lib -lzstd"
# 配置
./configure --host=aarch64-mix210-linux --prefix=`pwd`/../../install/mtd-utils
# 编译
make -j 20
# 安装
make install

三、安装

本文中的移植整体命令比较多,且大部分都是独立的命令,也有部分可执行文件依赖动态库。编译后的可执行文件以及动态库都在install文件夹下,可根据需要拷贝到板端。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
cxcc
红包 点赞 收藏 评论 打赏
评论
4个
内容存在敏感词
手气红包
  • 2023-11-09 17:46:36
    回复
    lzo/lib/liblzo2.a: error adding symbols: file in wrong format
  • 2023-11-09 17:46:03
    回复
    大佬,编译mtd-utils时遇到错误error adding symbols: file in wrong format,请问怎么解决啊?
  • 易百纳用户53690 2023-06-30 16:42:40
    回复
    谢谢大佬的专栏
  • Techlife 2023-06-30 10:52:57
    回复
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
cxcc
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区