在我們的專案應用中,有較大的nand flash,而ram資源比較緊張。因此考慮使用nand flash做為根檔案系統,而不採用常見的ramdisk作為rootfs。
使用yaffs2作為根檔案系統,需要注意兩點:
使用yaffs作為rootfs時,需要uboot提供如下啟動引數給核心:
setenv bootargs mem=64m console=ttys0,115200 root=/dev/mtdblock1 rootfstype=yaffs2 rw
1,首先nfs方式啟動linux。
2,進入開發板linux shell裡。
3,擦除mtd1。
eraseall /dev/mtd1
4,把nfs.tar.gz拷貝到/home/radionfs根目錄下。
5,掛載mtdblock1。
mount –t yaffs2 /dev/mtdblock1 /mnt
6,解壓根檔案系統到mnt也就是寫到mtdblock1.
cd /mnt
tar xvzf /nfs.tar.gz
7,解除安裝mtd1
umount /mnt
這樣,我們的根檔案系統就固化到nand裡面了。
注:這樣方式需要啟動虛擬機器,進入開發板linux之後才能操作,很不方便。同時在生產階段效率很低。不推薦使用。
yaffs2提供了乙個mkyaffs2image的使用工具,可以直接把我們的根檔案系統打包生成乙個yaffs2的映象,然後使用uboot燒入到nand flash中即可。這種方法不需要啟動虛擬機器和目標板上的linux系統。非常方便,速度也更快捷。
映像打包
yaffs2/utils/mkyaffs2image.c
160行,增加
char oobdata[sparesize];
188行,增加
//return write(outfile,&pt,sparesize);
memset(oobdata,0xff,sparesize);
memcpy(&(oobdata[2]),&pt,sizeof(yaffs_packedtags2));
??? return write(outfile,oobdata,sparesize);
#make
在當前目錄下生成 mkyaffs2image
uboot修改
具體見《uboot.doc》
製作yaffs2檔案系統
由於核心裡沒有yaffs2檔案系統生成功能,所以需要新增補丁。1.fsmakefile.path in fs yaffs2.tgz is the patch for kernel fs makefile 在 kernel fs makefile中新增如下內容 root localhost fs ya...
Yaffs2檔案系統的製作
yaffs2檔案系統的製作網上方法很多,這裡就不在贅述了。主要就是這樣幾步吧。然後,make menuconfig 新增你所需要的選項。busybox就像是乙個工具集,通過它來編譯出我們在linux下面所使用的命令,一些命令工具鏈。然後就是make make install 在 install 目錄...
製作yaffs2檔案系統簡程
平台 ubuntu 目標 jz2440 工具 arm linux gcc 3.4.5 busybox 1.7.0 1.在ubuntu上建立根檔案系統的存放目錄,這裡為 work myfs 命令 mkdir work myfs 2.安裝busybox a.解壓busybox 1.7.0.tar.bz2...