鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

RPM包安装

KAE2.0的RPM软件包包括kae-driver、kae-openssl、kae-zip,使用加解密算法需要安装kae-driver和kae-openssl,使用KAEzip相关算法需要安装kae-driver和kae-zip。推荐使用源码的方式来安装KAE2.0,如需在openEuler以外的其他OS上通过RPM包方式安装KAE2.0,则需要通过源码制作RPM包再安装。若需要升级KAE版本,请先卸载旧版本再进行新版本的安装。

目前KAE2.0的RPM包是基于指定tag点、特定OS制作的,不具备KAE2.0的最新特性和OS的通用性。

前提条件

  • RPM工具能正常使用。
  • 使用openssl version命令检查OpenSSL是否为1.1.1x系列,若不符合请参见安装OpenSSL/Tongsuo安装OpenSSL。
  • 使用以下命令安装相关依赖。
    yum install -y make kernel-devel libtool numactl-devel openssl-devel chrpath  lz4-devel
  • 设置OpenSSL环境变量“OPENSSL_ENGINES”为KAE动态库所在目录,使OpenSSL能够识别到KAE引擎。
    1
    export OPENSSL_ENGINES=/usr/local/lib/engines-1.1
    
  • 设置LD_LIBRARY_PATH环境变量,使KAE能够识别到UADK驱动动态库。
    1
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    

安装步骤

  1. 使用SSH远程登录工具,以root账号进入Linux操作系统命令行界面。
  2. 请参见获取软件包将获取到的KAE2.0 RPM软件包拷贝到自定义路径下。

    若KAE代码仓没有相应OS的RPM,则需要通过以下步骤制作RPM包。

    1. 请从Gitee下载KAE2.0源码包,或通过以下命令下载
      git clone https://gitee.com/kunpengcompute/KAE.git -b kae2
    2. 在KAE源码目录制作RPM包。
      sh build.sh rpmpack
  3. 安装加速驱动软件RPM包kae-driver。
    1
    rpm -ivh kae-driver-2.0.1-1.aarch64.rpm
    
    回显结果如下即表明安装成功。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    Preprocessing before installing the driver
    checking installed modules
    uacce modules start to install
    checking installed modules
    hisi_sec2 modules start to install
    checking installed modules
    hisi_hpre modules start to install
    checking installed modules
    hisi_zip modules start to install
    Updating / installing...
       1:kae-driver-2.0.1-1               ################################# [100%]
    installing driver...
    uacce modules installed
    hisi_sec2 modules installed
    hisi_hpre modules installed
    hisi_zip modules installed
    
    若安装驱动或重启设备后查询不到设备文件,可能是操作系统自带加速驱动导致,可以卸载驱动后重新加载;或在启动脚本rc.local中加上重新加载驱动命令,以确保重启设备后能正常加载加速器驱动。以下命令以hisi_sec2为例重新加载。
    1
    2
    rmmod hisi_sec2
    modprobe hisi_sec2
    
  4. 安装引擎库软件RPM包kae-openssl。
    1
    rpm -ivh kae-openssl-2.0.1-1.aarch64.rpm
    
    回显结果如下即表明安装成功。
    1
    2
    3
    4
    5
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:kae-openssl-2.0.1-1              ################################# [100%]
    installing openssl engine...
    
  5. 安装KAEZip软件RPM包kae-zip。
    1
    rpm -ivh kae-zip-2.0.1-1.aarch64.rpm
    

    回显结果如下即表明安装成功。

    1
    2
    3
    4
    5
    6
    Verifying...                          ################################# [100%]
    Preparing...                          ################################# [100%]
    installing pre zip...
    Updating / installing...
       1:kae-zip-2.0.1-1                  ################################# [100%]
    installing post zip...
    
  6. 查看相关软件是否已正常安装到系统内。
    1. 查看驱动是否安装成功。
      • 查看“/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
        
    2. 查看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
      
    3. 查看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
      
    4. 查看KAEZip解压缩模块是否安装成功。
      1
      ll /usr/local/kaezip/lib
      

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

      1
      2
      3
      4
      5
      6
      7
      8
      9
      total 440
      lrwxrwxrwx. 1 root root     40 Jan 12  2024 libkaezip.so -> /usr/local/kaezip/lib/libkaezip.so.2.0.1
      lrwxrwxrwx. 1 root root     40 Jan 12  2024 libkaezip.so.0 -> /usr/local/kaezip/lib/libkaezip.so.2.0.1
      -rwxr-xr-x. 1 root root 148096 Jan 12  2024 libkaezip.so.2.0.1
      -rwxr-xr-x. 1 root root 146306 Jan 12  2024 libz.a
      lrwxrwxrwx. 1 root root     14 Jan 12  2024 libz.so -> libz.so.1.2.11
      lrwxrwxrwx. 1 root root     14 Jan 12  2024 libz.so.1 -> libz.so.1.2.11
      -rwxr-xr-x. 1 root root 143656 Jan 12  2024 libz.so.1.2.11
      drwxr-xr-x. 2 root root   4096 Dec  5 18:48 pkgconfig
      

