Ubuntu 16.04下Intel SGX驱动、平台软件和SDK安装

本文作者:邱朋飞

本文介绍了在Ubuntu 16.04下安装Intel SGX驱动、平台软件和SDK的步骤。在安装过程中,参考了Intel提供的SGX驱动、平台软件和SDK安装文档,安装文档给出了更加详细的说明和步骤,文档在:https://download.01.org/intel-sgx/linux-1.8/docs/Intel_SGX_SDK_Installation_Guide_Linux_1.8_Open_Source.pdf

1.下载SDK、SGX驱动和平台软件:

1.1 网址:https://01.org/zh/intel-software-guard-extensions/downloads?langredirect=1

1.2 选择Intel SGX Linux 2.0 Release下的Intel(R) SGX SDK for Ubuntu* 16.04.1、Intel(R) SGX Driver for Linux *OS、Intel(R) SGX Platform Software for Ubuntu* 16.04.1进行下载就行

2. 安装必要的工具:sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev

3. 安装SGX SDK前的准备工作:

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

3.2 安装alien:sudo apt-get install alien

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

3.3.1 点击64-bit client或者https://registrationcenter.intel.com/en/forms/?productid=2859,并进行注册,注册后自动下载

3.3.2 进入下载文件夹,编译iclsClient:sudo alien --scripts iclsClient-1.45.449.12-1.x86_64.rpm,会在文件夹中生成同名的deb文件

3.3.3 安装iclsClient:sudo dpkg -i iclsclient_1.45.449.12-2_amd64.deb

3.4 安装JHI服务:

3.4.1 下载dynamic-application-loader-host-interface源码:https://github.com/intel/dynamic-application-loader-host-interface

3.4.2 解压下载得到的源码并进入到文件夹中

3.4.3 安装必要的工具:sudo apt-get install uuid-dev libxml2-dev cmake libsystemd-dev

3.4.4 编译并安装JHI服务:cmake .;make;sudo make install;sudo systemctl enable jhi

4. 安装SGX驱动、SDK和平台软件,需要root权限:

4.1 切换到root用户:sudo -i

4.2 安装SGX驱动:

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

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

4.2.3 SGX驱动会将其设置为开机启动,并在/opt/intel/sgxdriver目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX驱动

4.3 安装SGX平台软件:

4.3.1 为下载到的平台软件文件添加可执行权限:chmod 777 sgx_linux_ubuntu16.04.1_x64_psw_2.0.100.40950.bin

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

4.3.3 SGX平台软件会在/opt/intel/sgxpsw目录下生成uninstall.sh脚本,用户可以使用该脚本卸载SGX平台软件

4.4 安装SGX SDK:

4.4.1 为下载得到的SDK文件添加可执行权限:chmod 777 sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin

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

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

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

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

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

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

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

5. 测试SGX SDK是否安装成功:

5.1 将/home/SGXSDK/sgxsdk/SampleCode下的SampleEnclave文件夹拷贝到自己的目录中

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

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

5.3 编译程序:make

5.4 执行程序:./app,成功的话,说明我们的SDK安装是正确的。

 

你可能感兴趣的:(SGX)