cramfs+yaffs嵌入式平臺的實現

cramfs+yaffs嵌入式平臺的實現
首先我們要將我們的某個分區格式化成yaffs格式。
製作格式化工具過程如下:
mtd-utils編譯
1、編譯libz:

首先安裝 zlib 庫,這個是後面的庫的編譯基礎。
http://www.zlib.net/zlib-1.2.3.tar.gz 

解壓
tar zxf zlib-1.2.3.tar.gz

由於 zlib 庫的configure 腳本不支持交叉編譯選項,可以採用以下方法來解決:

1)CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=/*你的安裝目錄*/ --shared  
注意:這裏配置指向 --prefix=/*你的安裝目錄*/,會自動安裝在 --prefix=/*你的安裝目錄*/ [include,lib] 目錄下,
千萬不要裝錯目錄了,不然後面會找不到這個庫的。
2)make
3)make install

安裝完後檢查一下目錄 --prefix=/*你的安裝目錄*/[include,lib] ,假如 include 中沒有 zlib.h 之類的頭文件,lib 中沒有 libz.so.1.2.3 ,那就自己手動拷到這些目錄下去,記着拷的時候把所有的 *.h  都需要拷過去,在拷庫的時候用 cp –a libz.* /…./lib  就行,要用上 –a 選項

2、編譯mtd-utils:
下載mtd-utils-1.0.0.tar.gz:
ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.gz
解壓目錄爲mtd-utils-1.0.0
#cd mtd-utils-1.0.0

1) 修改Makefile
CROSS=arm-softfloat-linux-gnu-

2) make ( 用file命令查看,如 file mkfs.jffs2 )
#file mkfs.jffs2
mkfs.jffs2: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
可知:交叉編譯成功。
因爲格式化flash分區是在板子上運行的,所以要交叉編譯,這個概念一定要分清楚。

編譯好後將生成的flash_eraseall工具拷貝你的文件系統下的usr/bin下
flash_eraseall /dev/mtd/x
擦除乾淨後再
mount -t yaffs /dev/mtdblock/x /mnt
即可掛上了yaffs分區,解釋一下什麼是/dev/mtd/x和/dev/mtdblock/x
/dev/mtd/x  是字符設備   mtd設備的主設備號爲90,至於次設備號:單數爲只讀,雙數爲讀寫。《構建嵌入式LINUX系統》一書有介紹,可以參考一下
/dev/mtdblock/x 是塊設備  

最後在linuxrc下添加一句話就可以實現分區的自動掛載了
/bin/mount -t yaffs /dev/mtdblock2 /mnt/yaffs

部署文件系統到開發板上
我的分區信息
 
dev:    size   erasesize  name
mtd0: 00100000 00004000 "bootloader"  //1M
mtd1: 00400000 00004000 "linux-kernel"  //4M
mtd2: 02000000 00004000 "cramfs-partition" //32M 
mtd3: 01b00000 00004000 "yaffs-partition" //27M
flash燒寫命令和分區設置要和內核設置是一樣的
燒寫內核
tftp 30008000 zImage
nand erase 100000 400000
nand write 30008000 100000 400000
燒寫cramfs文件系統
tftp 30008000 rootfs.cramfs
nand erase 500000 2000000
nand write 30008000 500000 2000000
啓動參數設置
setenv bootargs root=1f02 console=ttySAC0,115200 init=/linuxrc devfs=mount display=sam240
setenv bootcmd nand read 30008000 100000 400000 /; go 30008000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章