---
title: 升级TEE OS
description: "对于鲲鹏S920X10/S920S10机型，执行搭建步骤后，此时TEE OS即为机密OS。对于其他机型，由于硬件的限制，烧写在Flash上的TEE OS为以前缩小版iTrustee，一些高级特性不支持，可采用如下方法进行动态升级，该功能从1.4.0版本开始支持。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0061.html
sourcePath: /source/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0061.html
indexId: cdab03b307a1e8efe5c640d9be39fa53466f9ac9f6d2196ad131cd801b2d7aca72
---
# 升级TEE OS

对于鲲鹏S920X10/S920S10机型，执行搭建步骤后，此时TEE OS即为机密OS。对于其他机型，由于硬件的限制，烧写在Flash上的TEE OS为以前缩小版iTrustee，一些高级特性不支持，可采用如下方法进行动态升级，该功能从1.4.0版本开始支持。

1. 部署用于升级的TA和机密OS镜像，两者可从表2的zip包中获取。
  1 2 cp 9ab6f960-54f3-4317-a8f7-e92ed12b6ae2.sec /var/itrustee/image/ cp trustedcore.img /var/itrustee/image/

2. 获取用于升级的CA源码，编译出tee_upgrade.ko。
  1 2 3 git clone -b master https://gitcode.com/openeuler/itrustee_sdk.git git clone https://gitcode.com/openeuler/libboundscheck.git mv libboundscheck/ itrustee_sdk/thirdparty/open_source/

  修改Makefile指定tzdriver头文件路径和内核符号路径，tzdriver可使用搭建步骤下载的。 1 2 cd itrustee_sdk/test/CA/tee_upgrade vim Makefile

  1 make

  一般情况下内核头文件位于“/usr/src/kernels/<内核版本>”下，若编译脚本未匹配到正确路径，则需要根据实际情况予以替换。请注意，编译使用的内核头文件版本必须与tee_upgrade.ko最终运行环境的内核版本保持一致，否则可能会出现因内核版本差异导致tee_upgrade.ko加载失败的情况。可使用uname -r指令查看当前运行环境的内核版本。 tee_upgrade编译依赖tzdriver中的头文件以及内核符号，可通过EXTRA_CFLAGS指定tzdriver中头文件搜索路径，以及通过KBUILD_EXTRA_SYMBOLS指定tzdriver导出的内核符号文件Module.symvers路径。 一些编译环境不指定内核符号文件路径，编译仅有一些警告日志。一些编译环境会将警告当作错误，导致编译失败，此时必须指定内核符号文件路径。 在tzdriver已加载，且tzdriver中的内核符号文件不在时，可重新下载tzdriver进行编译。若报“strcpy_s”等符号找不到，可修改tzdriver的Makefile，将安全函数编译进tzdriver.ko中，可做如下修改。

3. 加载tee_upgrade.ko模块，完成最新TEE OS升级。
  1 insmod tee_upgrade.ko

4. 升级完毕后会终止teecd，需要重新启动teecd。
  1 nohup /usr/bin/teecd &

5. 查询当前TEE OS版本，此时显示为CCOS。
  1 tlogcat -v

  动态升级过程会中断当前TEE OS内正在运行的TA应用。为了避免业务中断，建议在未运行任何业务TA情况下完成动态升级。 最新TEE OS对安全内存要求4GB以上。为了避免TEE OS升级失败，请确认BIOS里安全内存配置大小不低于4GB。
