文档首页 > > 加解密库> 开发指南(KAE加解密)> 安装、升级和卸载> 安装加速引擎软件> 通过源码方式安装加速引擎软件

通过源码方式安装加速引擎软件

分享
更新时间:2021/01/18 GMT+08:00

前提条件

  • 安装前的系统环境已满足安装前准备中的环境要求。
  • OpenSSL 1.1.1a或以上版本已正确安装,具体请参见安装OpenSSL

安装步骤

  1. 使用远程登录工具,将加速引擎源码包拷贝到自定义路径下。

    代码包含内核驱动、用户态驱动、基于OpenSSL的KAE引擎和zlib库四个模块。

    其中内核驱动与用户态驱动为必选项,KAE引擎与zlib库按实际需求选择安装。

  2. 使用SSH远程登录工具,以root帐号进入Linux操作系统命令行界面
  3. 安装内核驱动。

    在下载好的KAEdriver目录下,执行如下命令:

    1
    cd kae_driver
    
    1
    make
    
    1
    make install
    
    加速器驱动编译生成uacce.ko、hisi_qm.ko、hisi_sec2.ko、hisi_hpre.ko、hisi_zip.ko、hisi_rde.ko;安装路径为:
    1
    lib/modules/`uname -r`/extra
    

    由于SUSE及CentOS内核目录为“/lib/modules/`uname -r`/”,驱动安装的目录为“/lib/modules/`uname -r`/extra”(`uname -r`命令获取当前运行内核信息)。如果其他OS不是该目录,需要修改Makefile文件中install指定的内核路径。

    install:

    $(shell mkdir -p /lib/modules/`uname -r`/extra)修改为$(shell mkdir -p 内核路径/extra)

  4. 安装用户态驱动。

    在KAEdriver目录下,编译安装Warpdrive驱动开发库。
    1
    cd warpdriver
    
    1
    sh autogen.sh
    
    1
    ./configure
    
    1
    make
    
    1
    make install
    

    其中./configure 可以加--prefix选项用于指定加速器用户态驱动需要安装的位置,用户态驱动动态库文件为libwd.so。Warpdrive默认安装路径为/usr/local,动态库文件在/usr/local/lib下。

    KAE引擎需要使用到OpenSSL的动态库与Warpdrive的动态库。Warpdrive源码安装路径选择需要与OpenSSL安装路径保持一致,使得KAE引擎可以通过LD_LIBRARY_PATH能够同时找到这两个动态库。

  5. 重启系统或通过命令行手动依次加载加速器驱动到内核,并查看是否加载成功。如果操作系统是SUSE请按先说明进行操作。

    1
    2
    3
    4
    5
    6
    7
    8
    [root@localhost rpm]# lsmod | grep uacce
    [root@localhost rpm]# modprobe uacce
    [root@localhost rpm]# modprobe hisi_sec2 #加载hisi_sec2驱动时将根据/etc/modprobe.d/hisi_sec2.conf 下的配置文件加载到内核
    [root@localhost rpm]# modprobe hisi_hpre  #加载hisi_hpre驱动时将根据/etc/modprobe.d/hisi_hpre.conf 下的配置文件加载到内核
    [root@localhost rpm]# modprobe hisi_rde  #加载hisi_rde驱动时将根据/etc/modprobe.d/hisi_rde.conf 下的配置文件加载到内核
    [root@localhost rpm]# modprobe hisi_zip  #加载hisi_zip驱动时将根据/etc/modprobe.d/hisi_zip.conf 下的配置文件加载到内核
    [root@localhost rpm]# lsmod | grep uacce
    uacce                36864  3 hisi_sec2,hisi_qm,hisi_hpre,hisi_rde,hisi_zip
    

    在SUSE操作系统内加载外部驱动需要先配置/etc/modprobe.d/10-unsupported-modules.conf。设置allow_unsupported_modules 的值为1。

  6. 编译安装加速器KAE引擎。

    1
    2
    3
    4
    5
    cd KAE
    chmod +x configure
    ./configure
    make clean && make
    make install
    

    其中./configure 可以加--prefix选项用于指定KAE 引擎的安装路径,KAE引擎动态库文件为libkae.so。

    推荐通过默认方式安装KAE引擎。默认安装路径为/usr/local,动态库文件在/usr/local/lib/engines-1.1下。

    如果libwd和OpenSSL安装方式不是按默认进行安装,则可以通过以下命令指定OpenSSL和libwd的安装路径:

    ./configure --openssl_path=/usr/local/openssl –wd_path=/usr/local/libwd

    其中/usr/local/openssl和/usr/local/libwd是OpenSSL和libwd的一个示例安装路径。

  7. (可选)编译安装zlib压缩库。

    编译安装之前需要从zlib官网下载zlib-1.2.11.tar.gz,并拷贝到KAEzip/open_source。
    1
    2
    cd KAEzip    
    sh setup.sh install
    

    zlib加速库安装在/usr/local/kaezip。

安装后检查

  1. 执行cd命令,进入到/usr/local/lib目录或者用户自定义安装目录下。
  2. 执行ls -al命令,查看软连接状态。

    命令脚本和信息回显如下所示:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    [root@localhost ~]# ls -al /usr/local/lib/ |grep libwd
    lrwxrwxrwx. 1 root root      14 Jun 25 11:16 libwd.so -> libwd.so.1.0.1
    lrwxrwxrwx. 1 root root      14 Jun 25 11:16 libwd.so.0 -> libwd.so.1.0.1
    -rwxr-xr-x. 1 root root  137280 Jun 24 11:37 libwd.so.1.0.1   //软连接及so存在,说明libwd安装成功
    [root@localhost ~]# ls -al /usr/local/lib/engines-1.1/
    lrwxrwxrwx. 1 root root     48 Jun 25 11:21 kae.so -> /usr/local/openssl/lib/engines-1.1/kae.so.1.0.1
    lrwxrwxrwx. 1 root root     48 Jun 25 11:21 kae.so.0 -> /usr/local/openssl/lib/engines-1.1/kae.so.1.0.1
    -rwxr-xr-x. 1 root root 212192 Jun 24 11:37 kae.so.1.0.1 
     //软连接及so存在,说明KAE引擎安装成功
    [root@localhost ~]# ll /usr/local/zlib/lib
    -rw-r-r-. 1 root root 161162 Jul 10 12:54 libz.a
    lrwxrwxrwx. 1 root root     14 Jul 10 12:54 libz.so -> libz.so.1.2.11
    lrwxrwxrwx. 1 root root     14 Jul 10 12:54 libz.so.1 -> libz.so.1.2.11
    -rwxr-xr-x. 1 root root 146656 Jul 10 12:54 libz.so.1.2.11   
    //libz的软连接和so文件存在,说明zlib库安装成功
    

  3. 查看虚拟文件系统下对应的加速器设备:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    [root@localhost rpm]# ls -al /sys/class/uacce/
    total 0
    lrwxrwxrwx. 1 root root 0 Nov 14 03:45 hisi_hpre-2 -> ../../devices/pci0000:78/0000:78:00.0/0000:79:00.0/uacce/hisi_hpre-2
    lrwxrwxrwx. 1 root root 0 Nov 14 03:45 hisi_hpre-3 -> ../../devices/pci0000:b8/0000:b8:00.0/0000:b9:00.0/uacce/hisi_hpre-3
    lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_rde-4 -> ../../devices/pci0000:78/0000:78:01.0/uacce/hisi_rde-4
    lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_rde-5 -> ../../devices/pci0000:b8/0000:b8:01.0/uacce/hisi_rde-5
    lrwxrwxrwx. 1 root root 0 Nov 14 08:39 hisi_sec-0 -> ../../devices/pci0000:74/0000:74:01.0/0000:76:00.0/uacce/hisi_sec-0
    lrwxrwxrwx. 1 root root 0 Nov 14 08:39 hisi_sec-1 -> ../../devices/pci0000:b4/0000:b4:01.0/0000:b6:00.0/uacce/hisi_sec-1
    lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_zip-6 -> ../../devices/pci0000:74/0000:74:00.0/0000:75:00.0/uacce/hisi_zip-6
    lrwxrwxrwx. 1 root root 0 Nov 17 22:09 hisi_zip-7 -> ../../devices/pci0000:b4/0000:b4:00.0/0000:b5:00.0/uacce/hisi_zip-7
    

  4. 通过OpenSSL命令验证加速器是否生效,以验证RSA性能为例,命令如下:

    1
    2
    3
    4
    5
    6
    7
    8
    [root@localhost rpm]# cd /usr/local/bin/
    [root@localhost bin]# ./openssl speed rsa2048
                         sign    verify    sign/s verify/s
    rsa 2048 bits 0.001381s 0.000035s    724.1  28601.0
    [root@localhost bin]# ./openssl speed -engine kae rsa2048
    engine "kae" set.
                      sign    verify    sign/s verify/s
    rsa 2048 bits 0.000175s 0.000021s   5730.1  46591.8
    

    通过RSA性能命令可以看到指定kae引擎之后,RSA的性能得到明显提升。另外,除上述方法,在跑RSA性能命令过程中,我们可以在新的终端上同时查看hpre设备的硬件队列资源情况如下:

    1
    2
    3
    4
    [root@localhost ~]# cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances
    256
    255  #从256变为255,说明RSA算消耗了HRPE加速器一个硬件单元队列,说明加速器引擎已生效
    [root@localhost ~]#
    

  5. (可选)查看zlib库加速器是否生效,用户如果没有安装hisi_zip软件可以忽略该步骤。通过ldd命令查看zlib加速库是否链接到libwd库,如果有返回如下信息,说明zlib加速库安装成功。同样的,用户的进程也可以通过ldd 命令查看是否使用libwd库。

    1
    2
    3
    4
    5
    6
    [root@localhost /]# ldd /usr/local/zlib/lib/libz.so.1.2.11
            linux-vdso.so.1 =>  (0x0000ffff80280000)
            libc.so.6 => /lib64/libc.so.6 (0x0000ffff80080000)
            libwd.so.1 => /lib64/libwd.so.1 (0x0000ffff80040000)
            /lib/ld-linux-aarch64.so.1 (0x0000ffff80290000)
    [root@localhost /]#
    

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问