Ubuntu18.04-desktop搭建SGX SDK2.9开发环境

  • 安装Ubuntu18.04-desktop

在网上下载Ubuntu18.04-desktop镜像,制作光盘或U盘进行安装。

下载地址:http://mirrors.163.com/ubuntu-releases/18.04.4/

在安装过程中我选择的最小安装,但是要勾选安装图形和一些硬件软件等。或者正常安装也是一样的。

如果安装了Ubuntu18.04-server,没有图形界面,后期还要自己安装图形界面,有点麻烦。

 

  • 更新国内源

国内源比较多,自己选择一个比较快的就行。我选择的163的,感觉速度比较快。

更改步骤:

  • 确定自己Ubuntu18.04的代号

$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 18.04.4 LTS

Release: 18.04

Codename: bionic

  • 备份sources.list

$ sudo mv sources.list sources.list.bak

  • 修改sources.list

$ sudo vi sources.list

内容编辑为:

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

保存退出。

  • 更新源

$ sudo apt-get update

 

  • 下载SGX driver2.9,SDK2.9

下载地址:https://download.01.org/intel-sgx/sgx-linux/2.9/distro/ubuntu18.04-server/

 

下载图中的两个.bin文件,其中:

Intel® SGX driver: sgx_linux_x64_driver.bin

Intel® SGX SDK: sgx_linux__x64_sdk_.bin

只有64位的安装包了。

注意下载了上述两个软件包后默认是没有执行权限的,使用chmod添加执行权限。

$ chmod 755 *.bin

 

  • 安装先决条件软件

注意:SGX SDK2.9需要gcc7.3以上版本,在安装gcc的时候注意检查。

(一)安装SGX PSW先决条件

$ sudo apt-get install libssl-dev libcurl4-openssl-dev libprotobuf-dev

  • 安装SGX SDK先决条件

$ sudo apt-get install build-essential python

 

  • SGX安装卸载顺序
  • 安装顺序

1、SGX driver2.9

2、SGX PSW2.9

3、SGX SDK2.9

(二)卸载顺序

1、SGX driver2.9

2、SGX PSW2.9

3、SGX SDK2.9

 

  • 安装SGX driver2.9

安装需要root权限

$ sudo ./sgx_linux_x64_driver_2.6.0_95eaa6f.bin

安装完成后会在/opt/intel目录下多个sgxdriver目录,里面只有卸载脚本uninstall.sh。

 

  • 安装SGX PSW2.9
  • SGX PSW提供了3个服务:

1、launch

2、EPID-based attestation

3、algorithm agnostic attestation

(二)从版本2.8开始,PSW被分隔了多个安装包,用户可以自己选择需要安装的包和服务。在安装PSW2.9的时候需要连接互联网:

1、添加Ubuntu18.04源

$ echo 'deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu bionic main' | sudo tee /etc/apt/sources.list.d/intel-sgx.list

2、下载密钥

wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo apt-key add -

3、更新源

sudo apt-get update

4、安装launch service:

$ sudo apt-get install libsgx-launch libsgx-urts

5、安装EPID-based attestation service:

$ sudo apt-get install libsgx-epid libsgx-urts

6、algorithm agnostic attestation service:

$ sudo apt-get install libsgx-quote-ex libsgx-urts

在PSW安装完成后会在/opt/intel目录下会多个sgx-aesm-services目录。

 

  • 安装SGX SDK2.9

(一)安装SGX SDK2.9需要根据SDK的安装目录来决定是否需要root权限。如果想将SDK也安装在/opt/intel目录下的话:

$ sudo ./sgx_linux_x64_sdk_2.9.100.2.bin

会提示是否安装在当前目录,输入no,然后再输入目录:/opt/intel

安装完成后,会提示设置环境变量,普通用户运行下面命令:

$ source /opt/intel/sgxsdk/environment

  • 如果安装在不需要root权限的地方就不需要sudo了。
  • 安装到这里的话在SDK的安装目录下有个SampleCode的目录,我们可以测试SDK这些安装的有没有问题,但SGX程序的运行不建议使用root运行,所以可以先把SampleCode目录拷贝到普通用户目录下再测试

$ cd SampleCode/SampleEnclave

$ make

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第1张图片

 

$ ./app

 

这就说明安装成功的,

 

注意:其中make的选项比较多,可以参照SampleEnclave目录下的README.txt文件自行选择编译的选项。

 

  • 安装JDK

在Oracle官网下载JDK1.8或者更高版本。

https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

这部分可以参照网上其他人的教程,或者按下面的步骤也可以正常使用:

$ cd /opt

$ sudo mkdir java

将下载的jdk1.8解压到java目录下,然后修改/etc/profile文件,只需要在该文件的最后添加下面的内容即可:

 

修改完成后,建议重启一下机器,然后使用java -version验证:

 

如果使用source命令的话有可能会有一些问题。

 

  • 安装eclipse

下载地址:

https://mirrors.tuna.tsinghua.edu.cn/eclipse/technology/epp/downloads/release/2019-12/R/eclipse-cpp-2019-12-R-linux-gtk-x86_64.tar.gz

Eclipse版本要求是Mars1(4.5.1)以上。

下载完成后使用tar -zxvf解压就可以了,双击eclipse应该就可以正常使用了。

 

将eclipse固定在左侧收藏夹:

1.终端代码 :sudo vi /usr/share/applications/eclipse.desktop

然后在弹出的文件中道输入:

[Desktop Entry]

Encoding=UTF-8

Name=eclipse

Comment=Eclipse IDE

Exec=/usr/local/eclipse/eclipse_SDK/eclipse(路径,视自己的而定版)

Icon=/usr/local/eclipse/eclipse_SDK/icon.xpm(路径,视自己的而定)

Terminal=false

StartupNotify=true

Type=Application

Categories=Application;Development;

然后给该文件赋权:sudo chmod u+x /usr/share/applications/eclipse.desktop

这样再次打开eclipse就可以将它固定在左侧了。

 

  • 安装SGX eclipse plugin2.9

(一)下载SGX eclipse plugin2.9地址:

https://download.01.org/intel-sgx/sgx-linux/2.9/sgx_eclipse_plugin_2.9.zip

下载好后不需要解压,不需要解压,不需要解压。

  • 安装

打开eclipse,点击Help->Install New Software->Add,在弹出的Add Repository对话框中Name:可以输入Intel(R) SGX,然后点击Archive,选择刚下载的sgx_eclipse_plugin_2.9.zip

 

 

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第2张图片

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第3张图片

注意勾选的几个地方,我的已经安装过了,next无法点击了。大家点击了next后还要同意协议,最后Finish就可以了。

 

  • 测试

以上全部成功之后可以测试一下:

打开eclipse->File->Import->General->Existing Projects into Workspace,选择到SampleEnclave目录级别即可,并勾选Copy projects into workspace,

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第4张图片

 

再点击Finish即可。我的已经导入了,不能再点了。

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第5张图片

 

之后可以直接点击Build,,点击下拉框选择编译的选项,我选择的是Hardware Debug。

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第6张图片

 

右键单击app->Run as->Local C/C++ Application。

Ubuntu18.04-desktop搭建SGX SDK2.9开发环境_第7张图片

 

跟之前使用命令行的输出是一致的。

 

注意:在该项目中有可能部分文件里面会有报错的文件,但并不影响编译和执行。想要消除错误文件的话,需要右键单击项目->Properties,然后在Environment中添加SGX_SDK环境变量,再检查Paths and Symbols的Includes设置,需要有${SGX_SDK}/include选项。

 

更多的内容还在摸索学习中,欢迎讨论交流。

 

 

你可能感兴趣的:(ubuntu18.04,SGX)