原製作檔案系統的Cramfs映象
一、環境
Ubuntu 8.04
U-Boot 1.3.3(支援tftp)
二、過程
1、製作cramfs需要使用mkcramfs工具,首先 安裝mkcramfs工具
$sudo apt-get install cramfsprogs
2、退到已做好的rootfs目錄的上一級
~/rootfs$ cd ..
$mkcramfs rootfs/ rootfs.cramfs
即可生成rootfs.cramfs
3、啟動u-boot,將rootfs.cramfs下載到ram並燒寫到nand flash的某個分割槽上。
nand flash 的分割槽為:
Creating 6 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00030000 : "bootloader"
0x00030000-0x00200000 : "kernel"
0x00200000-0x00400000 : "ramdisk"
0x00400000-0x00800000 : "cramfs"
0x00800000-0x01000000 : "jffs2"
0x01000000-0x04000000 : "data"
我們可以將rootfs.cramfs燒寫到0x400000上,對應的結點為/dev/mtdblock/3。
tftp 32000000 rootfs.cramfs
nand erase 400000 800000
nand write.jffs2 32000000 400000 200000
4、要從cramfs啟動,可將u-boot的啟動引數改為:
root="/dev/mtdblock/3" rootfstype="cramfs" console="ttySAC0",115200 init="/linuxrc" noinitrd mem="64M"
即可。
如果需要在其它檔案系統中掛載該cramfs檔案系統,可以這樣做
#cd /tmp
#mkdir cramfs
#mount -t cramfs /dev/mtdblock/3 cramfs
注意:使用cramfs檔案系統時,對核心進行配置時需要選上對cramfs的支援。
附:
這裡說明下關於nand flash操作的幾個常用命令的含義
nand write:向Nand Flash寫入資料,如果NandFlash相應的區域有壞塊,則直接報錯。
nand write.jffs2:向Nand Flash寫入資料,如果NandFlash相應的區域有壞塊,可以跳過壞塊。
nand read:讀取Nand Flash相應區域的資料,如果NandFlash相應的區域有壞塊,則直接報錯。
nand read.jffs2s:讀取Nand Flash相應區域的資料,如果NandFlash相應的區域有壞塊,將對應壞塊區域的緩衝填充0xff,然後跳過此壞塊繼續讀取。
nand read.jffs2:讀取Nand Flash相應區域的資料,如果NandFlash相應的區域有壞塊,直接跳過壞塊。
本文來自: 高校自動化網(