ubuntu16.04 SGX安装
在Ubuntu 16.04下安装Intel SGX驱动、平台软件和SDK的步骤如下, 原文出自:https://blog.csdn.net/qiu_pengfei/article/details/78795697 ,中间我遇到一些小问题,希望会对大家有所帮助。
第一步:下载SDK、SGX驱动和平台软件:
- 网址: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、Intel® SGX Driver for Linux OSIntel® SGX Platform Software for Ubuntu 16.04.1进行下载就行

第二步:安装必要的工具:sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev
第三步:安装SGX SDK前的准备工作:
安装必要的工具:sudo apt-get install build-essential
安装alien:sudo apt-get install alien
下载并安装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
安装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权限:
切换到root用户:sudo -i
安装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驱动
- 安装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平台软件
- 安装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
版权声明:本文为weixin_43111966原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。