mtd-utils 安装


title: mkdosfs 安装
tags: linux
date: 2018/12/26/ 17:08:54

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使用不同的参数
    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查看

`# 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的文件系统提供给单板使用

cp  flash_erase  flash_eraseall flashcp  /stu/fs

使用工具格式化后挂载

FAQ : 格式化使用字符设备

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

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

#擦除分区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
原文地址:https://www.cnblogs.com/zongzi10010/p/10178923.html