背景

之前在zynq平台下处理系统分区,用到了SPI-FLASH以及EMMC。

根据ZYNQ平台的特性以及产品升级需要,规划了

  • SPI-FLASH放置BootLoader
  • EMMC中分为2个区,一个FAT放置内核、一个EXT4存放文件系统

因为发现默认的文件系统中没有mkfs.ext4的命令,因此需要自己移植,而这个程序连同mkfs.ext2mkfs.ext3被包含在e2fsprogs中。

e2fsprogs     :1.45.6

移植

还是一个脚本搞定的事情。

#/** @file         make.sh
#* @author Schips
#* @date 2020-10-28 23:22:53
#* @version v1.0
#* @copyright Copyright By Schips, All Rights Reserved
#*
#**********************************************************
#*
#* @par 修改日志:
#* <table>
#* <tr><th>Date <th>Version <th>Author <th>Description
#* <tr><td>2020-10-28 <td>1.0 <td>Schips <td>创建初始版本
#* </table>
#*
#**********************************************************
#*/ #!/bin/sh BUILD_HOST=arm-linux
BASE=`pwd`
OUTPUT_PATH=${BASE}/install/
## 必要时,填写你的工具链的所在路径
BUILD_HOST_PATH=/opt/gcc-arm-linux-gnueabi/bin
export PATH=${PATH}:${BUILD_HOST_PATH} require () {
if [ -z "$1" ];then
return
fi
command -v $1 >/dev/null 2>&1 || { echo >&2 "Aborted : Require \"$1\" but not found."; exit 1; }
echo "Using: $1"
}
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://udomain.dl.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.45.6/e2fsprogs-1.45.6.tar.gz
} 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_e2fsprogs () {
cd ${BASE}/source/e2fsprogs*
mkdir configure_dir -p
cd configure_dir
CC=${BUILD_HOST}-gcc ../configure --host=arm-linux --enable-elf-shlibs \
--prefix=${OUTPUT_PATH}/e2fsprogs \
--datadir=${OUTPUT_PATH}/e2fsprogs/doc \
--with-udev-rules-dir=${OUTPUT_PATH}/e2fsprogs \
--with-crond-dir=${OUTPUT_PATH}/e2fsprogs \
--with-systemd-unit-dir=${OUTPUT_PATH}/e2fsprogs
make && make install
} require ${BUILD_HOST}-gcc
make_dirs
download_package
tar_package
make_e2fsprogs
exit $?

拷贝

拷贝install/e2fsprogs/sbin到板子/usr/sbin

拷贝install/e2fsprogs/lib到板子/usr/lib

运行即可,例如:

# mkfs.ext4 /dev/mmcblk1p2

