注意,最好升级到centso8以上
一、安装SGX驱动
1.下载
https://github.com/intel/linux-sgx-driver
2.编译
将目录更改为驱动程序路径,然后输入以下命令:
$ make
3.要安装Intel(R)SGX驱动程序,请以root特权输入以下命令:
$ sudo mkdir -p "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"
$ sudo cp isgx.ko "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"
$ sudo sh -c "cat /etc/modules | grep -Fxq isgx || echo isgx >> /etc/modules"
$ sudo /sbin/depmod
$ sudo /sbin/modprobe isgx
4.卸载sgx驱动
卸载Intel(R)SGX驱动程序之前,请确保aesmd服务已停止
$ sudo /sbin/modprobe -r isgx
$ sudo rm -rf "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"
$ sudo /sbin/depmod
$ sudo /bin/sed -i '/^isgx$/d' /etc/modules
二、安装SDK
1.下载:
下载地址:https://01.org/intel-software-guard-extensions/downloads
选择:Intel(R) SGX Installers for CentOS* 8.1进行下载
2.安装:
复制到/opt/soft目录,使用root用户执行
$ chmod u+x sgx_linux_x64_sdk_2.11.100.2.bin
$ sudo ./sgx_linux_x64_sdk_2.11.100.2.bin
安装过程中需要选择安装的文件夹,可以输入yes安装到当前文件夹,也可以输入no选择自己想安装到的文件夹。
我这里选择no,会让你输入指定的路径,我放到了/home/SGXSDK,SGX SDK软件会在/home/SGXSDK路径下建立一个sgxsdk文件夹,并将SDK安装到该文件夹中。
3.测试:
在/home/SGXSDK/sgxsdk/SampleCode/SampleEnclave中修改Makefile文件两个值:
1)修改SGX_SDK ?= /opt/intel/sgxsdk中的“=”后面的内容为我们的SGX SDK安装目录,在我这里是:SGX_SDK ?=
/home/SGXSDK/sgxsdk。SGX应用程序编译时,需要使用SDK里面的库,默认SDK目录是/opt/intel/sgxsdk,我们要把它改成我们自己的目录。
2)修改SGX_MODE ?= SIM
,硬件不支持,进行模拟运行。
然后执行:
$ make
4.添加库路径
在运行样例代码时,尽管编译没有报错,但是在运行时我出现了以下错误
libsgx_urts.so: cannot open shared object file: No such file or directory
首先查看该文件是否存在(../sgxsdk/lib64目录下),一般来说安装成功,文件都是存在的,解决办法:
进入目录
$ cd /etc/ld.so.conf.d
添加文件
$ vi sgx.conf
并填写../sgxsdk/lib64路径,保存退出,最后运行ldconfig即可
$ sudo ldconfig
重新运行你的程序就可以了
或者直接修改/etc/ld.so.conf的内容在最后添加库加载的新的路径即可,最后执行:
$ sudo ldconfig