您的位置:首页 > 其它

ubifs文件系统的制作过程&&遇到的问题及解决方案总结---之一“uboot中添加对UBIFS文件系统的支持”

2012-04-18 21:34 741 查看
为了更好的理解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-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