Ubunt20.04 安装 Gramine

news2024/10/6 12:19:58

文章目录

  • 参考资料
  • Gramine安装
  • 运行`helloworld`
  • 升级kernel到5.15

参考资料

Gramine Quick start

Gramine安装

Gramine安装要求:

  • Linux 内核版本至少为 5.11(启用 SGX 驱动程序)
    如果是5.4.0-150-generic版本,则可以参考《Install Linux kernel with patched FSGSBASE》使kernel支持FSGSBASE;
    或者参考《Ubuntu 20.04 更新到 Linux Kernel 5.15》升级kernel到 ≥5.11。
  • 必须安装和配置英特尔 SGX PSW 和(可选)英特尔 DCAP。

安装过程如下:

sudo curl -fsSLo /usr/share/keyrings/gramine-keyring.gpg https://packages.gramineproject.io/gramine-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/gramine-keyring.gpg] https://packages.gramineproject.io/ $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/gramine.list

sudo curl -fsSLo /usr/share/keyrings/intel-sgx-deb.asc https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-sgx-deb.asc] https://download.01.org/intel-sgx/sgx_repo/ubuntu $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/intel-sgx.list

sudo apt-get update
sudo apt-get install gramine

运行helloworld

sudo apt-get install gcc make  # for Ubuntu distribution
git clone --depth 1 --branch v1.4 https://github.com/gramineproject/gramine.git
cd gramine/CI-Examples/helloworld

不使用SGX编译

make
gramine-direct helloworld

使用SGX

make SGX=1
gramine-sgx helloworld

问题:error: Gramine with Linux-SGX backend requires support for FSGSBASE CPU instructions in the host kernel. Please update your system. private@baas-node4:~/codes/tee/gramine/CI-Examples/helloworld$

解决方法:

  • 方法1:需要配置CPU支持FSGSBASE功能,参考文档《Install Linux kernel with patched FSGSBASE》
  • 方法2:或者升级kernel到5.11以上,参考文档《Ubuntu 20.04 更新到 Linux Kernel 5.15》

升级kernel到5.15

因为使用的Gramine要求kernel在5.11以上。慎用该方法,会导致其他许多问题。因为我的是空服务器,所以采用该方法。

// 更新 repo 列表
sudo apt update
// 升级系统和软件(可选)
sudo apt upgrade -y
// 重启
sudo reboot

// 列出可用的 5.15 内核版本
apt list linux-headers-5.15.*-*-generic linux-image-5.15.*-*-generic

// 其中:
// Install kernel-generic:通用内核,一般 PC 及 Server
// Install low-latency kernel:低延迟内核,适用于工业嵌入式系统(Industrial embedded systems)

// 指定版本即可,比如当前为 5.15.0-46
sudo apt install linux-headers-5.15.0-46-generic linux-image-5.15.0-46-generic

// 重启后生效
sudo reboot

uname -a

升级完kernel之后原来使用dkms安装的sdk可以卸载了。因为从kernel 5.11开始已经默认安装了SGX驱动。

参考文档:

  • Intel_SGX_SW_Installation_Guide_for_Linux
    在这里插入图片描述
  • Intel SGX driver issue with i5-7300U CPU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神秘的临时对象

下面的程序输出什么?为什么? 程序意图: 在 Test() 中以 0 作为参数调用 Test(int i) 将成员变量 mi 的初始值设置为 0 运行结果: 成员变量 mi 的值为随机值 构造函数是一个特殊的函数 是否可以直接调用? 是否可以…

濮阳社工百站千室暖万家 | “品味端午,传承文明”儿童活动

端午节是我国传统的民俗节日,也是中华民族的重要节日之一,为了让幼儿了解和感受这一节日的文化内涵,让孩子们在愉快的氛围中感受中华传统文化的魅力。2023年6月20日,范县城关镇社工站于范县未来双语幼儿园开展了“品味端午&#x…

哪些方法可以帮助你更有效地管理时间和提高工作效率?

如何更有效地管理时间和提高工作效率? 在现代社会,时间是最宝贵的资源之一。每个人都希望能够更好地管理时间,提高工作效率,从而更好地完成工作和生活。以下是一些方法,可以帮助您更有效地管理时间和提高工作效率。 …

H3C IRF基本内容概述

IRF IRF:Intelligent Resilient Framework,即智能弹性架构,是H3C专有的设备虚拟化技术,将实际物理设备虚拟化为逻辑设备供用户使用。 核心思想:将多台设备通过IRF物理端口连接在一起,进行必要的配置后&am…

Android 实现在图片上画标注框

