JFFS2全名是 Journalling Flash File System Version2,是Redhat公司開發的快閃存儲器(簡稱:閃存;英文: Flash Memory)的檔案系統[1],其前身是JFFS, 最早只支援NOR Flash, 自2.6版以后開始支援NAND Flash, 極適合使用於嵌入式系統。
JFFS2 功能如下:
- 支援 NAND flash 裝置。
- 硬連結(Hard links)。這是JFFS 礙於文件格式所無法支援的功能。
- 壓縮。有三種算法: zlib, rubin 以及 rtime.
- 更佳的效能。
缺點:
- JFFS2在掛載(mount)時會掃描整個flash 所有的資料,再將檔案系統目錄儲存在system memory, 會線性倍數成長,消耗很多時間。
- JFFS2沒有write-back機制,不能將資料暫存於緩存(cache), 以致於flash I/O的動作頻繁。
- JFFS2設計機制過於復雜,程式碼不易閱讀。
一、移植環境:
1、 Ubuntu 10.10發行版
2、 u-boot.bin
3、 目標機:FS_S5PC100平台
4、 交叉編譯器 arm-cortex_a8-linux-gnueabi-gcc
---------------------------------------------------------------------
二、制作jffs2文件系
1、配置內核支持jffs2文件系統
$ make menuconfig
File system --->
[*] Miscellaneous filesystems --->
<*> Journalling Flash File System v2 (JFFS2) support
2、zlib的編譯
解壓zlib-1.2.3.tar.bz2並進入zlib-1.2.3配置編譯安裝
$ tar xvf zlib-1.2.3.tar.bz2 $ cd zlib-1.2.3 $ ./configure $ make $ make install
3、mtd工具編譯
解壓mtd-snapshot-20050519.tar.bz2 並進入mtd/util編譯安裝
$ tar xvf mtd-snapshot-20050519.tar.bz2 $ cd mtd/util $ make $ make install
這樣我們的系統里就有了mkfs.jffs2這個工具了
4、jffs2文件系統鏡像制作
$ mkfs.jffs2 -r /source/rootfs -o rootfs.jffs2 -e 0x4000 --pad=0x800000 -n $ cp rootfs.jffs2 /tftpboot
5、jffs2文件系統燒寫
# tftp 30008000 rootfs.jffs2 # nand erase 500000 800000 # nand write 30008000 500000 800000
6、設置u-boot啟動參數
# setenv bootcmd tftp 33000000 zImage\; go 33000000 # setenv bootargs root=/dev/mtdblock2 init=/linuxrc rootfstype=jffs2 rw console=ttySAC0,115200 # savenv
重新啟動開發板,查看是否成功。
原文鏈接:http://www.cnblogs.com/lr-ting/archive/2012/07/09/2576762.html