- 原子升级
- 回滚能力
- 高效的基于增量的更新
使用 capsule 和 OSTree 仓库升级设备
要将运行 Qualcomm Linux 1.0 的设备升级到 Qualcomm Linux 2.0,请使用以下方式:- 通过 capsule 对引导固件进行 OTA 升级
- 对 Linux 使用 OSTree 仓库
分区操作限制
OTA 升级不支持以下操作,因为它们会使设备在现场易发生崩溃:
- 重新分区以调整任何分区的大小,即不能增大或减小分区大小
- 更改分区标签
- 更改分区 GUID
- 更改分区的属性标志
- 将分区从 LUN-X 移动到 LUN-Y
- 从任何逻辑单元号(LUN)中删除分区
非 Linux 分区的引导固件分区大小注意事项
对于任何运行 Qualcomm Linux 1.0 的设备,引导固件 LUN 具有专用于 XBL、TZ、UEFI 和 DTB 等镜像的分区。分区大小在使用 Qualcomm Linux 1.0 配置设备时定义。 这些分区可能有一些未使用的空间。例如,QCS6490 中的未使用空间如下:- UEFI 为 700 KB
- TZ 为 25 KB
- DTB 为 60 MB
EFI 的 Linux 镜像分区注意事项
在 Qualcomm Linux 1.0 中,EFI 分区 GUID 和分区标签已经是标准的:分别为C12A7328-F81F-11D2-BA4B-00A0C93EC93B 和 EFI。因此,您可以通过 OTA 从 Qualcomm Linux 1.0 升级到 Qualcomm Linux 2.0,并且 EFI 分区会按预期挂载。系统将此分区挂载到 /boot 挂载点。
注意
标签和 GUID 不能通过 OTA 更改。
Rootfs 的 Linux 镜像分区注意事项
对于启用 OSTree 的构建,根文件系统使用OTAROOT 标签进行搜索,这在 Qualcomm Linux 1.0 中是标准的。因此,使用 OSTree 从 Qualcomm Linux 1.0 OTA 升级到 Qualcomm Linux 2.0 时,rootfs 挂载按预期工作。
进行升级的 Qualcomm Linux 1.0 设备无法将分区标签(分区名称)更改为 rootfs。使用 gdisk 或 sgdisk 等工具检查时,分区标签仍显示为 system。
注意
Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 的 rootfs 分区使用的标准 GUID 为 B921B045-1DF0-41C3-AF44-4C6F280D3FAE。
Persist 分区注意事项
在 Qualcomm Linux 1.0 中,persist 分区位于 LUN0 上。将设备从 Qualcomm Linux 1.0 更新到主线时,无法将 persist 分区从 Linux 镜像的 LUN0 移动到引导固件的 LUN4。
从 Qualcomm Linux 1.0 到 Qualcomm Linux 2.0 的 OTA 升级后,systemd 单元使用分区标签将 persist 分区挂载到 /var/lib/tee。
用户空间对分区标签的引用
如果您的用户空间实用程序或库在 Qualcomm Linux 1.0 中引用根分区标签system,则必须将它们更新为使用引导规范 GUID 或 findmnt 来发现 root 分区。此更改可在升级到 Qualcomm Linux 2.0 时保持兼容性。
注意
库必须使用基于 GUID 的引用方法,才能可靠地找到 rootfs 分区。
镜像注意事项
Qualcomm Linux 1.0 设备可能运行以下镜像变体之一:Qualcomm Linux 2.0 中对应的镜像如下:
- Base 变体,即使用
qcom-base-bsp和qcom-base-distrooverrides 构建的qcom-multimedia-image- Custom 变体,即使用
qcom-custom-bsp和qcom-custom-distrooverrides 构建的qcom-multimedia-image
- Qualcomm Linux 1.0 中使用
qcom-base-bsp和qcom-base-distrooverrides 构建的qcom-multimedia-image镜像对应于 Qualcomm Linux 2.0 中的qcom-multimedia-image。- Qualcomm Linux 1.0 中使用
qcom-custom-bsp和qcom-custom-distrooverrides 构建的qcom-multimedia-image镜像对应于 Qualcomm Linux 2.0 中的qcom-multimedia-proprietary-image。
在运行 Qualcomm Linux 1.0 镜像的设备上部署 Qualcomm Linux 2.0 镜像
Qualcomm Linux 2.0 开发完成后,根据您的产品需求,在 Config #1 到 Config #4 之间选择一个镜像。 以下两种配置的镜像已作为配方预先定义在meta-qcom-distro 中:
- Config #1:
qcom-multimedia-image - Config #2:
qcom-multimedia-proprietary-image
DISTRO_FEATURE sota,以便在镜像中启用 OSTree 框架。
带有 OSTree 和 capsule 的 OTA 处理以下分区:
- EFI:OSTree
- ROOTFS:OSTree
- 引导固件:Capsule
OTA 更新命令注意事项
Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 之间的 OTA 更新步骤类似。有关说明,请参阅 Qualcomm Linux Yocto 指南。 在 Qualcomm Linux 2.0 中,您无需执行以下 OTA 更新步骤。此命令仅在 Qualcomm Linux 1.0 中受支持。在 Qualcomm Linux 2.0 中跳过该步骤,因为在运行以下步骤时,EFI 变量已存储在 EFI 分区中:
- 在设备上运行
uefi_sec应用,将efivars保存到重放保护内存块(RPMB):

