背景
关于在公司的生产环境有关。不希望每次都在uboot下面做nand flash 的烧写;也觉得使用U盘升级的方法比较慢,而且有关的驱动不是我写的,不希望受制于人。还是希望在Linux下面比较通用。
有关文章:《mtd-utils 的 使用》、《使用 mtd-utils 烧写Arm Linux 系统各个部分》
要求: 根据本文进行操作时,需要明确清楚各个部分的烧写地址和大小。
host平台 :Ubuntu 16.04
arm平台 : 3531d
mtd-utils :1.4.8
zlib :1.2.11
lzo :2.08
e2fsprogs : 1.41.14
arm-gcc :4.9.4
编译
一个脚本解决所有的事情
bash
##
# Copyright By Schips, All Rights Reserved
# 自定义变量
OUTPUT_PATH=`pwd`/install
BUILD_HOST=arm-linux
ARM_GCC=${BUILD_HOST}-gcc
BASE=`pwd`
ZLIB=zlib-1.2.11
MTD_UTILS=mtd-utils-1.4.8
LZO=lzo-2.08
E2FSPROGS=e2fsprogs-1.41.14
make_dirs () {
#为了方便管理,创建有关的目录
cd ${BASE} && mkdir compressed install source -p
}
tget () { #try wget
filename=`basename $1`
echo 'Downloading [${filename}]...'
if [ ! -f ${filename} ];then
wget $1
fi
echo '[OK] Downloaded [${filename}] '
}
download_package () {
cd ${BASE}/compressed
tget https://www.zlib.net/${ZLIB}.tar.gz
tget http://www.oberhumer.com/opensource/lzo/download/${LZO}.tar.gz
# 注意下面这行的网址
tget https://jaist.dl.sourceforge.net/project/e2fsprogs/e2fsprogs/1.41.14/${E2FSPROGS}.tar.gz
tget ftp://ftp.infradead.org/pub/mtd-utils/${MTD_UTILS}.tar.bz2
}
tar_package () {
cd ${BASE}/compressed
ls * > /tmp/list.txt
for TAR in `cat /tmp/list.txt`
do
tar -xf $TAR -C ../source
done
rm -rf /tmp/list.txt
}
make_zlib () {
# 编译安装 zlib
cd ${BASE}/source/${ZLIB}
echo 'ZLIB ABOUT'
CC=${ARM_GCC} ./configure --prefix=${OUTPUT_PATH}/${ZLIB}
make && make install
}
make_lzo () {
# 编译安装 lzo
cd ${BASE}/source/${LZO}
echo 'LZO ABOUT'
CC=${ARM_GCC} ./configure --host=arm-linux --prefix=${OUTPUT_PATH}/${LZO}
make && make install
}
make_e2fsprogs () {
# 编译安装 e2fsprogs
cd ${BASE}/source/${E2FSPROGS}
echo 'E2FSPROGS ABOUT'
CC=${ARM_GCC} ./configure --host=arm-linux --enable-elf-shlibs --prefix=${OUTPUT_PATH}/${E2FSPROGS}
make && make install-libs
mkdir ${OUTPUT_PATH}/${E2FSPROGS}/include/uuid -p
cp lib/uuid/uuid.h ${OUTPUT_PATH}/${E2FSPROGS}/include/uuid
}
make_mtd_utils () {
# 编译安装 mtd-utils
cd ${BASE}/source/${MTD_UTILS}
echo 'MTD ABOUT'
# 下面4行修复了mtd编译的一些问题
sed -r -i '/LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid/ s/.*/LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid $(ZLIBLDFLAGS) $(LZOLDFLAGS) $(UUIDLDLIBS)/g' Makefile
sed -r -i '/#include mkdir mkfs.ubifs/uuid -p cp ${BASE}/source/${E2FSPROGS}/lib/uuid/uuid.h mkfs.ubifs/uuid/uuid.h export CROSS=${BUILD_HOST}- export DESTDIR=${OUTPUT_PATH}/mtd-utils export ZLIBCPPFLAGS=-I${OUTPUT_PATH}/${ZLIB}/include export LZOCPPFLAGS='-I${OUTPUT_PATH}/${LZO}/include -I{$OUTPUT_PATH}/${E2FSPROGS}/include/' export ZLIBLDFLAGS=-L${OUTPUT_PATH}/${ZLIB}/lib export LZOLDFLAGS=-L${OUTPUT_PATH}/${LZO}/lib export UUIDLDLIBS=-L${OUTPUT_PATH}/${E2FSPROGS}/lib make WITHOUT_XATTR=1 } make_dirs #download_package tar_package make_zlib make_lzo make_e2fsprogs make_mtd_utils mtd-utils: make 后 :mtd-utils工具链将会在当前目录下$CROSS目录生成 make install后 :make生成的结果将安装到DESTDIR目录下 如果 make install 失败,手动在 $CROSS 文件名的目录下就可以找到编译的结果 img 拷贝需要的程序和库即可 mtd-utils 2.0版本的编译: https://blog.csdn.net/liyangzmx/article/details/93901411 (注:本人尝试过2.x版本的编译,但是失败了。)
上一篇:基于ARM7(LPC2131)平台的μC/OS-Ⅱ的移植
下一篇:ARM40-A5应用——fbset与液晶屏参数的适配
推荐阅读最新更新时间:2024-11-17 10:39
设计资源 培训 开发板 精华推荐
- LTC2992HMS-1 双路宽范围功率监视器的典型应用
- Raspberry Pi Model A+,基于 BCM2835 700MHz 低功耗 ARM11 应用处理器的单板计算机
- NCV890100 1.2A、2MHz 汽车降压开关稳压器的典型应用
- (已验证)模块-1.3寸oled屏
- #第六届立创电赛#语音功放二合一
- 用于 CD/MP3 模拟 AM/FM 收音机的单个 8:1 模拟多路复用器
- 将 i.MX 连接到基于 MC9328MX1、MC9328MXL、MC9328MXS 和 MC9328MX21 的硬盘
- 用于低功耗离线 SMPS 的 NCP1070 高压开关的典型应用电路
- NCP300LSN27T1 2.7V 电压检测器的典型应用,用于具有附加迟滞的微处理器复位电路
- 使用 Microchip Technology 的 MIC2774N-XXBM5 的参考设计
- 一览TE可靠的电源连接家族产品,下载赢TTI定制礼品
- 【投票跟帖有礼】原厂的翻新仪器怼市场上的二手仪器,你顶谁?
- 观看TI IOT解决方案研讨会 答题即可赢取更多精美好礼!
- 芯币竞价全新回归 抱回惊喜迎接新年
- 助力EEWorld 19成长计划,赢取精美好礼!
- 第二届英飞凌【碳化硅应用技术】发展论坛
- 【已结束】 Qorvo & Keysight 直播【新一代无线连接的挑战与应对之道】
- 有奖直播:AC/DC 在 ATX 及 Server 电源解決方案及应用 报名开始啦!
- 是德科技(Keysight)有奖征文,下笔赢示波器啦!
- 瑞萨电子MCU全国技术研讨会开放报名!覆盖上海、南京、杭州、合肥等10大城市!
- 徐大全:华为 is 华为,博世 is 博世
- “狼来了”不再是童话?特斯拉电池这次真出了狠招
- 梅赛德斯EQ车型将配声学系统!可模拟V8/警示行人
- 特斯拉研究线控转向技术 Cybertruck或率先搭载
- 特斯拉完全自动驾驶来了?马斯克预告FSD测试版下周推出
- 能耗降低7-9%:万向发布两挡电驱系统,变速箱将成电机标配?
- Maxim Integrated发布支持车载USB PD端口的buck/boost控制器
- 汽车技术智能化程度不断提升,线束可靠性如何设计?
- 新思科技联合Elektrobit推出用于ARC功能安全处理器IP的EB tresos Classic AUTOSAR软件
- 5G iPhone亮相了 组装厂赶工