之前是用glide加载然后在图片上画标注框是有问题的所以换了另外一种方式 思路:1.先把网络图片下载到本地之后画标注框 最后再压缩图片 及展示 上代码: 下载图片: public class NetWorkUtils {public static InputStream getImageInputStr…

LeetCode - #84 柱状图中最大的矩形(Top 100)

文章目录 前言1. 描述2. 示例3. 答案题解 1题解 2 关于我们 前言 本题为 LeetCode 前 100 高频题 本题由于没有合适答案为以往遗留问题,最近有时间将以往遗留问题一一完善。 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者&am…

机器学习(三)线性回归原理

上述考虑的问题,我们会得到一个式子,即:Yθ1X1θ2X2。但该线性公式没办法拟合所有的数据点,如下图。 这里“θ0”作为偏置项,在二维平面里,即为截距。因此,上述公式“Yθ1X1θ2X2”即可修改为“…

深入源码解析 ReentrantLock、AQS:掌握 Java 并发编程关键技术

前言Lock重入锁synchronizedReentrantLock ReentrantReadWriteLock 读写锁ReentrantLock 实现原理AQSAQS 内部实现Node 内部结构Node 变更过程添加节点释放节点 ReentrantLock 类源码分析时序图锁竞争核心方法NonfairSync#lockAQS#acquireReentrantLock.NonfairSync#tryAcquire…

js的 Babel原理

简介 babel是一个JavaScript编译器,可以将ES2015 转换为向后兼容的JavaScript代码, Babel的原理是将JavaScript代码分为三个阶段: 解析, 转换和输出 1. 解析阶段 Babel首先会使用 Babylon 解析器将输出的 ES2015diamagnetic解析成抽象语法树(AST), 抽象语法树是 一种JSON形式…

端午节,不能只知道吃吃吃.....玩玩玩......

系列文章目录 作者:i阿极 作者简介:数据分析领域优质创作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒…

FWI 地震数据的认识

目录 1、数据来源。 1)SEG 系列。 2)OpenFWI 系列。 2、数据量,尺寸。 1) SEG 包含两个数据集:SEGSaltData 和 SimulateData。 2)OpenFWI 包含12个数据集: 3、地震数据对应的观测系统。…

Redis原理 - IO详解

原文首更地址,阅读效果更佳! Redis原理 - IO详解 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-IO.html 用户空间与内核空间 任何Linux 系统的发行版,其系统内核都是 Linux 。我们的应用都需要通过 Linux 内核与硬…

02py游戏开发基础

版本 pygame 2.4.0 (SDL 2.26.4, Python 3.8.2) Hello from the pygame community. https://www.pygame.org/contribute.html Python开发基础 Pygame常用模块 background_image_filename "bg.jpg"#设置图像文件名称 mouse_image_filename "ship.bmp"# 将…

JVM优化00

JVM优化 0.目标 了解下我们为什么要学习JVM优化掌握jvm的运行参数以及参数的设置掌握jvm的内存模型(堆内存)掌握jmap命令的使用以及通过MAT工具进行分析掌握定位分析内存溢出的方法掌握jstack命令的使用掌握VisualJVM工具的使用 1.为什么学习JVM优化 …

LeetCode - #82 删除排序链表中的重复元素 II

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…

异常的介绍与处理

目录 第七章 异常 1.异常 2.处理方法 2.1.try-catch 2.2.多重catch块 2.3.finally 2.4.throw 与 throws 2.5.程序分析 3.自定义异常 内容仅供学习交流,如有问题请留言或私信!!!!! 有空您就点点赞…

【计算机视觉】计算机视觉的简单入门代码介绍(含源代码)

文章目录 一、介绍二、项目代码2.1 导入三方包2.2 读取和展示图片2.3 在图像上绘画2.4 混合图像2.5 图像变换2.6 图像处理2.7 特征检测 一、介绍 计算机视觉是一门研究计算机如何理解和解释图像和视频的学科。 它的目标是让计算机能够模拟人类视觉系统,让它们能够识…

Vivado 下 LED 灯闪烁实验

目录 Vivado 下 LED 灯闪烁实验 1、简介 2、实验环境 3、实验任务 4、硬件设计 5、程序设计 5.1、LED 闪烁模块代码 5.2、Vivado 仿真验证 5.2.1、编写 TB 仿真代码 6、下载验证 6.1、添加约束文件 .xdc 6.2、下载验证 注意:一定要先把下载器的一端连接…

FDM3D打印系列——2、一些基础概念

大家好,我是阿赵。 在买3D打印机之前,一般都会很迷茫,不知道3D打印机是怎样工作的,也不知道有哪些地方需要注意。上一篇文章通过打印一个模型,完整的体验了一次FDM打印3D模型的过程。这里解释一些在3D打印里面的比较基…

PMP考试自学可以吗?

PMP考试不建议自学,听劝,不该省的别省。 PMP现在没有自学了,今年3月的考试报了培训班的同学都说难,培训班的资源老师的专业,怎么也比自己单打独斗强吧,真的报培训班省事很多。 PS:网上说包过的…