Ubuntu16.04——Intel sgx安装

以下的安装步骤是我自己亲身操作后写的,每个人情况不同,可能会遇到我没有的问题,但总的步骤类似,本文主要目的是为其他人提供参考。

官方安装文档给出了更加详细的说明和步骤,文档在:https://download.01.org/intel-sgx/linux-1.8/docs/Intel_SGX_SDK_Installation_Guide_Linux_1.8_Open_Source.pdf

安装一共三部分(本文安装的为64位):

安装sgx、sdk和psw(platform software)

包括三个安装包

Sgx驱动安装包

Psw安装包

Sgx sdk安装包

 

下载安装包

Intel(R) SGXdriver: sgx_linux_x64_driver.bin

Intel(R) SGX PSW: sgx_linux_x64_psw_.bin

Intel(R) SGX SDK: sgx_linux_x64_sdk_.bin

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

选择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  下载


注意:NOTE Only 64-bit installation packagesare available.

 

硬件需求

l 6th Generation Intel® Core™ Processor ornewer

l Intel® SGX option enabled in BIOS

注意

This is required when you need to installthe Intel® SGX driver or Intel® SGX PSW, but not required when you install theIntel® SGX SDK installer.

硬件需求仅当你安装sgx驱动和psw时需要,安装sgx sdk并不需要硬件支持。其实硬件不支持也无所谓,可以在模拟环境下编写测试SGX程序。如果你的硬件不支持,那么可以选择跳过驱动安装和PSW安装,编写makefile时,SGX_MODE=SIM

 

系统要求:

Ubuntu* Desktop-16.04-LTS 64bits

Red Hat* Enterprise Linux Server release7.2 64bits(安装参考官方文档)

CentOS* 7.3.1611 64bits(安装参考官方文档)

 

安装sgx psw前需要安装一些工具:

On Ubuntu* 16.04: 

$ sudo apt-get installlibssl-dev libcurl4-openssl-dev libprotobuf-dev

 

安装sgx sdk前准备:

On Ubuntu* 16.04: 

$ sudo apt-get installbuild-essential

为了使用trusted platform service,按照以下进行安装:

Ensure mei_me driver is enabled and /dev/mei0 exists.

Download [iclsClient] and install it using the following commands:

On Ubuntu* 16.04:

打开网址https://software.intel.com/en-us/sgx-sdk/download  点击64-bit client,并进行注册,注册后自动下载

注册后需要验证邮箱,我验证完成邮箱后还是不能下载,可能需要一段时间,我可不想等下去,在github上找到了其他下载地址

http://registrationcenter-download.intel.com/akdlm/irc_nas/11414/iclsClient-1.45.449.12-1.x86_64.rpm


$sudo apt-get install alien

$sudo alien --scriptsiclsClient-1.45.449.12-1.x86_ 64.rpm

$sudo dpkg -iiclsclient_1.45.449.12-2_amd64.deb

从[dynamic-application-loader-host-interfface]工程下载源码,通过以下指令从源码安装JHI服务 

下载地址:https://github.com/intel/dynamic-application-loader-host-interface

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

On Ubuntu* 16.04:

$ sudo apt-get install uuid-dev libxml2-devcmake

$ cmake .;make;sudo make install;sudosystemctl enable jhi

 

安装

首先需要root权限来安装驱动和psw。按照以下顺序安装

1. Intel(R) SGX driver

2. Intel(R) SGX PSW

3. Intel(R) SGX SDK

按照以下步骤安装所有包

1 安装sgx驱动

$ sudo ./sgx_linux_x64_driver_.bin

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

2 安装psw

$ sudo ./sgx_linux_x64_psw_<自己的版本号>.bin

3 安装sgx 的sdk

$ ./sgx_linux_x64_sdk_<自己的版本号>.bin

安装过程中会询问是否安装在当前文件夹下,如果同意输入yes按下enter,输入no按下enter并输入自定义路径来更换安装目录。

安装结束后,sgx sdk被安装在[自定义路径/sgxsdk]中,运行命令source 自定义路径/sgxsdk/environment 来配置环境变量。Sgxsdk目录下的uninstall.sh 可以卸载sdk。

注意:

psw与sdk的默认安装目录不同。

sgx默认安装在/usr/lib.

sdk安装在[User InputPath]/sgxsdk/lib64.

 

注意:

样例代码在 r [User Input Path]/sgxsdk/SampleCode目录中,有着只读权限,可以通过拷贝副本来修改

 测试SGX SDK是否安装成功:

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

进入拷贝出的文件夹中

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

编译程序:make SGX_MODE=SIM (我的硬件不支持,通过模拟运行,SGX_MODE=HW是硬件模式,makefile中默认为硬件模式)

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

注意:在运行样例代码时,尽管编译没有报错,但是在运行时我出现了以下错误

libsgx_urts_sim.so:cannot open sharedobject file: No such file or directory

首先查看该文件是否存在(../sgxsdk/lib64目录下),这是linux下so库经常会出现的错误,尽管上面配置了环境变量还是有这个问题,解决办法:

sudo gredit /etc/ld.so.conf

添加你的库路径 例如我的 ./home/root/sgxsdk/lib64 

保存后

sudo ldconfig即可

重新运行你的程序就可以了

 

卸载intel sgx通过运行uninstall.sh脚本来卸载,卸载驱动和psw需要root权限,卸载按照以下顺序:

1. Uninstall the Intel(R) SGX SDK

2. Uninstall the Intel(R) SGX PSW

3. Uninstall the Intel(R) SGX driver

你可能感兴趣的:(Ubuntu16.04——Intel sgx安装)