文章 ID: 000090747 内容类型: 安装与设置 上次审核日期: 2022 年 05 月 11 日

无法使用支持 英特尔® Software Guard Extensions (英特尔® SGX) SGX2 的处理器动态分配内存

环境

Linux*

BUILT IN - ARTICLE INTRO SECOND COMPONENT
总结

安装传统的树外英特尔® SGX Linux* 驱动程序,以受益于 (英特尔® SGX) SGX2 指令。

说明
  1. 创建一个英特尔® SGX应用程序,并使用 malloc 来分配内存
  2. 在围圈配置文件中配置HeapMinSize and HeapMaxSize
  3. 内存分配达到HeapMaxSize之前,malloc在多次分配后返回 nullptr
  4. 内存未动态分配
解决方法

只有传统的树外 (OOT) 英特尔® SGX Linux* 驱动程序 支持 (英特尔® SGX) SGX2。

 

执行 这些命令以检查安装了哪个英特尔® SGX驱动程序:

ls /dev/*sgx* #Should return /dev/isgx

lsmod | grep -i sgx #Should return: isgx

 

如果返回值未高于此值,则未安装 OOT 驱动程序,您可能具有 数据中心验证基元 (DCAP)。在安装 OOT 驱动程序之前卸载 DCAP 驱动程序。

  1. 卸载 当前驱动程序
    sudo /opt/intel/sgxdriver/uninstall.sh # The path to uninstall.sh may differ for your system.

    如果缺少 uninstall.sh 脚本,请按照以下内容卸载:

    sudo service aesmd stop

    sudo rm -f $(find /lib/modules -name intel_sgx.ko)

    sudo /sbin/depmod

    sudo sed -i '/^intel_sgx$/d' /etc/modules

    sudo rm -f /etc/sysconfig/modules/intel_sgx.modules

    sudo rm -f /etc/modules-load.d/intel_sgx.conf

  2. 使用两种方法之一安装 OOT 驱动程序
    • 下载安装 最新的驱动程序二进制文件,类似于 sgx_linux_x64_driver_2.11.054c9c4c.bin, 来自 Linux 分发版文件夹

      chmod 777 sgx_linux_x64_driver_2.11.054c9c4c.bin

      sudo ./sgx_linux_x64_driver_2.11.054c9c4c.bin

    • 源代码构建

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。