- 原子升级
- 回滚能力
- 高效的基于增量(delta)的更新
使用 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 进行预配(provision)时已确定。 这些分区可能存在一些未使用的空间。例如,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 OTA 升级到 Qualcomm Linux 2.0 后,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-distrooverride 构建的qcom-multimedia-image- Custom 变体,即使用
qcom-custom-bsp和qcom-custom-distrooverride 构建的qcom-multimedia-image
- Qualcomm Linux 1.0 中使用
qcom-base-bsp和qcom-base-distrooverride 构建的qcom-multimedia-image镜像对应 Qualcomm Linux 2.0 中的qcom-multimedia-image。- Qualcomm Linux 1.0 中使用
qcom-custom-bsp和qcom-custom-distrooverride 构建的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 Guide。 在 Qualcomm Linux 2.0 中,您无需执行以下 OTA 更新步骤。此命令仅在 Qualcomm Linux 1.0 中受支持。在 Qualcomm Linux 2.0 中会跳过该步骤,因为当您运行以下步骤时,EFI 变量会存储在 EFI 分区中:
- 在设备上运行
uefi_sec应用程序,将efivars保存到重放保护内存块(RPMB):