arm linux 移植 e2fsprogs的更多相关文章

  1. arm linux 移植 x265

    背景 本来想着把 x265编译到ffmpeg里面,搞定了x265的编译:但是一直报ERROR: x265 not found using pkg-config这个错误,我按照网上的资料,查看了ffbu ...

  2. Linux 安装 go 以及 arm linux 移植 go

    背景 Go是一门全新的静态类型开发语言,具有自动垃圾回收,丰富的内置类型,函数多返回值,错误处理,匿名函数,并发编程,反射等特性. 从Go1.4之后Go语言的编译器完全由Go语言编写,所以为了从源代码 ...

  3. arm linux 移植 MQTT (paho、mosquitto)

    前言 我们在这里做2件事情: 1)编译 paho.mqtt.mosquitto 2个开源项目的c版本库(mosquitto库没有用上) 2)编译好 依赖 paho.mqtt的库编写例程 + mosqu ...

  4. arm linux 移植 ffmpeg 库 + x264

    背景 Ffmpeg 中带有h264的解码,没有编码,需要添加x264.libx264是一个自由的H.264编码库,是x264项目的一部分,使用广泛,ffmpeg的H.264实现就是用的libx264. ...

  5. arm linux 移植 PHP

    背景: PHP 是世界上最好的语言. host平台 :Ubuntu 16.04 arm平台 : 3531d arm-gcc :4.9.4 php :7.1.30 zlib :1.2.11 libxml ...

  6. arm linux 移植支持 HP打印机

    背景 由于业务需要,需要hi3531d主板上加入对于HP打印机的支持. 通过与产品经理,技术主管的沟通:通用支持是不现实的,只要求彩色打印,先不考虑打印机的价格,只要支持一款打印机即可. 注意: Li ...

  7. arm linux 移植 gdb/gdbserver

    背景 调试工具gdb的使用对于嵌入式Linux开发人员来说是一项不可少的技能. 目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机 ...

  8. arm linux 移植 udhcp 与 使用

    背景 在一些网络环境下,需要静态IP不够现实,需要使用DHCP进行自动获取IP地址. udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微μ- DHCP -客户端client(μDH ...

  9. arm linux 移植 rsync

    背景: 在产品开发中可以使用rsync进行大文件的拷贝,断点续传. host平台 :Ubuntu 16.04 arm平台 : 3531d   rsync   :3.1.3 arm-gcc :4.9.4 ...

  10. arm linux 移植 jpeg

    背景: host平台 :Ubuntu 16.04 arm平台 : S5P6818 jpeg :v9c arm-gcc :4.8.1 主机准备: 运行以下脚本: ## # Copyright By Sc ...

随机推荐

  1. 使用open webui+ollama部署本地大模型

    使用open webui+ollama部署本地大模型 上次使用了angthingllm + ollama部署了本地大模型,详情见:https://www.cnblogs.com/jokingremar ...

  2. netcore依赖注入通过反射简化

    aspnetcore里面用到许多的service,好多业务代码都要通过Service.AddScoped.Singleton.Transient等注入进去,类太多了写起来和管理起来都很麻烦,所以借鉴了 ...

  3. vue-cli快速搭建项目的几个文件(一)

    ===========app.vue文件============= <template>   <div id="app">       <router ...

  4. 在Linux下想要删除一个目录需要怎样的权限

    场景一 在Home目录下创建一个目录dirtest,然后使用chmod 333 dirtest修改目录权限.这时候dirtest的权限为d-wx-wx-wx,如果执行rm -r dirtest可以进行 ...

  5. wordpress多站点设置,移除 多站点链接中的 /blog 前缀

    ★★★最近想给自己的wordpress添加多个站点,就查了查相关的设置方法,以下我亲自尝试可行 1.首先需要开始配置:在网站根目录下的 wp-config.php 添加: define('WP_ALL ...

  6. html布局浅谈

    现在布局方式主要分为三种 传统css布局方案(position,float,line-height等配合).实现复杂,需要多种属性配合使用,兼容性最好. flex布局方案.弹性布局,实现方便,兼容性较 ...

  7. vue2前端导出带背景色表格 xlsx xlsx-style

    vue2 +elmentui+xlsx10.0.0+xlsx-style 坑有点多. xlsx10.0.0以后的版本 用require导入或者使用什么导入什么,不要import * xlsx全部导入 ...

  8. Redis 的简单介绍

    Redis 特点 单线程 执行过程按顺序执行,不会同时执行多个操作,保证操作的原子性,省去了很多上下文切换线程的时间,不必考虑资源竞争和可能出现死锁. 为什么使用单线程 ? 官方FAQ表示:因为 Re ...

  9. Flyway简单迁移失败问题

    因为我是初学者,所以问题 只是一些细节性问题,现在看看V开头创建数据库迁移时的错误 问题一: flyway 命名规则问题这个绝对的细节中的细节问题 问题一解决方案: 命名规则:一定要遵循flyway的 ...

  10. RTMP推流与B帧的关系

    一.H264数据结构 一个原始的H.264 NALU 由一个接一个的 NALU 组成的,而它的功能分为两层,VCL(视频编码层)和 NAL(网络提取层). VCL:包括核心压缩引擎和块,宏块和片的语法 ...