安装后检查

  1. 查看KAE RPM软件包。
    1
    rpm -qa kae-driver kae-openssl kae-zip
    
    显示以下格式内容说明安装成功。
    1
    2
    3
    kae-openssl-2.0.1-1.aarch64
    kae-driver-2.0.1-1.aarch64
    kae-zip-2.0.1-1.aarch64
    
  2. 查看虚拟文件系统下对应的加速器设备。
    1
    ls -al /sys/class/uacce/
    
    回显结果如下。
    1
    2
    3
    4
    5
    6
    7
    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 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 Dec  5 18:59 hisi_zip-4 -> ../../devices/pci0000:74/0000:74:00.0/0000:75:00.0/uacce/hisi_zip-4
    lrwxrwxrwx.  1 root root 0 Dec  5 18:59 hisi_zip-5 -> ../../devices/pci0000:b4/0000:b4:00.0/0000:b5:00.0/uacce/hisi_zip-5
    
  3. 查看KAEOpensslEngine加速引擎是否生效。

    以验证RSA性能为例,验证步骤请参见测试同步RSA性能,通过RSA性能命令可以看到指定KAE引擎之后,RSA的性能得到明显提升。

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

    1
    cat /sys/class/uacce/hisi_hpre-*/available_instances
    
    您也可以通过以下命令每0.1秒刷新一次,实时查看hisi_hpre的硬件队列消耗情况。
    1
    watch -n 0.1 cat /sys/class/uacce/hisi_hpre-*/available_instances
    

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

  4. 查看KAEZip库加速引擎是否生效。通过ldd命令查看KAEZip加速库是否链接到libwd库。
    1
    ldd /usr/local/kaezip/lib/libz.so.1.2.11
    
    如果有如下返回信息,说明KAEZlib加速库安装成功。同样的,用户的进程也可以通过ldd命令查看是否使用libwd库。
    1
    2
    3
    4
    5
    6
    7
            linux-vdso.so.1 (0x0000ffffa631d000)
    	libc.so.6 => /usr/lib64/libc.so.6 (0x0000ffffa6110000)
    	libkaezip.so => /usr/local/kaezip/lib/libkaezip.so (0x0000ffffa60df000)
    	libwd.so.2 => /usr/local/lib/libwd.so.2 (0x0000ffffa607e000)
    	libwd_comp.so.2 => /usr/local/lib/libwd_comp.so.2 (0x0000ffffa605d000)
    	/lib/ld-linux-aarch64.so.1 (0x0000ffffa62e0000)
    	libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x0000ffffa6038000)
    
  5. 查看KAEZstd库加速引擎是否生效。通过ldd命令查看KAEZstd加速库是否链接到libwd库。
    1
    ldd /usr/local/kaezstd/lib/libkaezstd.so
    
    如果有如下返回信息,说明KAEZstd加速库安装成功。
    1
    2
    3
    4
    5
    6
            linux-vdso.so.1 (0x0000ffff89774000)
            libwd.so.2 => /usr/local/lib/libwd.so.2 (0x0000ffff896b5000)
            libwd_comp.so.2 => /usr/local/lib/libwd_comp.so.2 (0x0000ffff89684000)
            libc.so.6 => /usr/lib64/libc.so.6 (0x0000ffff894d5000)
            /lib/ld-linux-aarch64.so.1 (0x0000ffff89737000)
            libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x0000ffff894b0000)
    
  6. 查看KAELz4库加速引擎是否生效。通过ldd命令查看KAELz4加速库是否链接到libwd库。
    1
    ldd /usr/local/kaelz4/lib/libkaelz4.so
    
    如果有如下返回信息,说明KAELz4加速库安装成功。
    1
    2
    3
    4
    5
    6
    	linux-vdso.so.1 (0x0000ffff84add000)
    	libwd.so.2 => /usr/local/lib/libwd.so.2 (0x0000ffff84a0e000)
    	libwd_comp.so.2 => /usr/local/lib/libwd_comp.so.2 (0x0000ffff849dd000)
    	libc.so.6 => /usr/lib64/libc.so.6 (0x0000ffff8482e000)
    	/lib/ld-linux-aarch64.so.1 (0x0000ffff84aa0000)
    	libnuma.so.1 => /usr/lib64/libnuma.so.1 (0x0000ffff84809000)