mtd-utils 安装

mtd-utils安装 for 主机#

在制作根文件系统中需要使用它制作jffs2,这里是使用gcc编译的,不是使用arm-linux-gcc

这个工具依赖zlib,所以还需要先安装它

安装zlib

  1. 源码包是zlib-1.2.3.tar.gz,使用xzf,不是xjf来解压.tar xzf zlib-1.2.3.tar.gz
  2. 配置./configure --shared --prefix=/usr/ ,shared 表示动态库,prefix表示安装路径
  3. make
  4. 最后安装到系统,sudo make install

安装mtd-utils

  1. 源码包是mtd-utils-05.07.23.tar.bz2,先解压tar xjf mtd-utils-05.07.23.tar.bz2
  2. cd util/make
  3. 安装 sudo make install
  4. 生成工具mkfs.jffs2
  5. 使用生成,不同的flash使用不同的参数
    Copy
    mkfs.jffs2 -n -s 2048 -e 128KiB -d first_fs -o first_fs.jffs2 -s 一页大小是2048 -e 一个块大小 128KiB -d 源目录 -o 输出

mtd-utils安装 for 单板#

参考链接

编译安装,这里util依赖zlib,还要安装这个,zlib要安装到交叉编译器中,使用which查看

Copy
`# tar xzvf zlib-1.2.3.tar.gz # which arm-linux-gcc /opt/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-gcc #其中-prefix指定zlib的安装路径,需要指定到交叉编译器所在路径 #CC=arm-linux-gcc ./configure --shared --prefix=/opt/gcc-3.4.5-glibc-2.3.6/arm-linux #make #make install #------------------------------------------------------------------ #mkdir tmp #tar xjf mtd-utils-05.07.23.tar.bz2 -C tmp/ #cd tmp #cd util/ 修改 Makefile: #CROSS=arm-linux- 改为 CROSS=arm-linux- #make

复制到nfs的文件系统提供给单板使用

Copy
cp flash_erase flash_eraseall flashcp /stu/fs

使用工具格式化后挂载

FAQ : 格式化使用字符设备

因为每个分区的字符设备,其实就是对应着每个分区块设备。即/dev/mtd3对应/dev/mtdblock3

flash_eraseall, flash_erase那些命令是以ioctl等基础而实现, 而块设备不支持ioctl, 只有字符设备支持

Copy
#擦除分区3,也就是文件系统的分区 ./flash_eraseall /dev/mtd3 #挂载刚才格式化 的分区3 也就是 root # mount -t yaffs /dev/mtdblock3 /mnt yaffs: dev is 32505859 name is "mtdblock3" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.3, "mtdblock3" yaffs: auto selecting yaffs2 block 591 is bad # ls /mnt lost+found #卸载 umount /mnt
posted @   zongzi10010  阅读(2281)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示
CONTENTS