ubuntu16.04 SGX安装

ubuntu16.04 SGX安装

在Ubuntu 16.04下安装Intel SGX驱动、平台软件和SDK的步骤如下, 原文出自:https://blog.csdn.net/qiu_pengfei/article/details/78795697 ,中间我遇到一些小问题,希望会对大家有所帮助。

第一步:下载SDK、SGX驱动和平台软件:

  1. 网址:https://01.org/zh/intel-software-guard-extensions/downloads?langredirect=1
  2. 选择 Intel SGX Linux 2.0 Release下的Intel® SGX SDK for Ubuntu* 16.04.1、Intel® SGX Driver for Linux OSIntel® SGX Platform Software for Ubuntu 16.04.1进行下载就行
    ubuntu16.04 SGX安装_第1张图片

第二步:安装必要的工具:sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev

第三步:安装SGX SDK前的准备工作:

  1. 安装必要的工具:sudo apt-get install build-essential

  2. 安装alien:sudo apt-get install alien

  3. 下载并安装Intel® Capability Licensing Service(iclsClient):https://software.intel.com/en-us/sgx-sdk/download

  1. 点击64-bit client或者https://registrationcenter.intel.com/en/forms/?productid=2859,并进行注册,注册后自动下载
 
  2.  进入下载文件夹,编译iclsClient:sudo alien --scripts iclsClient-1.45.449.12-1.x86_64.rpm,会在文件夹中生成同名的deb文件
  
  3. 安装iclsClient:sudo dpkg -i iclsclient_1.45.449.12-2_amd64.deb
  1. 安装JHI服务:

    • 下载dynamic-application-loader-host-interface源码:https://github.com/intel/dynamic-application-loader-host-interface
    1. 解压下载得到的源码并进入到文件夹中
    
    2. 安装必要的工具:sudo apt-get install uuid-dev libxml2-dev cmake
    
    3. 编译并安装JHI服务:cmake .;make;sudo make install;sudo systemctl enable jhi

注意!!!
在进行安装jhi的第三步时,我碰到了如下问题:

fatal error: systemd/sd-daemon.h: file or directory not found

解决方案: 这是因为ubuntu16.04 缺少libsystemd-dev库,因此我们需要进入到root权限,运行如下命令去下载这个库。

sudo -i
apt install libsystemd-dev

第四步:安装SGX驱动、SDK和平台软件,需要root权限:

  1. 切换到root用户:sudo -i

  2. 安装SGX驱动:

1. 为下载到的驱动文件添加可执行权限:chmod 777 sgx_linux_x64_driver_eb61a95.bin,驱动版本可能不同,根据自己的驱动版本添加权限,下同。

2. 安装SGX驱动:sudo ./sgx_linux_x64_driver_eb61a95.bin

3. SGX驱动会将其设置为开机启动,并在/opt/intel/sgxdriver目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX驱动
  1. 安装SGX平台软件:
 1. 为下载到的平台软件文件添加可执行权限:chmod 777 sgx_linux_ubuntu16.04.1_x64_psw_2.0.100.40950.bin

 2. 安装SGX平台软件:sudo ./sgx_linux_ubuntu16.04.1_x64_psw_2.0.100.40950.bin

 3. SGX平台软件会在/opt/intel/sgxpsw目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX平台软件
  1. 安装SGX SDK:
1. 为下载得到的SDK文件添加可执行权限:chmod 777 sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin

2.  安装SGX SDK:sudo ./sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin,安装过程中需要选择安装的文件夹,可以输入yes安装到当前文件夹,也可以输入no选择自己想安装到的文件夹。

3. 打开终端,输入sudo mkdir /home/SGXSDK在home文件夹下建立SGXSDK文件夹打开终端,输入sudo mkdir /home/SGXSDK在home文件夹下建立SGXSDK文件夹

4. 输入no,并输入/home/SGXSDK,将SGX SDK安装到/home/SGXSDK文件夹下输入no,并输入/home/SGXSDK,将SGX SDK安装到/home/SGXSDK文件夹下

5. SGX SDK软件会在输入的路径下建立一个sgxsdk文件夹,并将SDK安装到该文件夹中,这里是:/home/SGXSDK/sgxsdk SGX SDK软件会在输入的路径下建立一个sgxsdk文件夹,并将SDK安装到该文件夹中

6. 将SGX SDK设置到环境变量中:source /home/SGXSDK/sgxsdk/environment.  

7. SDK会在/home/SGXSDK/sgxsdk目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX 

8. /home/SGXSDK/sgxsdk/SampleCode目录下包括一些SGX例子代码,用户可以参考例子代码编写自己的程序

注意!!!每次打开命令行的时候都要进行环境变量的,否则就会出现如下错误

./app: error while loading shared libraries: libsgx_urts_sim.so: cannot open shared object file: No such file or directory

解决方案:

source /home/SGXSDK/sgxsdk/environment

第五步: 测试SGX SDK是否安装成功:

1. 进入到拷贝出的SampleEnclave文件夹中

2. 打开Makefile文件,修改SGX_SDK ?= /opt/intel/sgxsdk中的“=”后面的内容为我们的SGX SDK目录,在我这里是:SGX_SDK ?= /home/SGXSDK/sgxsdk。SGX应用程序编译时,需要使用SDK里面的库,默认SDK目录是/opt/intel/sgxsdk,我们要把它改成我们自己的目录

3.  编译程序:make

你可能感兴趣的:(SGX)