为了更好的理解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-
分享到:
相关推荐
ubifs文件系统的制作详解 错误讲解 分析 ubi在uboot 内核文件中的支持
UBIFS文件系统简析,从MTD层、UBI层、UBIFS层及与VFS层接口等方面详细介绍了UBIFS文件系统的实现原理和核心源码,原创文章近300页,供大家交流探讨
对嵌入式Linux操作系统中的UBIFS文件系统备份方法.docx
项目需要制作ubifs的文件系统,找了一些资料,发现就这篇文章讲的还算明白,不敢独享
中文版。 UBIFS, Unsorted Block Image File System,...它是用于固态硬盘存储设备上,并与LogFS相互竞争,作为JFFS2的后继文件系统之一。真正开始开发于2007年,并于2008年10月第一次加入稳定版本于Linux核心2.6.27版。
Ubifs文件系统的制作和启动,关于Davinci系列相机支持
自己试验过的ubi文件系统制作过程,能够稳定运行
想了解一下UBIFS,看了CSDN的一个名为“UBIFS文件系统详解“的资源,竟要50积分,而内容不过是一篇名为A Brief Introduction to the Design of UBIFS的英文文章,而该文章只需要用google搜索一下就可以免费下载,...
Linux下的flash文件系统的性能比较,jffs2,yaffs2,ubifs
➢ Runs on top of MTD(MTD(Memory Technology Device)是flash在Linux系统的一种 软件架构); ➢ A sub system that provides consecutive logical eraseblocks (逻辑块)which are mapped to physical ...
ubifs是imx283文件系统移植所需要的配置文件,请有需要的朋友自行下载,没有积分的朋友请联系博主。
UBIFS,filesystem,rootfs,google搜集
介绍UBIFS构成、原理等……相当详细,想研究flash文件系统最好看下!因为很多思想在所有flash文件系统都差不多!
制作ubifs文件系统 7 android编译系统makefile(Android.mk)写法 10 Android系统移植(一)-让android系统在目标平台上运行起来 18 Android系统移植(二)-按键移植 20 Android系统移植(三)-按键字符表 25 android启动...
YAFFS等皆无法再去控制Nand Flash的空间,于是在2006年由IBM与Nokia的工程师设计开发了UBI(Unsorted Block Image)及其UBIFS文件系统,专门为了解决MTD(Memory Technology Device)设备所遇到的瓶颈。...
本文档适合嵌入式初学者练习制作linux系统上的最小根文件系统。 rootfs的制作 1 1) 创建dev/ sys/ etc/ root/ home/ proc/ tmp/等文件夹 2 2) 创建设备文件 2 3) 设置init启动配置信息。 3 1) 配置profile文件...
1.inittab表action说明; 2.嵌入式相关文件系统:autofs、cramfs、squashfs、JFFS2、YAFF2、ubifs、ramdisk、ramfs、tmpfs、procfs、sysfs; 3.windows文件系统:fat、FAT32、NTFS、EXT3、EXT4;
制作ubifs文件系统必须安装的工具之一
ubifs 的相关工具制作和使用,已经验证完全能够在atmel91sam9g45平台运行起来。
本工具用于linux根文件系统镜像文件的制作,压缩包里有使用说明。 下面是工具说明: mkcramfs 制作cramfs镜像的工具 mkimage 制作jffs2镜像的工具 mkyaffs2image 制作2.6的yaffs2的镜像工具(针对Nand Flash是128MB到...