---
title: 搭建环境
description: "本小节主要介绍如何搭建和配置内生国密的开发与运行环境。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/cca/devg/Kunpeng_ommercialcryptography_16_0015.html
sourcePath: /source/zh/kunpengcctrustzone/cca/devg/Kunpeng_ommercialcryptography_16_0015.html
indexId: 380ef832051277995aa16418f7153759d871d11b8c328df37f4e6c432d00b0f381
---
# 搭建环境

本小节主要介绍如何搭建和配置内生国密的开发与运行环境。

建议优先使用《一键式CCOS环境部署脚本(https://gitcode.com/openeuler/tee-gp-proxy/tree/master/trustzone-awared-vm/utils/ccos-env-deploy)》。

以下为手工部署详细步骤：

在搭建环境前请参见表2获取BoostKit-boostcc-ccos-1.4.RC1.zip，解压zip包后获得hpm固件、kunpeng_sec_drv.sec和sdf-utils*.rpm。

#### 部署SEC驱动

1. 在上述压缩包中含有与本版本匹配的SEC驱动，若部署不匹配的SEC驱动，会影响TEE OS功能。
2. 部署SEC驱动文件。
  1 2 mkdir -p /var/itrustee/tee_dynamic_drv/crypto/ cp kunpeng_sec_drv.sec /var/itrustee/tee_dynamic_drv/crypto/

  SEC驱动部署路径由itrustee_client的Makefile文件中的DYNAMIC_CRYPTO_DRV_DIR宏指定，如果需要更换部署路径，需重新编译部署teecd。 启动teecd时会默认加载DYNAMIC_CRYPTO_DRV_DIR指定目录下的所有文件，因此尽量不要将其他任何文件放到该目录下。 启动teecd进程时，会自动加载SEC驱动，SEC驱动未成功加载将影响TEE OS功能。因此需要在启动teecd前部署SEC驱动，若先启动了teecd，可关闭teecd，重新部署SEC驱动后，再启动teecd。 当更新TEEOS镜像时，SEC驱动建议同步更新。


#### 环境部署

1. 获取itrustee_client源码。

```
git clone https://gitcode.com/openeuler/itrustee_client.git -b iTrustee_7.10.1_release
```


2. 获取itrustee_tzdriver源码。

```
git clone https://gitcode.com/openeuler/itrustee_tzdriver.git -b iTrustee_7.10.1_release
```


3. 获取libboundscheck源码。

```
git clone https://gitcode.com/openeuler/libboundscheck.git
cd libboundscheck
git checkout 43f39407
```


4. 将libboundscheck源码分别复制到“itrustee_client/”目录和“itrustee_tzdriver/”目录下。

```
cd ..
cp -rf libboundscheck itrustee_client
cp -rf libboundscheck itrustee_tzdriver
```


5. 安装编译依赖。

```
yum install openssl-devel zlib-devel kernel-devel-$(uname -r)
```


6. 编译itrustee_tzdriver。

```
cd itrustee_tzdriver && make CPU_BINDING=y
```


  麒麟V10和V11、UOS v20 Server操作系统上编译时，需要删掉Makefile中的-fstack-protector-strong栈保护，否则将报如下栈保护错误。

7. 在编译tzdriver后，将tzdriver.ko复制到指定目录。

```
mkdir -p "/lib/modules/$(uname -r)/kernel/drivers/trustzone/"
cp tzdriver.ko /lib/modules/$(uname -r)/kernel/drivers/trustzone
```


8. 编译itrustee_client。

```
cd ../itrustee_client
make
make install
```


9. 安装sdf-utils。

```
rpm -ivh sdf-utils*.rpm
```


10. 加载tzdriver.ko。

```
insmod /lib/modules/$(uname -r)/kernel/drivers/trustzone/tzdriver.ko
```


11. 运行teecd进程。

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


12. 如果使用普通用户执行CA和TA用例，则需要给该用户增加/var/itrustee/teecd目录的读写权限

```
sudo setfacl -m u:your_user:rwx /var/itrustee/teecd # your_user替换为您的目标用户
sudo setfacl -d -m u:your_user:rw /var/itrustee/teecd # your_user替换为您的目标用户
```


- 搭建环境过程中的安全管理可参见《TrustZone套件特性指南》  安全管理(https://www.hikunpeng.com/document/detail/zh/kunpengcctrustzone/trustzone/fg/kunpengtrustzone_20_0037.html)
章节。
- 每次重启服务器后，需要执行上述  步骤10
和  步骤11
运行相应组件。
