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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM