IMX6Q的EMMC分区

转载地址:http://blog.sina.com.cn/s/blog_9864c64a0102xpte.html

公司最近有个项目是用飞思卡尔的IMX6Q的核心板,刚好需要给EMMC重新分区,EMMC分区和其他的NADN或者NOR的分区不太一样。我在uboot和kernel(4.1.5)中没有找到任何给EMMC分区的相关内容。在网上找了一天的资料,都说在内核里面的什么什么对应文件,反正我找了半天没看见。自己摸索了半天,联系到PC的分区方式,转头从飞思卡尔的烧写工具mgftool入手,终于在这里找到突破口。具体的分区方法如下。

 

一、修改mgftool中的分区脚本

 

1、打开mgftool的目录,找到UCL2.XML文件,我这里的路径入下图:

如何给IMX6Q的EMMC分区

2、打开ucl2.xml文件,找到你需要的启动方式的位置,我这里是EMMC-LINUX,然后查看对应的分区脚本名称,我这里的是mksdcard.sh.tar。

如何给IMX6Q的EMMC分区

3、接下来就是修改分区脚本文件了,将mksdcard.sh.tar解压得到mksdcard.sh,然后打开这个脚本,修改里面的内容就行。mksdcard.sh内容如下:

#!/bin/sh

 

# partition size in MB

BOOT_ROM_SIZE=10

 

# wait for the SD/MMC device node ready

while [ ! -e $1 ]

do

sleep 1

echo “wait for $1 appear”

done

 

# call sfdisk to create partition table

# destroy the partition table

node=$1

dd if=/dev/zero of=${node} bs=1024 count=1

 

#这里的0C 表示windows FAT分区  83表示LINUX分区

sfdisk --force ${node} << EOF

${BOOT_ROM_SIZE}M,500M,0c   #这里表示从EMMC的10M位置到500M位置为第一分区,至于前面的10M作用,不太清楚,                                                             估计是存放UBOOT部分,而第一分区在我开发板上存放kernel和dtb的。

600M,,83                        #这里表示的是从600M 以后的所有内存都为第二分区。

EOF

 

如果要添加多个分区的话,只需按下面分配规则即可,我这里的EMMC是8GB的,

第一分区存放kernel和dtb,

第二分区存放文件系统,

第三分区为设备运行数据存储区,

 

sfdisk --force ${node} << EOF

 

${BOOT_ROM_SIZE}M,500M,0c   这里分配了490M      --kernel 、dtb

600M, 6744M,83           这里分配6G              -- rootfs

6744M,,83              这里分配的是6G之后的所有内存 -- appdata

 

 

EOF

这里只分配了3个分区,如要分配更多分区,只需按照 {始地址,结束地址,分区类型}的格式添加即可。注意添加M,不然分配的内存就不对了。

4、修改完成后,将mksdcard.sh文件(注意这里是文件,不是文件夹,还有注意是在LINUX系统下打包为*.tar)打包为mksdcard.sh.tar并替换当前目录下的mksdcard.sh.tar压缩包文件。

 

二、重新烧写系统

完成上面第一步后,使用mgftool重新烧写系统。过程我就不说了~~

三、查看分区

烧写完成后,重新启动开发板,在系统启动过程中就可以看到打印的分区信息了,我这里没有开发板,就不上图了~~。我这里是有df指令是看不到新分配的分区的。系统启动完成后,到系统的/proc下查看分区信息,或者在dev目录下可以看到mmcblk*p*类似的设备。就表示分区完成了。

 

注意如果,修改分区的时候,更改了kernel、dtb或者文件系统的分区,注意修改uboot的环境变量,否则系统就会出现找不到kernel、dtb或者无法挂载文件系统的问题了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值