partitions.conf 配置文件定义。这些文件位于 https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms。有关更多信息,请参见:Ptool 工作流图。
您可以修改分区配置文件以添加、删除、修改或重命名分区。例如,要处理 IQ-9075 EVK 的 UFS 分区文件,请使用以下文件:https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms/iq-9075-evk/ufs
通过修改这些配置文件并将其集成到构建中,您可以生成自定义分区布局。当在 Qualcomm Linux 构建中使用来自 https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms 的配置文件时,工作流涵盖了 Ptool 工作流图中的所有步骤。
下表列出了分区工作流中使用的文件和工具:
分区布局文件
通用闪存存储 (UFS) 和嵌入式多媒体卡 (eMMC) 上的分区存储启动链和 Linux 操作系统的各种镜像。配置文件详细说明了为特定 Qualcomm 开发套件配置的分区。以下配置文件定义了 RB3 Gen 2 开发套件的 UFS 分区和 IQ-9075 EVK 的分区:- RB3 Gen 2 开发套件 UFS 分区:https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms/qcs6490-rb3gen2/ufs
- IQ-9075 EVK UFS 分区:https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms/iq-9075-evk/ufs
分区布局文件语法
来自qcs6490-rb3gen2 的 partitions.conf 中的以下示例展示了分区布局文件的语法。
配置文件中的第一个条目定义了磁盘类型、磁盘大小、逻辑块寻址 (LBA) 大小(扇区大小)以及最后一个分区是否应扩展至最后一个可用的 LBA。
- 以下是 UFS 的示例:
- 以下是 eMMC 的示例:
qcs6490-rb3gen2/ufs 文件指定了以下分区示例。LUN0 中定义了几个分区,每一行代表一个单独的分区。
UFS
注意 在以下示例中,LUN1 至 LUN5 条目中通过partitions.conf 的 --filename= 参数提及的文件名,由方案 firmware-qcom-boot-qcs6490.inc 从 Qualcomm software center 下载
- 示例 1:LUN0 中定义了 524288 KB 的
efi分区。efi.bin文件在 BitBake 构建期间生成。
- 示例 2:为 LUN1 定义了 3604 KB 的
xbl_a分区。将xbl.elf文件烧录到该分区。 - 示例 3:为 LUN1 定义了 512 KB 的
xbl_config_a分区。将xbl_config.elf文件烧录到该分区。
- 示例 4:为 LUN4 定义了 512 KB 的
aop_a分区。将aop.mbn文件烧录到该分区。
eMMC
- 示例 1:为 LUN0 定义了 3584 KB 的
xbl_a分区。将 xbl.elf 文件烧录到该分区。 - 示例 2:为 LUN0 定义了 128 KB 的
xbl_config_a分区。将xbl_config.elf文件烧录到该分区。
- 必需选项:
--lun(对于 UFS 是必需的,对于 eMMC 不需要。以数字表示)--name(分区的名称,字符串)--size(分区的大小,通常以 KB 表示)--type-guid(分区的 GUID)
- 可选选项:
--attributes(可选的 64 位属性,例如 1000000000000004)--filename(要烧录到分区的文件名)--readonly(分区是否应为只读,值为 true 或 false)--sparse(分区是否用于稀疏镜像,值为 true 或 false)
Linux 操作系统分区
分区工具 (Ptool)
Ptool 生成一个 GUID 分区表二进制文件,QDL 工具使用该文件对存储进行分区。 下图展示了 Ptool 工作流:
图:Ptool 工作流
build/tmp/deploy/images/rb3gen2-core-kit/qcomflash 目录中。
修改分区
位于 https://github.com/qualcomm-linux/qcom-ptool/tree/main/platforms/qcs6490-rb3gen2/ufs 的partitions.conf 文件定义了 QCS6490 RB3 Gen 2 Core 开发套件的分区。gen_partition.py 工具进行处理并生成 partition.xml,这是 ptool.py 的必需输入。作为最后一步,Ptool 生成 rawprogram.xml、patch.xml、gpt_main*.bin 和 gpt_backup*.bin 文件,QDL 工具需要这些文件将系统镜像烧录到设备。
- 要添加分区,请在特定设备的配置文件
partitions.conf中添加分区条目。 - 运行 BitBake 命令以生成所有必要文件:
- 镜像构建完成后,如果 MACHINE 为
rb3gen2-core-kit且所选的镜像方案为qcom-multimedia-image,请运行以下命令以烧录镜像:
最佳实践
- 许多分区对功能至关重要。在删除或调整分区大小之前,请仔细查看分区布局文档。
- 要反映
partitions.conf中的更改,请更新机器配置中的QCOM_PARTITION_CONF变量。 - 对于 UFS 设备,务必为每个分区条目指定
--lun选项。
后续步骤
- 要使用 Yocto 构建添加、删除或重命名分区,请参见修改分区布局。
- 关于 persist 分区,请参见 Persist 分区。
- 关于存储类型配置,请参见如何为 Yocto BSP 构建配置存储类型。

