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

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

1. 部署用于升级的TA和机密OS镜像，两者可从表2的zip包中获取。

```
cp 9ab6f960-54f3-4317-a8f7-e92ed12b6ae2.sec  /var/itrustee/image/
cp trustedcore.img  /var/itrustee/image/
```


2. 获取用于升级的CA源码，编译出tee_upgrade.ko。

```
git clone https://gitee.com/openeuler/itrustee_sdk.git -b master
git clone https://gitee.com/openeuler/libboundscheck.git
mv libboundscheck/ itrustee_sdk/thirdparty/open_source/
```


  修改Makefile指定tzdriver头路径和内核符号路径，tzdriver可使用搭建步骤
  下载的。

```
cd
itrustee_sdk/test/CA/tee_upgrade
vim Makefile
```


```
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升级。

```
insmod tee_upgrade.ko
```


4. 升级完毕后会中止teecd，需要重新启动teecd。

```
nohup /usr/bin/teecd &
```


5. 查询当前TEE OS版本，此时显示为CCOS（机密OS，与以前缩小版iTrustee进行区分）。

```
tlogcat -v
```


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