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