用mkfs.jffs2 命令制作jffs2镜像文件 (转)
生活随笔
收集整理的這篇文章主要介紹了
用mkfs.jffs2 命令制作jffs2镜像文件 (转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下載:
ftp://sources.redhat.com/pub/jffs2/mkfs.jffs2或者使用命令: apt-get install mtd-utils 命令使用實例: mkfs.jffs2? -s 0x1000 -e 0x40000 -p 0x500000 -d? rootfs/ -o? jffs2.img 說明: 頁大小0x1000?? 4k
塊大小0x40000? 256k
jffs2分區總空間0x500000即5M
當然生成的jffs2.img并沒有一下子分配5M,還是實際大小0xc0000 mkfs.jffs2使用方法 選項含義(man a mkfs.jffs2) mkfs.jffs2: Usage: mkfs.jffs2 [OPTIONS]
Make a JFFS2 file system image from an existing directory tree
Options:
-p, --pad[=SIZE]???????用16進制來表示所要輸出檔案的大小,也就是root.jffs2的size。
?????????????????????????????????????? 很重要的是, 為了不浪費flash空間, 這個值最好符合flash driver所規劃的區塊大小。
?????????????????????????????????????? 如果不足則使用0xff來填充補滿。?
-r, -d, --root=DIR????? 指定要做成image的源資料夾.(默認:當前文件夾)
-s, --pagesize=SIZE???? 節點頁大小(默認: 4KiB)
-e, --eraseblock=SIZE?? 設定擦除塊的大小為(默認: 64KiB)
-c, --cleanmarker=SIZE Size of cleanmarker (default 12)
-m, --compr-mode=MODE?? Select compression mode (default: priortiry)
-x, --disable-compressor=COMPRESSOR_NAME
????????????????????????? Disable a compressor
-X, --enable-compressor=COMPRESSOR_NAME
????????????????????????? Enable a compressor
-y, --compressor-priority=PRIORITY:COMPRESSOR_NAME
????????????????????????? Set the priority of a compressor
-L, --list-compressors Show the list of the avaiable compressors
-t, --test-compression Call decompress and compare with the original (for test)
-n, --no-cleanmarkers?? 指明不添加清楚標記(nand flash 有自己的校檢塊,存放相關的信息。)
????????????????????????? 如果掛載后會出現類似:
????????????????????????? CLEANMARKER node found at 0x0042c000 has totlen 0xc != normal 0x0
????????????????????????? 的警告,則加上-n 就會消失。
-o, --output=FILE?????? 指定輸出image檔案的文件名.(default: stdout)
-l, --little-endian???? 指定使用小端格式
-b, --big-endian??????? 指定使用大端格式
-D, --devtable=FILE???? Use the named FILE as a device table file
-f, --faketime????????? Change all file times to '0' for regression testing
-q, --squash??????????? Squash permissions and owners making all files be owned by root
-U, --squash-uids?????? 將所有文件的擁有者設為root用戶
-P, --squash-perms????? Squash permissions on all files
????? --with-xattr??????? stuff all xattr entries into image
????? --with-selinux????? stuff only SELinux Labels into jffs2 image
????? --with-posix-acl??? stuff only POSIX ACL entries into jffs2 image
-h, --help????????????? 顯示這些文字
-v, --verbose?????????? Verbose operation
-V, --version?????????? 顯示版本
-i, --incremental=FILE Parse FILE and generate appendage output for it
生成的rootfs.img可通過u-boot直接燒寫至nand flash:
????????????? nand erase 0x200000 0x3e00000//擦寫
????????????? tftp 0x30000000 rootfs.img//下載
????????????? nand write.jffs2 0x200000 $(filesize)//燒入
(二) 在linux的PC上掛載jffs2根文件系統映像
因為jffs2是構建于MTD設備上的文件系統,所以無法通過loop設備來掛載,但是可以通過mtdram設備來掛載。mtdram是在用RAM實現的MTD設備,可以通過mtdblock設備來訪問。使用mtdram設備很簡單,只要加載mtdram和mtdblock兩個內核模塊即可。這兩個內核模塊一般的linux內核發行版都有編譯好的,直接用modprobe命令加載。 下面是具體步驟: (1).加載mtdblock內核模塊 modprobe mtdblock (2).加載mtdram內核模塊,將該設備的大小指定為jffs2根文件系統映像的大小,塊擦除大小(即flash的塊大小)指定為制作該jffs2根文件系統時“-e”參數指定的大小,缺省為64KB。下面兩個參數的單位都是KB。 modprobe mtdram total_size=5120 erase_size=256
(3).這時將出現MTD設備/dev/mtdblock0,使用dd命令將jffs2根文件系統拷貝到/dev/mtdblock0設備中。 dd if=jffs2.img of=/dev/mtdblock0 (4).將保存了jffs2根文件系統的MTD設備掛載到指定的目錄上。 mount -t jffs2 /dev/mtdblock0 /mnt/mtd
這之后就可以到/mnt/mtd目錄查看、修改掛載的jffs2根文件系統了,修改后的jffs2根文件系統可以通過dd命令拷貝為一個jffs2的映像文件
總結
以上是生活随笔為你收集整理的用mkfs.jffs2 命令制作jffs2镜像文件 (转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用route命令解决Wifi和网卡不能同
- 下一篇: rda8955平台搭建摘要截图