作者 :longfeey
1.1 Uboot UBI的移植
关于uboot的UBI的移植几乎没有说明介绍,移植首先要保证你的flash驱动能够跑起来,我是在nand flash 上跑的UBI。刚开始的时候我也没有什么头绪,只能够从uboot的readme开始查找一些蛛丝马迹。
- MTD Support (mtdparts command, UBI support)
CONFIG_MTD_DEVICE
Adds the MTD device infrastructure from the Linux kernel.
Needed for mtdparts command support.
CONFIG_MTD_PARTITIONS
Adds the MTD partitioning infrastructure from the Linux
kernel. Needed for UBI support.
因此,要UBI支持首先得要MTD支持,因此在配置文件中要添加以上两项的定义。
要移植UBI还要添加:
#define CONFIG_CMD_UBIFS
#define CONFIG_CMD_UBI
总的关于UBI的部分是以下几个宏:
#define CONFIG_CMD_UBI
#define CONFIG_CMD_UBIFS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_RBTREE
#define CONFIG_LZO
同时要给NAND建立个默认的分区,方便以后操作。分区如下:
#define MTDIDS_DEFAULT "nand0=nand0"
#define MTDPARTS_DEFAULT "mtdparts=nand0:0x100000@0x0(u-boot),0x300000@0x120000(kernel),0x7b00000@0x420000(rootfs),-(reserved)"
#define MTD_ACTIVE_PART "nand0,2"
以上的配置都在uboot_imx/include/configs/mx51_vdphone.h文件中进行配置。
需要注意的是增加UBI的支持之后uboot会增大到300多KB,在NAND中启动,需要修改