如何製作和使用Jffs2檔案系統

2021-05-01 21:21:54 字數 1741 閱讀 8677

本文主要介紹如何在at91sam9261ek板子上製作和使用jffs2檔案系統,使用的是-2.6.21核心。

首先:配置mtd

以上配置中沒有列出的,都沒選;其配置僅做參考,可根據自己的需要自行配置。

$ make all

其次:製作mtd-util工具

從網上zlib-1.2.3.tar.gz 解壓縮 $ cd zlib-1.2.3

$ ./configure –prefix=/usr/local/arm/3.4.1/arm- ——shared

修改makefile如下:

cc=arm-linux-gcc

ldshared=arm-linux-ld -shared

$ make all

$ make install

注意:這裡是安裝在/usr/local/arm/3.4.1/arm-linux目錄下

由於交叉編譯mtd工具時需要zlib.h檔案,所以在編譯之前先安裝zlib庫檔案。

從網上 mtd-snapshot-20050519.tar.bz2 解壓縮 $ cd mtd/util

修改該目錄下的makefile:

cross=arm-linux-

$ make all

然後將該目錄下生成的 flash_erase,flash_eraseall, mkfs.jffs2工具放在ramdisk 檔案系統中(我這裡放在/bin目錄下),另外在 ramdisk檔案系統的dev目錄下要保證有 mtd0~mtd9,mtdblock0~mtdblock9這些裝置,如果沒有可參考 ramdisk檔案系統的製作,也可從pc機相同目錄下拷貝,要加上檔案屬性。

另外,需要將/arm-linux/lib目錄下的libz.so, libz.so.1, libz.so.1.2.3檔案拷貝到ramdisk檔案系統的/lib目錄下,否則mkfs.jffs2工具不能使用。

最後將新生成的uimage和ramdisk檔案到板子上,起動系統,使用命令 cat /proc/mtd 可以看到

dev: size erasesize name

mtd0: 00040000 00020000 "partition 1"

mtd1: 0ffc0000 00020000 "partition 2"

mtd2: 00420000 00000210 "spi0.0-at45db321x"

這裡mtd0,mtd1是nandflash上的分割槽; mtd2是dataflsh上的分割槽,該分割槽上放有u-boot,uimage.img,ramdisk.img,所以我們這裡可以使用空的 nandflash上的兩個分割槽。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具體使用的步驟如 下:

# flash_erase /dev/mtd1

製作jffs2映像

# cd /var/tmp

# mkdir jffs2 (jffs2下的目錄可以任意建)

# mkfs.jffs2 –d jffs2/ -o jffs2.img

# cp /var/tmp/jffs2/jffs2.img /dev/mtdblock1

最後# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可,使用結束可使用$ umount /mnt/mtd 解除安裝.

如果只是當作普通的jffs2 來使用dataflash或者nandflash,可不必製作 jffs2映像,只需要最後一步

# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。

製作jffs2檔案系統

今天憋了老半天了,終於把jaffs檔案系統做成功了。之前系統啟動時,一直報錯如下 empty flash at 0x00003ffc ends at 0x00004000 一直報個沒完。後來查了一下,才知道,製作jffs2檔案的時候,指定的檔案大小的引數小了,而jffs檔案大小比他大。系統啟動的時候...

jffs2映象製作和掛載

用mkfs.jffs2 命令製作jffs2映象檔案 或者使用命令 apt get install mtd utils 命令使用例項 mkfs.jffs2 s 0x1000 e 0x40000 p 0x500000 d rootfs o jffs2.img 說明 頁大小0x1000 4k 塊大小0x4...

製作jffs2映象檔案

或者使用命令 apt get install mtd utils 命令使用例項 mkfs.jffs2 s 0x1000 e 0x40000 p 0x500000 d rootfs o jffs2.img 說明 頁大小0x1000 4k 塊大小0x40000 256k jffs2分割槽總空間0x500...