title: mkdosfs 安装
tags: linux
date: 2018/12/26/ 17:08:54
---
mtd-utils安装 for 主机
在制作根文件系统中需要使用它制作jffs2
,这里是使用gcc
编译的,不是使用arm-linux-gcc
这个工具依赖zlib
,所以还需要先安装它
安装zlib
- 源码包是
zlib-1.2.3.tar.gz
,使用xzf
,不是xjf
来解压.tar xzf zlib-1.2.3.tar.gz
- 配置
./configure --shared --prefix=/usr/
,shared
表示动态库,prefix
表示安装路径 - make
- 最后安装到系统,
sudo make install
安装mtd-utils
- 源码包是
mtd-utils-05.07.23.tar.bz2
,先解压tar xjf mtd-utils-05.07.23.tar.bz2
cd util/
去make
- 安装
sudo make install
- 生成工具
mkfs.jffs2
使用生成,不同的
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