背景
關(guān)于在公司的生產(chǎn)環(huán)境有關(guān)。不希望每次都在uboot下面做nand flash 的燒寫;也覺得使用U盤升級的方法比較慢,而且有關(guān)的驅(qū)動不是我寫的,不希望受制于人。還是希望在Linux下面比較通用。
有關(guān)文章:《mtd-utils 的 使用》、《使用 mtd-utils 燒寫Arm Linux 系統(tǒng)各個部分》
要求: 根據(jù)本文進(jìn)行操作時,需要明確清楚各個部分的燒寫地址和大小。
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 () {
#為了方便管理,創(chuàng)建有關(guān)的目錄
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
# 注意下面這行的網(wǎng)址
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行修復(fù)了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工具鏈將會在當(dāng)前目錄下$CROSS目錄生成 make install后 :make生成的結(jié)果將安裝到DESTDIR目錄下 如果 make install 失敗,手動在 $CROSS 文件名的目錄下就可以找到編譯的結(jié)果 img 拷貝需要的程序和庫即可 mtd-utils 2.0版本的編譯: https://blog.csdn.net/liyangzmx/article/details/93901411 (注:本人嘗試過2.x版本的編譯,但是失敗了。)
上一篇:基于ARM7(LPC2131)平臺的μC/OS-Ⅱ的移植
下一篇:ARM40-A5應(yīng)用——fbset與液晶屏參數(shù)的適配
推薦閱讀最新更新時間:2025-05-15 10:50



設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機(jī)的無刷直流電機(jī)驅(qū)動器設(shè)計
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時處理器M7000
- cdsj relay
- 用于 LED 照明的 DC 到 DC 單路輸出電源
- 使用 MCP1631 高速脈寬調(diào)制器和 +5.5V 至 +16.0V 輸入的典型應(yīng)用電路
- AD8532ARMZ-REEL單電源直接接入調(diào)制解調(diào)器的典型應(yīng)用
- 用于無線的 2.8 至 5.5V 差分放大器
- NSI45025ZT1G 用于基本交流應(yīng)用的恒流 LED 驅(qū)動器的典型應(yīng)用
- 使用 ROHM Semiconductor 的 BD45425 的參考設(shè)計
- 使用 ON Semiconductor 的 ILC7080 的參考設(shè)計
- 使用 ON Semiconductor 的 CS5203A-2G 的參考設(shè)計
- OP484ESZ 3V 單電源、50Hz 至 60Hz 有源陷波濾波器和假接地的典型應(yīng)用
- 吉利電池安全標(biāo)準(zhǔn)升級,“神盾金磚電池”有什么技術(shù)亮點(diǎn)?
- 中國汽車工程學(xué)會出臺全固態(tài)電池新標(biāo)準(zhǔn)
- Allegro如何用技術(shù)定義汽車電子新范式
- 恩智浦半導(dǎo)體推出汽車級開發(fā)平臺OrangeBox 2.0 旨在促進(jìn)安全的汽車通信
- 三大上市公司加碼/跨界固態(tài)電池關(guān)鍵材料!
- 一大波全固態(tài)電池新產(chǎn)品來了!
- 欣旺達(dá)/瑞浦/恩捷/力華/杜爾······12大企業(yè)電池行業(yè)新品來襲
- 新唐科技發(fā)布第四代『GerdaTM』系列,車用HMI顯示IC產(chǎn)品開始量產(chǎn)
- 寧德時代的電+Momenta的腦,“智電雙極”重構(gòu)全球汽車格局
- 一文讀懂:固態(tài)電池產(chǎn)業(yè)鏈通覽
- 機(jī)器人如何當(dāng)音樂評審?
- 菜鳥無人機(jī)亮相西湖景區(qū)運(yùn)新茶
- 為捧自己Diss同行,獵豹傅盛發(fā)布機(jī)器人,敢問路在何方?
- 京東海南無人機(jī)配送站啟用 已完成首單配送
- 史上最兇殘手機(jī)殼:瞬間放電700萬伏 防狼利器
- 特朗普關(guān)稅背后 全球或?qū)θA利益收緊
- 美媒述評:中美在高技術(shù)領(lǐng)域陷入“冷戰(zhàn)”
- 新冷戰(zhàn)時代:中美高科技領(lǐng)域主導(dǎo)權(quán)之爭
- 特朗普阻擊“通通”合并后,5G競購開啟下半場
- 海通電子:中美貿(mào)易戰(zhàn)對國產(chǎn)半導(dǎo)體產(chǎn)業(yè)影響深度解讀