---
title: REE Patch加载失败的解决方法
description: "存在以下一条或多条现象描述："
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/trouble/boostkit_trustzone_featurestroublecase_0001.html
sourcePath: /source/zh/kunpengcctrustzone/trustzone/trouble/boostkit_trustzone_featurestroublecase_0001.html
indexId: 064a5b107766786563930aeddd2186bd5073ef4f48d3b1a30eec28dceaa8440896
---
# REE Patch加载失败的解决方法

#### 问题现象描述

存在以下一条或多条现象描述：

- insmod tzdriver.ko指令失败，提示“Operation not permitted”。
- 加载teecd失败，teecd守护进程异常退出。

对系统的影响：

- 对非TrustZone功能无影响。
- 无法使能TrustZone所有功能，CA/TA应用无法正常加载运行。


#### 关键过程、根本原因分析

可能的原因：

1. BIOS中TEE Config未打开TEE开关选项。
2. BIOS中TEE Config配置安全内存不合理，导致TEE OS启动失败。
3. tzdriver.ko内核模块与当前运行环境内核版本不一致。
4. tzdriver.ko未加载情况下，运行用户态teecd守护进程。

排查思路：

排查思路如下图所示。

图1 REE Patch加载失败排查思路


#### 结论、解决方案及效果

1. 检查iBMC日志，观察teeos启动日志。

  a. 登录iBMC web页面，依次选择“维护诊断->iBMC日志->操作日志”，观察最近一次服务器启动日志中teeos加载日志

    1. 不存在teeos启动日志信息，当前BIOS中TEE使能开关关闭，请参考      BIOS设置(https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0019.html#ZH-CN_TOPIC_0000002258299325__section132520219345)
打开Support TEE开关选项。
    2. 提示“tee os load fail”，当前tee os启动失败，请参考      2
进一步排查。
    3. 提示“tee os load ok”，当前tee os已正常启动，请参考      3
进一步排查。
2. 检查系统串口数据

  a. 登录iBMC web页面，依次选择“维护诊断->系统日志”，下载2M的串口数据。检查最新一次服务器启动日志中teeos加载日志（e.g可搜索关键字TEE OS）。

    1. 提示“TEE OS Load FAIL”，且有安全内存分配适配失败日志“AllocaTeeMem Fail”, 当前安全内存配置不合理导致BIOS安全内存分配失败，启动teeos失败。 请参见      安全内存规格说明(https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0050.html)
重新配置安全内存大小。
    2. 非安全内存分配失败问题导致teeos加载失败，请收集相关串口日志，联系华为技术支持处理。
3. 检查tzdriver与当前内核版本是否匹配。

  - insmod tzdriver.ko提示“Invalid module format”，且用dmesg观察内核日志，有“tzdriver: disagress about version of symbol module_layout”类似输出。
    解决办法：请参见《机密计算TrustZone特性指南(https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0002.html)》基于当前内核版本的内核源码，重新编译tzdriver内核模块。

  - 在内核版本匹配情况下，tzdriver加载失败，请收集相关dmesg日志，联系华为技术支持处理。
  - tzdriver正常加载，请参考    4
进一步排查。
4. 确认teecd各项依赖已正确部署。
```
ll /usr/bin | grep -E "teecd|tlogcat"
```

预期结果：
```
ldconfig -p | grep -E "teec|boundscheck"
```

预期结果：

  - 如果teecd、各项依赖未正确部署，请参考    加载REE侧驱动(https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0019.html#ZH-CN_TOPIC_0000002258299325__section967391522814)
重新部署teecd及动态库。
  - 已正确部署，绝对路径加载teecd。
    1 /usr/bin/teecd &

    通过ps axu |grep teecd命令检查teecd进程是否存在。

  - 是，处理完毕。
  - 否，通过journalctl | grep tzdriver命令搜集journalctl有关teecd的系统日志，联系华为技术支持处理。
