---
title: 源码安装（KAE2.0）
description: "KAE2.0源码包中包含KAEKernelDriver内核驱动、UADK框架、KAEOpensslEngine引擎和KAEZlib几个模块，其中内核驱动与UADK为必选项，KAEOpensslEngine引擎和KAEZlib按实际需求选择安装。本文使用KAE的加解密功能只需安装KAEOpensslEngine加速引擎，过程中可直接使用脚本进行安装，最后检查是否安装成功。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/accel/kunpengaccel_16_0017.html
sourcePath: /source/zh/kunpengboostkithistory/2300/accel/kunpengaccel_16_0017.html
indexId: dd77eb18d9034f2cffeb1c68c14c1a00457ab98e0c01860bc7c402b9c185906d70
---
# 源码安装（KAE2.0）

KAE2.0源码包中包含KAEKernelDriver内核驱动、UADK框架、KAEOpensslEngine引擎和KAEZlib几个模块，其中内核驱动与UADK为必选项，KAEOpensslEngine引擎和KAEZlib按实际需求选择安装。本文使用KAE的加解密功能只需安装KAEOpensslEngine加速引擎，过程中可直接使用脚本进行安装，最后检查是否安装成功。

#### 前提条件

- 请先下载KAE2.0源码包，下载路径为：  https://gitee.com/kunpengcompute/KAE/tree/kae2/(https://gitee.com/kunpengcompute/KAE/tree/kae2/)
，或通过命令git clone https://gitee.com/kunpengcompute/KAE.git -b kae2下载。
- 安装前的系统环境已满足  安装前准备
中的环境要求。
- 使用openssl version命令检查OpenSSL是否为1.1.1a及以上版本，若低于1.1.1a版本请参见  安装OpenSSL
安装OpenSSL。
- 使用yum install -y make kernel-devel libtool numactl-devel openssl-devel chrpath命令安装相关依赖。
- 设置OpenSSL环境变量
  通过以下命令设置环境变量：如果用户指定安装路径，则下面命令中的/usr/local/lib/engines-1.1应根据实际安装路径进行修改。该环境变量默认为指定挂载到OpenSSL中的引擎路径。

  1 export OPENSSL_ENGINES=/usr/local/lib/engines-1.1


#### 安装步骤

1. 使用远程登录工具，以root账号进入Linux操作系统命令行界面。
2. 将KAE源码包拷贝到自定义路径下。
3. （可选）一键安装所有模块。
  代码脚本提供一键式安装命令。进入KAE源码包目录，使用sh build.sh all命令安装以上所有组件内容，若不需要压缩模块，请参见4~6分模块安装。

4. 安装内核驱动。

  a. 进入KAE源码包目录中，执行安装脚本。
    1 2 cd KAE sh build.sh driver

    加速器驱动编译生成uacce.ko、hisi_qm.ko、hisi_sec2.ko、hisi_hpre.ko、hisi_zip.ko、hisi_rde.ko，安装路径为：“/lib/modules/`uname -r`/extra”。

  b. 查看驱动是否安装成功。

    - 查看“/sys/class/uacce”目录下是否存在加速引擎文件系统。
      1 ll /sys/class/uacce/

      回显信息如下所示，表示驱动安装成功。 1 2 3 4 5 6 lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_hpre-2 -> ../../devices/pci0000:78/0000:78:00.0/0000:79:00.0/uacce/hisi_hpre-2 lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_hpre-3 -> ../../devices/pci0000:b8/0000:b8:00.0/0000:b9:00.0/uacce/hisi_hpre-3 lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_sec2-0 -> ../../devices/pci0000:74/0000:74:01.0/0000:76:00.0/uacce/hisi_sec2-0 lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_sec2-1 -> ../../devices/pci0000:b4/0000:b4:01.0/0000:b6:00.0/uacce/hisi_sec2-1 lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_zip-4 -> ../../devices/pci0000:74/0000:74:00.0/0000:75:00.0/uacce/hisi_zip-4 lrwxrwxrwx. 1 root root 0 Aug 22 17:14 hisi_zip-5 -> ../../devices/pci0000:b4/0000:b4:00.0/0000:b5:00.0/uacce/hisi_zip-5

    - 通过lsmod查看驱动安装情况来判断驱动是否安装成功。
      1 lsmod | grep uacce

      回显信息如下所示，表示驱动安装成功。 1 uacce 32768 3 hisi_sec2,hisi_qm,hisi_zip

- 重启设备安装驱动后查询不到设备文件，可能是操作系统自带加速驱动导致，可以卸载驱动后重新加载；或者在启动脚本re.local中加上重新加载驱动命令。以hisi_sec2为例。
  1 2 rmmod hisi_sec2 modprobe hisi_sec2

- 如果sh build.sh cleanup后重新安装仍旧找不到设备文件，请确保License安装成功，若无License也会导致驱动安装失败，关于License请参见  安装前准备
中的“获取License”内容。
- KAE2.0版本安装驱动会默认将加解密及解压缩驱动一起安装，若不需要可手动卸载不需要的驱动文件。


5. 安装UADK框架。

  a. 执行安装UADK框架的脚本命令。
    1 sh build.sh uadk

    UADK框架中包含了用户态驱动，用户态驱动动态库文件为libwd.so、libwd_crypto.so等。UADK默认安装路径为“/usr/include/uadk”，动态库文件在“/usr/local/lib”下。

    若执行安装UADK命令后失败，提示缺少头文件，则安装相关依赖包后重新执行安装命令即可。

  b. 查看UADK框架是否安装成功。
    1 ll /usr/local/lib/libwd*

    回显信息如下，表示安装成功。 1 2 3 4 5 6 7 8 9 10 11 12 -rwxr-xr-x. 1 root root 961 Aug 22 17:23 /usr/local/lib/libwd_comp.la lrwxrwxrwx. 1 root root 19 Aug 22 17:23 /usr/local/lib/libwd_comp.so -> libwd_comp.so.2.5.0 lrwxrwxrwx. 1 root root 19 Aug 22 17:23 /usr/local/lib/libwd_comp.so.2 -> libwd_comp.so.2.5.0 -rwxr-xr-x. 1 root root 377872 Aug 22 17:23 /usr/local/lib/libwd_comp.so.2.5.0 -rwxr-xr-x. 1 root root 973 Aug 22 17:23 /usr/local/lib/libwd_crypto.la lrwxrwxrwx. 1 root root 21 Aug 22 17:23 /usr/local/lib/libwd_crypto.so -> libwd_crypto.so.2.5.0 lrwxrwxrwx. 1 root root 21 Aug 22 17:23 /usr/local/lib/libwd_crypto.so.2 -> libwd_crypto.so.2.5.0 -rwxr-xr-x. 1 root root 715616 Aug 22 17:23 /usr/local/lib/libwd_crypto.so.2.5.0 -rwxr-xr-x. 1 root root 907 Aug 22 17:23 /usr/local/lib/libwd.la lrwxrwxrwx. 1 root root 14 Aug 22 17:23 /usr/local/lib/libwd.so -> libwd.so.2.5.0 lrwxrwxrwx. 1 root root 14 Aug 22 17:23 /usr/local/lib/libwd.so.2 -> libwd.so.2.5.0 -rwxr-xr-x. 1 root root 1342080 Aug 22 17:23 /usr/local/lib/libwd.so.2.5.0

6. 编译安装KAEOpensslEngine加速引擎。
  1 sh build.sh engine

  KAE引擎动态库文件为libkae.so。动态库文件在“/usr/local/lib/engines-1.1”下。

  查看KAE引擎是否安装成功。

  1 ll /usr/local/lib/engines-1.1

  回显信息如下，表示安装成功。

  1 2 3 4 5 6 total 5644 -rw-r--r--. 1 root root 3846524 Aug 22 17:28 kae.a -rwxr-xr-x. 1 root root 995 Aug 22 17:28 kae.la lrwxrwxrwx. 1 root root 12 Aug 22 17:28 kae.so -> kae.so.2.0.0 lrwxrwxrwx. 1 root root 12 Aug 22 17:28 kae.so.2 -> kae.so.2.0.0 -rwxr-xr-x. 1 root root 1967736 Aug 22 17:28 kae.so.2.0.0

7. 查看KAEOpensslEngine加速引擎是否生效。
  以验证RSA性能为例，验证步骤请参见测试同步RSA性能，通过RSA性能命令可以看到指定KAE引擎之后，RSA的性能得到明显提升。

  另外，除上述方法，在执行RSA性能命令过程中，可以在新的终端上同时查看hisi_hpre设备的硬件队列资源情况如下，相同地，SM3/SM4算法可以查看hisi_sec2的硬件队列消耗情况。

```
cat /sys/class/uacce/hisi_hpre-*/available_instances
```


  显示结果从256变为255，说明RSA算法消耗了HPRE加速器一个硬件单元队列，说明KAEOpensslEngine加速引擎已生效。
