注意:
硬件需求仅当你安装sgx驱动和psw时需要,安装sgx sdk并不需要硬件支持。
其实硬件不支持也无所谓,可以在模拟环境下编写测试SGX程序。
如果硬件不支持,那么可以选择跳过驱动安装和PSW安装,
编写makefile时,SGX_MODE=SIM
Reference:
官方文档:https://download.01.org/intel-sgx/linux-1.8/docs/Intel_SGX_SDK_Installation_Guide_Linux_1.8_Open_Source.pdf
Ubuntu16.04——Intel sgx安装 https://blog.csdn.net/q2240441362/article/details/80343962
Intel® 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® SGX SDK for Ubuntu* 16.04.1、进行下载
$ sudo apt-get installbuild-essential
sudo apt-get install alien
2.3.1 在 https://registrationcenter.intel.com/en/forms/?productid=2859 进行注册,注册后自动下载。
2.3.2 进入下载文件夹,编译 iclsClient:
sudo alien --scripts iclsClient-1.45.449.12-1.x86_64.rpm
会在文件夹中生成同名的deb文件。
2.3.3 安装iclsClient:
sudo dpkg -i iclsclient_1.45.449.12-2_amd64.deb
2.4.1 下载dynamic-application-loader-host-interface源码:https://github.com/intel/dynamic-application-loader-host-interface
2.4.2 解压下载得到的源码并进入到文件夹中
unzip Filename.zip
2.4.3 安装必要的工具:
sudo apt-get install uuid-dev libxml2-dev cmake libsystemd-dev
2.4.4 进入到解压后的文件夹,编译并安装JHI服务:
cd dynamic-application-loader-host-interface-master
cmake .;make;sudo make install;sudo systemctl enable jhi
(不切换到root权限,但在终端的
~/下载
目录下执行chmod 777
命令然后sudo
(因为SDK下载到了~/下载
目录下,要在这里执行chmod 777
,否则提示没有那个文件或目录)
进入到~/下载
目录:
cd ~/下载
为下载得到的SDK文件添加可执行权限:
chmod 777 sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin
安装SGX SDK:
sudo ./sgx_linux_ubuntu16.04.1_x64_sdk_2.0.100.40950.bin
安装过程中需要选择安装的文件夹,可以输入yes安装到当前文件夹,也可以输入no选择自己想安装到的文件夹。我选择了yes,因为选择no没有成功安装到别的文件夹。所以我的sdk安装到了~/下载
目录。SGX SDK软件会在~/下载
路径下建立一个sgxsdk文件夹,并将SDK安装到该文件夹中。
将SGX SDK设置到环境变量中(每次打开命令行都要设置):
source ~/下载/sgxsdk/environment
SGX SDK会在~/下载/sgxsdk
目录下生成uninstall.sh
脚本,用户可以使用该脚本卸载SGX SDK。
~/下载/sgxsdk/SampleCode
目录下包括一些SGX例子代码,用户可以参考例子代码编写自己的程序。
安装到~/下载
目录下的sgxsdk
文件夹不可更改,因此我把整个sgxsdk
文件夹复制到了另一个文件夹中(我复制到了/home/SGXSDK
)。
在/home/SGXSDK/sgxsdk/SampleCode/SampleEnclave
中修改Makefile
文件两个值:
(1)修改SGX_SDK ?= /opt/intel/sgxsdk中的“=”后面的内容为我们的SGX SDK安装目录,在我这里是:SGX_SDK ?= ~/下载/sgxsdk
。SGX应用程序编译时,需要使用SDK里面的库,默认SDK目录是/opt/intel/sgxsdk,我们要把它改成我们自己的目录。
(2)修改SGX_MODE ?= SIM
,硬件不支持,进行模拟运行。
终端进入到~/SGXSDK/sgxsdk/SampleEnclave
目录下(cd或在文件夹中右键在终端打开,进行环境变量设置:
source ~/下载/sgxsdk/environment
执行测试:
make