LibOS Gramine安装

news2024/11/28 1:57:34

文章目录

  • 参考资料
  • 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.15以上。

// 更新 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/668593.html

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

相关文章

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK将相机图像写入相机内存(C#) Baumer工业相机Baumer工业相机BGAPISDK和相机内存的技术背景Baumer工业相机通过BGAPISDK将相机图像写入相机内存功能1.引用合适的类文件2.通过BGAPISDK将相机图像写入相机内存功能…

ADManager Plus:提升企业管理效率的强大利器

导语: 在当今数字化时代,企业管理的重要性不言而喻。有效的企业管理可以提高生产力、优化业务流程,并促进组织的持续增长。而ADManager Plus作为一款功能强大的企业管理工具,为企业提供了全面的解决方案,帮助企业管理…

从0到1精通自动化测试,pytest自动化测试框架,Fixture之conftest.py与yield实现teardown(四)

目录 一、Fixture之conftest.py 1、Fixture优势 2、fixture参数传入(scope”function”) 3、conftest.py配置 二、Fixture之yield实现teardown 1、scope“module” 2、yield执行teardown 3、yield遇到异常 4、addfinalizer终结函数 一、Fixture…

【云原生•监控】基于Prometheus的云原生集群监控(理论+实践)-01

【云原生•监控】基于Prometheus的云原生集群监控(理论实践)-01 前言 「笔者已经在公有云上搭建了一套临时环境,可以先登录体验下:」 http://124.222.45.207:17000/login 账号:root/root.2020 云原生监控挑战 Prometheus 是用 Go 语言编写&am…

FreeRTOS实时操作系统(四)中断任务管理

系列文章目录 文章目录 系列文章目录前言中断优先级FreeRTOS中的中断管理一系列中断管理寄存器中断配置寄存器中断屏蔽寄存器 中断管理实战 前言 跟着正点原子学习一下中断管理,正好之间没有总结过,还有些地方不清楚。 中断优先级 中断的工作方式就不介…

Oracle的DCL、DDL、DML语言学习使用——oracle入门学习(一)

Oracle的DCL、DDL、DML语言学习使用 前言1.SQL Plus1.1 命令行SQL PLUS使用sqlplus /nologsqlplus / as sysdba 1.2 oracle自带SQL PLUS使用1.3 sys和system用户的区别 2. Oracle的体系结构3.DCL语言什么是DCL语言3.1 查看数据文件位置和表空间3.2 创建表空间3.3 删除表空间3.4…

鉴源实验室丨TBOX通讯模组AT指令测试

作者 | 李伟 上海控安安全测评部总监 来源 | 鉴源实验室 引言:上一篇文章我们讲了整车的OTA升级测试(详解车载设备FOTA测试),本篇我们介绍在车载零配件上比较少见却很实用的测试:通讯模组的AT(Attention)指…

总结Nginx的安装、配置与设置开机自启

在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装。 一、Nginx安装 1、基于APT源安装 sudo apt-get install nginx 安装好的文件位置: /usr/sbin/nginx:主程序 /etc/nginx:存放配置文件 /us…

高压放大器可以驱动电机吗

高压放大器可以驱动电机。事实上,高压放大器在许多应用中都是电机控制的核心部件之一。高压放大器可以将输入信号转换为高电压和高电流,从而驱动电动机。 一、高压放大器的原理 高压放大器是一种电子设备,用于将低功率信号转换为高功率信号。…

云原生之深入解析如何在Kubernetes下快速构建企业级云原生日志系统

一、概述 ELK 是三个开源软件的缩写,分别表示 Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个 FileBeat,它是一个轻量级的日志收集处理工具 (Agent),Filebeat 占用资源少,适合于在各个服务器上搜集日志后传输…

Lombok你不知道的用法

Lombok是大家经常用的一款工具,它可以帮我们减少很多重复代码的书写,但是我们对它的使用,可能更多局限于实体类的编写,比如说通过Data注解实现减少getter/setter/toString等方法的编写,其实它还有更多的注解功能&#…

美依礼芽破圈!小红书数据解读,如何拨动二次元心弦?

今年,二次元存在感爆棚。新世代下二次元群体愈发壮大,不少博主发布二次元内容、品牌也试图融入二次元圈。那么,如何与之打成一片呢?今天,通过小红书数据,我们来解读二次元的内容方向。 点赞破8亿&#xff0…

【每日一题】1595. 连通两组点的最小成本

【每日一题】1595. 连通两组点的最小成本 1595. 连通两组点的最小成本题目描述解题思路 1595. 连通两组点的最小成本 题目描述 给你两组点,其中第一组中有 size1 个点,第二组中有 size2 个点,且 size1 > size2 。 任意两点间的连接成本…

对象的构造

问题 对象中成员变量的初始值是多少&#xff1f; 成员变量的初始值 #include <stdio.h>class Test { private:int i;int j; public:int getI() { return i; }int getJ() { return j; } };Test gt;int main() {printf("gt.i %d\n", gt.getI());printf("…

UE中使用Editor Utility Widget创建编辑器工具

在UE中可以使用EditorUtilityWidget创建编辑器面板工具&#xff0c;方便平时的开发。在UE4中使用编辑器UI需要开启对应插件&#xff0c;而UE5中则默认启用&#xff0c;下面就来学习一下。 1.UI创建 1.1.在Content Browser中右键&#xff0c;找到Editor Utilities即可创建编辑…

[MySQL]不允许你不会SQL语句之查询语句

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

分享几个AI绘图的学习网址

AI绘图是一种使用人工智能技术来创建图形和图像的技术。 从技术角度来看&#xff0c;AI绘图是一个非常有趣和不断发展的领域。随着人工智能技术的不断进步&#xff0c;AI绘图也在不断地发展和创新&#xff0c;现在已经成为数字艺术领域中的一个重要分支。 AI绘图的出现也为许多…

2023年的深度学习入门指南(17) - 深度学习的硬件加速技术

2023年的深度学习入门指南(17) - 深度学习的硬件加速技术 有了前面的知识之后&#xff0c;想必大家对于算力需求的理解已经越来越深刻了。 除了使用CPU&#xff0c;GPU这样的通用器件之外&#xff0c;采用专用的硬件来进行加速是一个大家都能想到的选择。 其中的代表器件就是…

Docke是什么,一文带你了解

Docker的优势、与虚拟机技术的区别、三个重要概念和架构及工作原理详细讲解 随着云计算和容器化技术的发展&#xff0c;Docker作为一种轻量级的容器化技术&#xff0c;受到了越来越多的关注和应用。本文将详细介绍Docker的优势、与虚拟机技术的区别、三个重要概念和架构及工作…

memcpy 和 memmove的模拟实现

文章目录 1.函数的介绍 2.模拟实现 文章内容 1.函数的介绍 memcpy指的是C和C使用的内存拷贝函数&#xff0c;函数原型为void *memcpy(void*dest,void*src, size_t count)&#xff1b;函数的功能是从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中&#xff0c;即从…