当前位置: 首页 > news >正文

ubuntu20.4 sgx环境配置

一、driver安装

1.在该下载地址将3个.bin文件下载下来,下载地址:https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-server/

2.到下载文件夹下输入下面命令,以赋予.bin文件的执行权限

sudo chmod 777 sgx_linux_x64_driver_2.11.054c9c4c.bin

3.运行该bin文件,完成驱动安装

二、准备阶段

1.安装编译SGX SDK要用到的工具

sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python-is-python3 libssl-dev git cmake perl

2.安装编译SGX PSW要用到的工具
sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip pkgconf libboost-dev libboost-system-dev protobuf-c-compiler libprotobuf-c-dev lsb-release

3.从仓库获取源码,到下载文件夹下,输入
git clone https://github.com/intel/linux-sgx.git

cd linux-sgx && make preparation

此处可能会因为网络原因执行失败,多次尝试执行make preparation后一般会成功

4.把准备好的工具列表添加到全局变量中,方便之后编译工作的展开。到linux-sgx文件夹下,输入以下命令:

sudo cp external/toolset/{current_distr}/* /usr/local/bin

将{current_distr}替换为当前的操作系统。

再用下面这个语句检查是不是添加成功:
which as ld objdump

5.编译SGX SDK和SGX SDK安装工具(installer),进入linux-sgx文件夹,输入以下命令

make sdk

运行完成后,再输入以下命令
make sdk_install_pkg

成功运行的话,在linux-sgx/linux/installer/bin文件夹下会有一个sgx_linux_x64_sdk_${version}.bin文件生成。

三、sdk安装

1.安装好需要用到的工具,输入以下命令
sudo apt-get install build-essential python

2.安装sdk,进入linux-sgx文件夹,输入以下两条命令

cd linux/installer/bin
./sgx_linux_x64_sdk_${version}.bin
注意:运行第二条命令时,它询问是否安装在当前文件夹的时候,最好选择“no”,然后输入/opt/intel/, 即将SGX SDK安装在/opt/intel/文件夹下。

3.安装完成后,根据提示输入source命令。

四、psw安装

1.命令行运行以下命令添加下载Intel sgx psw的下载路径

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

注意,与ubuntu18.04不同,ubuntu20为ubuntu focal main。

2.进入如下网址下载密钥intel-sgx-deb.key

https://download.01.org/intel-sgx/sgx_repo/ubuntu/

3.进入下载目录,通过如下命令添加进仓库

sudo apt-key add intel-sgx-deb.key

运行后等一会儿看到【ok】就是运行成功。

4.更新一下apt-get的列表

sudo apt-get update

如果系统报错deb无法识别,进入/etc/apt/sources.list.d目录,修改intel-sgx.list文件,去掉deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main两侧的引号。

5.分别安装SGX PSW 提供的3个服务
分别是launch、EPID-based attestation和Algorithm agnostic attestation,输入以下命令

sudo apt-get install  libsgx-urts
sudo apt-get install libsgx-launch 
sudo apt-get install libsgx-epid  
sudo apt-get install libsgx-quote-ex  
sudo apt-get install libsgx-dcap-ql

五、测试是否安装成功

进入安装目录(我的是/opt/intel/sgxsdk),再进入/SampleCode/SampleEnclave目录

1.首先准备一下编译环境,输入如下命令

source /opt/intel/sgxsdk/environment

2.编译

make

3.运行

./app

结果返回如下

Checksum(0x0x7ffda4d55720, 100) = 0xfffd4143
Info: executing thread synchronization, please wait...
Info: SampleEnclave successfully returned.
Enter a character before exit ...

恭喜,环境配置成功!

最后十分感谢我所参考的博主分享的教程

https://blog.csdn.net/myt1018/article/details/124393622

其余参考链接

https://github.com/intel/linux-sgx

https://download.01.org/intel-sgx/sgx-dcap/1.14/linux/docs/Intel_SGX_SW_Installation_Guide_for_Linux.pdf

另一个参考的安装方式

顺序一定要对,否则需要全部卸载重装

3、安装driver、SDK、PSW

  • 安装driver
sudo apt install -y build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev git cmake perl pkg-config libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper reprepro unzipgit clone -b sgx_diver_2.14 https://github.com/intel/linux-sgx-driver.gitcd linux-sgx-driver && make 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/depmodsudo /sbin/modprobe isgx
  • 安装SDK
git clone -b sgx_2.14 https://github.com/intel/linux-sgx.gitcd linux-sgx && make preparationsudo cp external/toolset/ubuntu18.04/{as,ld,ld.gold,objdump} /usr/local/binmake sdk_install_pkgsudo ./linux/installer/bin/sgx_linux_x64_sdk_2.14.100.2.bin << EOF   
no   
/opt/intel   
EOF   source /opt/intel/sgxsdk/environmentecho "source /opt/intel/sgxsdk/environment" >> ~/.bashrc
  • 安装PSW
make psw_install_pkgsudo ./linux/installer/bin/sgx_linux_x64_psw_2.14.100.2.bin

相关文章:

ubuntu20.4 sgx环境配置

一、driver安装 1.在该下载地址将3个.bin文件下载下来&#xff0c;下载地址&#xff1a;https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-server/ 2.到下载文件夹下输入下面命令&#xff0c;以赋予.bin文件的执行权限 sudo chmod 777 sgx_linux_x64…...

01.图片下拉触底分页加载每张图片

需求点分析 图片列表滚动触底的逻辑 将图片id组成的一维数组根据指定个数一组拆分为二维数组定义一个索引初始值为-1&#xff0c;图片列表滚动触底&#xff0c;索引值自增&#xff0c;然后将拆分好的图片id二位数组对应的数据读出来放到图片id的数组图片根据列表新增的id取读取…...

“精准学习嵌入式开发:明确目标,提升技能“

嵌入式领域涵盖广泛&#xff0c;不可能一次性掌握所有知识。因此&#xff0c;明确学习目标和方向非常重要。选择感兴趣且与职业发展相关的领域进行深入学习是明智之举。 嵌入式技术在不断发展&#xff0c;过去与现在存在差异。选择学习当前行业的主流技术和趋势是明智选择。掌…...

C语言--联合体-共用体

有时候同一个内存空间存放类型不同&#xff0c;不同类型的变量共享一块空间 像结构体&#xff0c;但是有区别 1、 结构体元素有各自单独空间&#xff0c; 共用体元素共享空间&#xff0c;空间大小由最大类型确定 同一块空间&#xff0c;有时候存放char类型、有时候存放int型&am…...

echarts实现中国地图下钻进入下一级行政区(地图钻取)

获取geo数据&#xff1a; 可以使用node爬虫获取数据 最好多爬几遍&#xff0c;因为有时候会获取错误 实现逻辑 拥有geo数据后 请求geo数据注册地图 registerMap配置echarts增加事件监听&#xff08;点击事件&#xff09; 如果点击了&#xff0c;回到第一步。功能就是循环以…...

从0到1学会手写操作系统,我只用了2个小时

黑马嵌入式教程再出力作 重磅发布第三弹 《自己动手写嵌入式操作系统》 问&#xff1a;嵌入式开发不是只学单片机就行&#xff1f;为什么要学操作系统&#xff1f; 答&#xff1a;年轻人&#xff0c;别把路走窄了。且听我说↓↓↓ 嵌入式产品分为两大类&#xff1a;一类简单…...

软件包管理

一、rpm管理软件包 1、获得rpm的软件包 1&#xff09;去官网安装不推荐 找自己光盘有没有这个包 装好需要的包之后装qq 2&#xff09;去镜像站点&#xff0c;推荐 二、yum/dnf管理软件包 解决软件的依赖关系&#xff0c;可以自动的去服务器下载软件包 1、使用yum软件包 使用…...

【逗老师的PMP学习笔记】9、项目资源管理

目录 一、规划资源管理1、【关键工具】责任分配矩阵RACI矩阵2、【关键工具】组织理论2.1、马斯洛需求层次理论2.2、麦格雷戈-X-Y理论2.3、赫兹伯格双因素理论 3、【关键输出】资源管理计划4、【关键输出】团队章程 二、估算活动资源1、【关键输入】资源日历 三、获取资源1、【关…...

react-virtualized可视化区域渲染的使用

介绍 github地址&#xff1a;https://github.com/bvaughn/react-virtualized 实例网址&#xff1a;react-virtualized如果体积太大&#xff0c;可以参考用react-window。 使用 安装&#xff1a; yarn add react-virtualized。在项目入口文件index.js中导入样式文件&#xff…...

navicat连接postgresql报错

navicat连接postgresql报错 navicat连接postgresql报错 现象 有小伙伴告诉我 安装了新的postgresql 使用navicat连接&#xff0c;报错 ERROR: column "datlastsysoid" does not existLINE 1: SELECT DISTINCT datlastsysoid FROM pg database column “datlastsy…...

题目:灾后重建

【题目描述】 B地区在地震过后&#xff0c;所有村庄都造成了一定的损毁&#xff0c;而这场地震却没对公路造成什么影响。但是在村庄重建好之前&#xff0c;所有与未重建完成的村庄的公路均无法通车。换句话说&#xff0c;只有连接着两个重建完成的村庄的公路才能通车&#xff…...

Vue 插槽 slot

solt 插槽需要分为 2.6.0 版本以上和 2.6.0版本以下。 2.6.0 版本以下的 slot 插槽在&#xff0c;2.x版本将继续支持&#xff0c;但是在 Vue 3 中已被废弃&#xff0c;且不会出现在官方文档中。 作用 插槽 prop 允许我们将插槽转换为可复用的模板&#xff0c;这些模板可以基于…...

【C/C++】C语言位图操作实例(亲测)

C语言中的位图操作通常用于处理大量的二进制数据&#xff0c;例如图像处理、压缩算法等。以下是一些C语言中的位图操作实例&#xff1a; 设置位图中的某一位 void set_bit(unsigned char *bitmap, int bit) {bitmap[bit / 8] | (1 << (bit % 8)); }这个函数将位图中的第…...

Mahout教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Mahout 是 Apache Software Foundation&#xff08;ASF&#xff09; 旗下的一个开源项目&#xff0c;提供一些可扩展的机器学习领域经典算法的实现&#xff0c;旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现&#xff0c;包括聚类、分类、推荐…...

wxwidgets Ribbon使用wxRibbonToolBar实例

wxRibbonToolBar就是工具栏&#xff0c;一下是实现的效果&#xff0c;界面只是功能展示&#xff0c;没有美化 实现代码如下所示&#xff1a; MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(800, 600)) …...

8.9黄金最新行情走势分析及短线交易策略

近期有哪些消息面影响黄金走势&#xff1f;黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;周三&#xff08;8月9日&#xff09;现货黄金维持震荡&#xff0c;目前交投于1930美元附近&#xff0c;隔日现货黄金盘中震荡下行&#xff0c;失守1930关口并在美盘时段…...

VB+SQL房地产评估系统设计与实现

摘 要 房地产评估系统对房地产评估信息进行全面现代化管理。但一直以来人们使用传统人工的方式进行评估,这种管理方式存在着许多缺点,如:效率低、计算量大,容易出错。另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断…...

用AOP实现前端传参时间的时区转化

用AOP实现前端传参时间的时区转化 新增注解新增AOP切面类Controller传参字段添加注解结束 新增注解 Documented Target({FIELD,METHOD,PARAMETER,ANNOTATION_TYPE}) Retention(RUNTIME) public interface MyDateFormatDeserializer {String pattern() default "yyyy-MM-d…...

mybatis There is no getter for property named ‘*‘ in ‘class java.lang.String

mybatis There is no getter for property named car_port_ids in class java.lang.String 出现这种错误我这边是mapper.xml子查询字段不对导致的 我把查询结果的列的字段放进去结果不识别car_port_ids可能我这种字段本身就有问题 技术博客 http://idea.coderyj.com/ 1.解决 &…...

Mac终端前总会出现 (base) 字样解决

Mac安装了anaconda之后&#xff0c;终端前总会出现 (base) 字样&#xff0c;显示如下&#xff1a; (base) tinghoudeiMac ~ 具体原因是 安装了anaconda后&#xff0c;每次启动终端都会启动anaconda的base环境。 解决办法 设置anaconda 不自启base环境就好了&#xff1a; 禁用…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...