1. 程式人生 > >使用YAFFS2作為根檔案系統

使用YAFFS2作為根檔案系統

在我們的專案應用中,有較大的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系統。非常方便,速度也更快捷。

  1. 映像打包

使用root許可權。 
./mkyaffs2image ?~/SAM9260/nfsroot/nfsroot-standard/ myroot
其中,
~/SAM9260/nfsroot/nfsroot-standard/是將要打包的yaffs目錄 
Myroot 是打包以後的映像檔案 
2,uboot燒寫
Tftp 22000000 myroot
需要先擦除flash。
Nand erase 3c00000 size
nand write.yaffs 22000000 3c00000 e718c0(最後的是大小,需要使用下載後的位元組,包含oob)
其中,
22000000是映像包下載後的地址 
3c00000是nand分割槽的起始地址 
e718c0這個是映像包的大小

三 修改

  1. 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

  1. uboot修改

具體見《uboot.doc》

相關推薦

使用YAFFS2作為檔案系統

在我們的專案應用中,有較大的NAND FLASH,而RAM資源比較緊張。因此考慮使用NAND FLASH做為根檔案系統,而不採用常見的ramdisk作為rootfs。 使用yaffs2作為根檔案系統,需要注意兩點: 一 核心啟動引數 使用yaffs作為rootfs時,需要

使用ubifs作為檔案系統的openwrt如何在進行sysupgrade時儲存舊的配置

1.openwrt的預設方案(squashfs + jffs2) sysupgrade指令碼直接呼叫default_do_upgrade更新裝置樹、核心、根檔案系統,那麼它是如何儲存舊配置的呢?請看default_do_upgrade(定義在package/base-files/files/lib/upgr

NFS作為檔案系統,掛載超時

NFS伺服器配置正確後,使用ramfs,通過mount能夠正常掛載NFS,但是作為ROOTFS無法正常掛載,顯示超時。   經檢視log,RPC報錯-120。   分析結果: 在Ubuntu1804上,nfsserver支援v3,v4,在UBuntu1304上,nfsserver

Xilinx Linux 設定sd卡作為檔案系統

問題:現在用的板子是從sd卡啟動linux,sd卡中有一個檔案是根檔案系統。根檔案系統掛載後佔用的是記憶體空間,每次重啟後,之前在根檔案系統中的修改不會儲存(記憶體是RAM,掉電修改就丟失了),如果想

JZ2440設定從開發板啟動或使用NFS作為檔案系統啟動

進入u-boot介面,選擇q退出主介面,進入 OpenJTAG>  1、從開發板根檔案系統正常啟動:    OpenJTAG> set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console

使用nfs作為檔案系統啟動遇到的問題

在通過 flash 上的根檔案系統啟動後,手工 mount  NFS是沒有問題的,但是直接使用NFS作為根檔案系統啟動時會遇到問題,初次的問題是提示伺服器無響應,即 server  ******  n

JZ2440:yaffs2 格式檔案系統製作

YAFFS目前有yaffs、yaffs2兩個版本,一般來說,yaffs對小頁(512B+16B/頁)的NandFlash(68M)有很好的支援,yaffs2對大頁(2K+64B/頁)的NandFlash(128M、256M或者更大)支援更好。 我的 nandflash

#嵌入式Linux最小系統移植# yaffs2檔案系統移植出錯記錄

busybox官網地址: 本次移植採用的busybox版本: busybox-1.26.0.tar.bz2 交叉編譯工具鏈版本: $ arm-linux-gcc -v gcc version 4.4.3 (ctng-1.6.1) 1

移植u-boot-2011.03到S3C2440(utu2440)的方法與步驟###8. u-boot引導啟動nand flash中核心和檔案系統cramfs和使用者檔案系統yaffs2支援

rivers/rtc/hctosys.c: unable to open rtc device (rtc0)uncorrectable error : <3>uncorrectable error : <3>end_request: I/O error, dev mtdblock2, 

一步一步製作yaffs/yaffs2檔案系統(四)---構建etc、dev等剩餘目錄

                            開發環境:Ubuntu 12.04                             開發板:mini2440  256M NandFlash   64M SDRAM                      

一步一步製作yaffs/yaffs2檔案系統--生成yaffs/yaffs2映象檔案及下載到開發板

  開發環境:Ubuntu 12.04                             開發板:mini2440  256M NandFlash   64M SDRAM                              交叉編譯器:arm-linux-

製作yaffs2檔案系統

現在大部分開發板都可以支援yaffs2 檔案系統,它是專門針對嵌入式裝置,特別是使用nand flash作為儲存器的嵌入式裝置而建立的一種檔案系統,早先的yaffs僅支援小頁(512byte/page)的nand flash,使用 yaffs2 就可以支援大頁的 nand

一步一步製作yaffs/yaffs2檔案系統(一)

                          開發環境:Ubuntu 12.04                             開發板:mini2440  256M NandFlash   64M SDRAM                      

debian9安裝busybox,並製作檔案系統(2)

3,製作根檔案系統 在上文debian9安裝busybox,並製作根檔案系統(1)中輸入make install命令進行安裝,busybox會自動將rootfs根檔案系統安裝到之前設定的目錄下,之前我設定的是/home/guoyanzhang/rootfs,進入之後, ##ls -l drw

debian9安裝busybox,並製作檔案系統(1)

1,構建根檔案目錄 ##mkdir rootfs ##mkdir root home bin sbin etc dev usr lib tmp mnt sys proc ##mkdir usr/lib usr/bin 2,安裝busybox 2.1,下載busybox安裝包,https

掛載檔案系統的實操

宿主機的NFS配置,不詳細描述; 1. 檔案系統的許可權 ,進入根目錄     #chmod -R 777 *    #chown -R nobody 2. 防火牆關閉 # service iptables stop 3.

Linux檔案系統介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

檔案系統

目錄 根檔案系統 檔案系統概念 啟動流程 根檔案系統 ramdisk啟動 flash啟動 initramfs initrd 雞生蛋蛋生雞 參考連結 title: 根檔案

檔案系統及Busybox詳解之一

轉自 https://blog.csdn.net/chenlong12580/article/details/8761108   目錄 1.根檔案系統簡介...2 2.Busybox簡介...2 2.1Busybox簡介...2 2.2Busybox目錄結

Linux檔案系統製作與各種掛載方式的實現

Linux根檔案系統的製作 什麼是檔案系統 計算機的檔案系統是一種儲存和組織計算機資料的方法,它使得對其訪問和查詢變得容易,檔案系統使用檔案和樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理裝置使用資料塊的概念,使用者使用檔案系統來儲存資料不必關心資料實際儲存在硬碟(或者光碟)的地址為多少的資料