ubifs檔案系統的製作過程&&遇到的問題及解決方案總結—之一“uboot中添加對UBIFS檔案系統的支援”

來源:互聯網
上載者:User

為了更好的理解ubifs根檔案系統的製作,首先,我們簡單的說一下,系統的組成:

Bootloader(uboot) parames(啟動參數) kernel(核心)

root Filesystem

(根檔案系統)

bootloader(uboot)的作用就是用來載入作業系統;而嵌入式linux系統由linux核心和根檔案系統兩部分構成,兩者缺一不可。

 所以我們要製作一個UBIFS的根檔案系統,首先必須讓上面系統組成的幾個部分都支援UBIFS檔案系統,就得在這幾個組成部分添加一些“東西”(支援UBI的配置):

(打個我自己理解的比喻吧:“娶媳婦”比作--啟動系統,娶媳婦是不是要經過老爸、老媽、丈母娘、嶽父的同意和支援?bootloader、parames、kernel、root
Filesystem便是老爸、老媽、丈母娘、嶽父...O(∩_∩)O~,而你叫"UBI")

 這篇博文主要是詳細解析:uboot中添加對UBIFS檔案系統的支援

一、移植環境

§主機:vmware-redhat5     

§開發板:mini2440--256MB nandflash

§kernel:2.6.29     編譯器:arm-linux-gcc-4.3.2.tgz    

§uboot: u-boot-2008.10

二.移植步驟

本次移植的功能為:支援UBIFS檔案系統

1.在include/configs/mini2440.h中添加如下配置: (注意:不同的開發板在include/configs/目錄下對應的修改的設定檔不同,我的開發板是mini2440所以修改的是mini2440.h)

#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_LZO
#define CONFIG_RBTREE

#define CONFIG_CMD_UBIFS  //要支援ubIfs首先得讓uboot支援UBIFS的燒寫命令
#define CONFIG_CMD_UBI      //uboo支援的ubifs燒寫命令:1.mtdparts:  用來給NAND分區;

/*2.nand erase.part:用來擦除指定分區  等這些命令 在“UBIFS鏡像的製作&&燒寫”博文理解*/

 

//其次要支援MTD(memory
technology device記憶體技術裝置)是用於訪問memory裝置(ROM、flash)的Linux的子系統

#define MTDIDS_DEFAULT "nand0=nandflash0" //同時要給nandlflash建立預設的分區,

#define MTDPARTS_DEFAULT "mtdparts=nandflash0:384k(bootloader),"\  //我的分區:
                                                   "128k(params),"\
                                                   "5m(kernel),"\
                                                   "64m(root)"

/*還要修改下面幾個宏,因為使用UBIFS會佔用更多的堆、棧空間*/

#define CONFIG_STACKSIZE (512*1024)
#define CONFIG_SYS_MALLOC_LEN  (CONFIG_ENV_SIZE+1024*1024)
#define CONFIG_SYS_GBL_DATA_SIZE  512

 

2.回到uboot的頂層目錄下

 (可能拿到的uboot已被編譯過,所以最好要用此命令清理中間檔案)    

執行命令:make clean      

 (uboot是通用的bootloader,支援多種開發板,所以編譯之前先選擇使用哪種board)

執行命令:make mini2440_config   

 注意:我用的是mini2440開發板,所以要編譯這個開發板使用的uboot,所以這裡的目標為mini2440_config,表示選擇的board是mini2440

(mini2440_config在Makefile標準術語稱為“目標”,可以在uboot頂層Makefile找到該目標)

執行命令(開始編譯uboot) :make CROSS_COMPILE=arm-linux-      

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.