天天看點

jffs2檔案系統的制作和移植

    jffs2檔案系統(Journalling Flash FileSystem Version2)——基于flash的檔案系統

一.通過工具mkfs.jffs2制作檔案系統

1.制作mkfs.jffs2通過腳本實作,這裡用的是我們小組長修改的腳本完成的,步驟如下

1.1安裝依賴庫

yum install glibc-static zlo-devel zlib-static

1.2執行腳本檔案

jffs2檔案系統的制作和移植

生成工具mtd-utils-1.4.9/mkfs.jffs2

sudo cp mkfs.jffs2 /usr/bin/        

2.制作jffs2映像檔案

在 rootfs(檔案夾)所在的目錄下:

sudo mkfs.jffs2 -n -s 2048 -e 128KiB -d rootfs -o rootfs.jffs2 --pad=0x1400000

這樣就生成檔案rootfs.jffs2(映像檔案)

3.添加核心支援

vt100

make menuconfig

File systems  --->
Miscellaneous filesystems  --->
<*> Journalling Flash File System v2 (JFFS2) support
           (0)   JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
           [*]   JFFS2 write-buffering support
           [ ]   JFFS2 summary support (EXPERIMENTAL) 
           [ ]   JFFS2 XATTR support (EXPERIMENTAL) 
           [ ]   Advanced compression options for JFFS2 
           

4.u-boot環境下操作

[[email protected]]# set bkrj 'tftp 30008000 uImage_jffs2.bin;nand erase 100000 f00000;nand write 30008000 100000 800000'

[[email protected]]# set bootcmd_jffs2 'nand read 30008000 100000 800000;bootm 30008000'

[[email protected]]# set bootargs_jffs2 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0,115200'

[[email protected]]# set bootargs 'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0,115200'

/*參數說明

noinitrd: 當你沒有使用ramdisk啟動系統的時候,你需要使用noinitrd這個參數

root:用來指定rootfs的位置

rootfstype:指明檔案系統的類型

init:init指定的是核心啟起來後,進入系統中運作的第一個腳本,一般init=/linuxrc

console=ttyS0,115200:表示序列槽使用COM1,波特率為115200

[[email protected]]# set bootcmd 'run bootcmd_jffs2'

[[email protected]]# save

[[email protected]]# run bkrj

[[email protected]]# run bjffs2

[[email protected]]# boot

>: mount

rootfs on / type rootfs (rw)

/dev/root on / type jffs2 (rw,relatime)

proc on /proc type proc (rw,relatime)

tmpfs on /tmp type tmpfs (rw,relatime)

tmpfs on /dev type tmpfs (rw,relatime)

sysfs on /sys type sysfs (rw,relatime)

devpts on /dev/pts type devpts (rw,relatime,mode=600)

>: ls -l /dev

lrwxrwxrwx    1 root     root             9 Dec 31 17:00 root -> mtdblock2

參考部落格:https://www.sfantree.com/rootfs_jffs2/