歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Linux文件系統的移植-制作JFFS2文件系統

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 (下載見 http://www.linuxidc.com/Linux/2012-07/64775.htm )

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配置編譯安裝

mtd-snapshot-20050519.tar.bz2 與 zlib-1.2.3.tar.bz2 下載:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/7月/9日/Linux文件系統的移植-制作JFFS2文件系統/

$ 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 

重新啟動開發板,查看是否成功。

Copyright © Linux教程網 All Rights Reserved