搭建环境
本小节主要介绍如何搭建和配置内生国密的开发与运行环境。
以下为手工部署详细步骤:
在搭建环境前请参见表2获取BoostKit-boostcc-ccos-1.4.RC1.zip,解压zip包后获得hpm固件、kunpeng_sec_drv.sec和sdf-utils*.rpm。
部署SEC驱动
- 在上述压缩包中含有与本版本匹配的SEC驱动,若部署不匹配的SEC驱动,会影响TEE OS功能。
- 部署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驱动建议同步更新。
环境部署
- 获取itrustee_client源码。
git clone https://gitcode.com/openeuler/itrustee_client.git -b iTrustee_7.10.1_release
- 获取itrustee_tzdriver源码。
git clone https://gitcode.com/openeuler/itrustee_tzdriver.git -b iTrustee_7.10.1_release
- 获取libboundscheck源码。
git clone https://gitcode.com/openeuler/libboundscheck.git cd libboundscheck git checkout 43f39407
- 将libboundscheck源码分别复制到“itrustee_client/”目录和“itrustee_tzdriver/”目录下。
cd .. cp -rf libboundscheck itrustee_client cp -rf libboundscheck itrustee_tzdriver
- 安装编译依赖。
yum install openssl-devel zlib-devel kernel-devel-$(uname -r)
- 编译itrustee_tzdriver。
cd itrustee_tzdriver && make CPU_BINDING=y
麒麟V10和V11、UOS v20 Server操作系统上编译时,需要删掉Makefile中的-fstack-protector-strong栈保护,否则将报如下栈保护错误。

- 在编译tzdriver后,将tzdriver.ko复制到指定目录。
mkdir -p "/lib/modules/$(uname -r)/kernel/drivers/trustzone/" cp tzdriver.ko /lib/modules/$(uname -r)/kernel/drivers/trustzone
- 编译itrustee_client。
cd ../itrustee_client make make install
- 安装sdf-utils。
rpm -ivh sdf-utils*.rpm
- 加载tzdriver.ko。
insmod /lib/modules/$(uname -r)/kernel/drivers/trustzone/tzdriver.ko
- 运行teecd进程。
nohup /usr/bin/teecd &
- 如果使用普通用户执行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 替换为您的目标用户
父主题: 准备环境