赞
踩
1)实验平台:正点原子ATK-DLRK3568开发板
2)平台购买地址:https://detail.tmall.com/item.htm?id=731866264428
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban
6.5 oem和userdata
oem.img包含了厂家的APP或数据,该镜像会烧录到开发板的oem分区,系统启动之后会被挂载到根文件系统/oem目录。userdata.img包含了最终用户的APP或数据,该镜像会烧录到开发板的userdata分区,系统启动之后会被挂载到根文件系统/userdata目录。
编译Linux SDK后(需执行“./build.sh firmware”或“./mkfirmware.sh”),会在rockdev/目录下生成oem.img以及userdata.img,使用file命令查看这两个镜像,如下所示:
由此可知,这两个镜像均是ext2格式文件系统镜像(分别由SDK板级配置文件中的RK_USERDATA_FS_TYPE和RK_OEM_FS_TYPE变量决定),可以直接使用mount命令将其挂载到Ubuntu系统进行查看。
这两个镜像均是由mkfirmware.sh脚本制作而成(该脚本最终会调用device/rockchip/common/mk-image.sh脚本,详细过程请阅读mk-image.sh脚本内容)。oem.img和userdata.img的大小通常是自动的,无需配置;如有特殊需求,也可在SDK板级配置文件中定义RK_OEM_PARTITION_SIZE或RK_USERDATA_PARTITION_SIZE变量手动指定镜像大小,未定义这些变量则表示由脚本自动确定大小。
6.5 oem和userdata
oem.img包含了厂家的APP或数据,该镜像会烧录到开发板的oem分区,系统启动之后会被挂载到根文件系统/oem目录。userdata.img包含了最终用户的APP或数据,该镜像会烧录到开发板的userdata分区,系统启动之后会被挂载到根文件系统/userdata目录。
编译Linux SDK后(需执行“./build.sh firmware”或“./mkfirmware.sh”),会在rockdev/目录下生成oem.img以及userdata.img,使用file命令查看这两个镜像,如下所示:
由此可知,这两个镜像均是ext2格式文件系统镜像(分别由SDK板级配置文件中的RK_USERDATA_FS_TYPE和RK_OEM_FS_TYPE变量决定),可以直接使用mount命令将其挂载到Ubuntu系统进行查看。
这两个镜像均是由mkfirmware.sh脚本制作而成(该脚本最终会调用device/rockchip/common/mk-image.sh脚本,详细过程请阅读mk-image.sh脚本内容)。oem.img和userdata.img的大小通常是自动的,无需配置;如有特殊需求,也可在SDK板级配置文件中定义RK_OEM_PARTITION_SIZE或RK_USERDATA_PARTITION_SIZE变量手动指定镜像大小,未定义这些变量则表示由脚本自动确定大小。
oem.img由device/rockchip/oem/oem_xxx(由板级配置文件中的RK_OEM_DIR决定)目录创建而成;userdata.img由device/rockchip/userdata/userdata_xxx(由板级配置文件中的RK_USERDATA_DIR决定)目录创建而成;如下所示:
由此可见,oem.img镜像的内容就是device/rockchip/oem/oem_normal目录下的内容;userdata.img镜像的内容就是device/rockchip/userdata/userdata_normal目录下的内容。
如果oem_normal或userdata_normal目录下的内容发生了更改,则需重新打包生成oem.img或userdata.img;先删除rockdev目录下的oem.img和userdata.img,然后再次执行./mkfirmware.sh脚本创建即可。
oem.img由device/rockchip/oem/oem_xxx(由板级配置文件中的RK_OEM_DIR决定)目录创建而成;userdata.img由device/rockchip/userdata/userdata_xxx(由板级配置文件中的RK_USERDATA_DIR决定)目录创建而成;如下所示:
由此可见,oem.img镜像的内容就是device/rockchip/oem/oem_normal目录下的内容;userdata.img镜像的内容就是device/rockchip/userdata/userdata_normal目录下的内容。
如果oem_normal或userdata_normal目录下的内容发生了更改,则需重新打包生成oem.img或userdata.img;先删除rockdev目录下的oem.img和userdata.img,然后再次执行./mkfirmware.sh脚本创建即可。
6.6 parameter.txt分区表文件
parameter.txt是RK平台的分区表文件,是一个TXT文本文件。烧写镜像时,并不需要将parameter.txt文件烧录到Flash器件(譬如eMMC),但是会读取它的信息来定义存储器的物理分区,各分区的分区名、分区的起始地址以及分区大小均由parameter.txt文件定义。
SDK板级配置文件中(device/rockchip/rk356x/BoardConfig-rk3568-atk-evb1-ddr4-v10.mk)定义了ATK-DLRK3568 Linux系统所使用的分区表文件,由RK_PARAMETER变量决定,如下所示:
该变量指向的文件便是device/rockchip/rk356x/parameter-buildroot-fit.txt。所以编译Linux SDK后,rockdev/目录下生成的parameter.txt分区表文件其实就是由该文件(parameter-buildroot-fit.txt)copy过去的。
6.7 misc.img镜像
misc.img镜像会烧录到开发板misc分区。
misc分区的概念来源于Android系统,在Android系统中,misc分区是一个很重要的分区,其主要用于Android系统和BootLoader之间的通信,misc分区中包含了BCB(BootLoader Control Block)数据块,BCB是Android控制系统启动流程而设计的一种和BootLoader交互的机制。
BCB数据结构如下图所示:
command:启动命令,目前支持以下三个:
recovery:为进入recovery模式的附带命令,开头为”recovery\n”,后面可以带多个参数,以”–”开头,以”\n”结尾,例如” recovery\n–wipe_ab\n–wipe_package_size=345\n–reason=wipePackage\n”:
Linux系统中常用来作为系统升级时或者恢复出厂设置时使用。U-Boot阶段会读取misc分区中的BCB数据,根据BCB数据中的command命令内容决定是进入正常系统还是recovery模式(command为boot-recovery,则进入recovery模式;command为空,则进入正常系统)。
设备进入recovery模式,会读取misc分区中recovery部分的内容,从而执行不同的动作,或升级分区固件,或擦除用户分区数据,或其它操作等等。
misc.img镜像都是预编译好的,RK提供了多个misc.img镜像供用户选择,这些镜像存放在device/rockchip/rockimg/目录下,如下所示:
这些misc.img镜像中,常用的是blank-misc.img和wipe_all-misc.img,另外几个不常用。它们之间的区别就在于BCB数据块中command以及recovery标识不同,我们可以使用winhex或ultraEdit等工具,以二进制形式打开misc.img镜像文件,找到BCB数据块所在位置(偏移16KB位置,0x4000),如下所示:
图1 pcba_small_misc.img镜像
图2 wipe_all-misc.img镜像
图3 blank-misc.img镜像
关于这些标识,上文已有介绍(对比BCB数据结构)。
当前使用的misc.img镜像由SDK板级配置文件中(device/rockchip/rk356x/BoardConfig-rk3568-atk-evb1-ddr4-v10.mk)的RK_MISC变量决定,如下所示:
该变量指定的文件便是rockimg目录下的blank-misc.img。所以编译Linux SDK后,rockdev/目录下生成的misc.img镜像其实就是由该文件(blank-misc.img)copy过去的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。