首页 > 其他分享 >蓬莱enclave TEE编译和运行说明

蓬莱enclave TEE编译和运行说明

时间:2024-03-10 15:22:06浏览次数:24  
标签:enclave TEE dev secGear 编译 蓬莱 penglai sdk

蓬莱enclave-spmp 编译和运行说明

蓬莱是一个RISC-V TEE系统,其设计具有安全性,高性能和可扩展性。基于PMP的OpenSBI版本的蓬莱Enclave使用可以参考下文,具体仓库地址为:https://github.com/Penglai-Enclave/Penglai-Enclave-sPMP

penglai编译环境准备

  1. 创建~/dev目录,将sdk、penglai-enclave-driver、secgear目录放置在~/dev目录中,最终布局如下,

    ~/dev
    ├── penglai-enclave-driver
    ├── sdk
    ├── secGear
    

    该sdk和secGear路径与下文cmake编译secGear时指定的蓬莱sdk路径参数相关,不建议修改

  2. 安装内核模块编译相关依赖:

    dnf install -y kernel-devel kernel-source cmake g++ 
    
    
  3. 在RISC-V下编译secGear需要Ocaml等依赖环境,如果不能通过软件源安装,则需要自行编译并指定路径。目前我们已经准备预编译的Ocaml包来简化这个过程,用户可以直接从 https://ipads.se.sjtu.edu.cn:1313/d/6a464e02cd3d4c1bafb0/ 下载已经编译好的opam工具,解压后将opam.tar.gz拷贝至~/目录并解压。

对应仓库:

编译penglai-enclave-driver

进入penglai-enclave-driver目录:

cd ~/dev/penglai-enclave-driver
#modify source path
sed -i 's|make -C ../openeuler-kernel/ ARCH=riscv M=$(PWD) modules|make -C /usr/lib/modules/$(shell uname -r)/build ARCH=riscv M=$(PWD) modules|' Makefile > /dev/null 2>&1
make -j$(nproc)
insmod penglai.ko

oe中编译sdk目录中相关库和demo

进入~/dev/sdk目录编译penglai-sdk:

cd ~/dev/sdk
./replace_compiler_prefix.sh
PENGLAI_SDK=$(pwd) make -j8

运行demo测试

cd ~/dev/sdk/demo
./host/host count/count

oe中编译secGear程序

进入~/dev/secGear目录

cd ~/dev/secGear && source environment && mkdir -p debug && cd debug
cmake -DENCLAVE=PL -DSDK_PATH=/root/dev/sdk .. && make && make install

运行demo测试

cd ~/dev/secGear/debug
./bin/secgear_helloworld
./bin/secgear_calculation

标签:enclave,TEE,dev,secGear,编译,蓬莱,penglai,sdk
From: https://www.cnblogs.com/world-explorer/p/18064229

相关文章

  • gitee使用
    可以在本地建一个目录在gitee建立一个仓库,建立完仓库之后gitee很温馨地给了如何使用git绑定仓库的命令,别忘了看然后本地使用git命令1、>gitinit2、>gitremoteaddorigingit@gitee.com:your_name/your_repo.git3、>gitadd.4、>gitcommit-m"firstcommit"5、>gitp......
  • 新电脑装编程配置(jdk、MySQL、navicat、idea、Maven、gitee、环境配置)
    一、JDK(java运行环境,不安装不能在自己电脑上运行java语言)1.打开安装包     2.选择安装目录(建议选择非系统盘)      3.安装JRE(最好和JDK分开文件夹、建议选择非系统盘)     4.提示安装成功     配置环境变量:JAVA......
  • vscode+gitee+picgo实现稳定图床
    目录:目录目录:1.为什么使用vscode+gitee+picgo实现完美图床2.安装VSCode2.1安装VSCode软件及相关插件3.安装picgo4.准备Gitee图床5.配置相关设置尾声1.为什么使用vscode+gitee+picgo实现完美图床为什么要选择VSCode+PicGo+Gitee主要是平时写文章的平台,要么是收会员费......
  • 解决Puppeteersharp 被检测到的方法, 顺带学习了js如何实现 模拟点击拖动事件
    varlaunchOptions=newLaunchOptions{Headless=false,DefaultViewport=null,IgnoreHTTPSErrors=true,ExecutablePath=path+"\\.local-chromium\\chrome-win\\chr......
  • Youth可以是一个Child,是一个Teenager,是一个Young Adult; 但是Teenager就是介于13岁-19
    Youth可以是一个Child,是一个Teenager,是一个YoungAdult;但是Teenager就是介于13岁-19岁的小孩。  新时代青年要与时代同频共振_ 让青春同时代共振peer和peers的区别Peer和peers的区别主要在于它们的用法和所指的上下文环境。以下是它们的主要区别:......
  • 初中英语优秀范文100篇-094A volunteer labor-一次公益劳动
    PDF格式公众号回复关键字:SHCZFW094记忆树1Whenitcomestothevolunteerlabor,thewords“meaningfulandhelpful”willcometomymind.翻译当谈及志愿劳动时,我总会想到“有意义且有帮助”这两个词。简化记忆劳动句子结构Whenitcomestothevolunteerla......
  • 查询pytest --version报错 AttributeError: module ‘collections‘ has no attribute
     卸载pytest及关联的插件先查询一下pytest及对应关联的插件 pipuninstallcoloramaexceptiongroupiniconfigpackagingpluggytomliallure-pytestpytest-allure-adaptorpytest回车,每次都回复Y,同意卸载 再重新安装pytestpipinstallpytest-ihttp://pypi.douba......
  • 初中英语优秀范文100篇-082I want to volunteer in a nursing home-我想在养老院做志
    PDF格式公众号回复关键字:SHCZFW082记忆树1Haveyoueverbeenavolunteerbefore?翻译你以前做过志愿者吗?简化记忆做过句子结构整个句子是一个疑问句,因为它以助动词“have”开头,并且句子的结尾是问号。主语you-句子的主语是人称代词助动词Have-现在完成时......
  • 使用Git向Gitee仓库推送项目的完整流程
    1.安装git如果没有特殊需求,直接下一步即可;安装链接如下:Git-Downloads(git-scm.com)2.在Gitee上新建仓库,初始化仓库3.保存仓库的链接,如下图标记所示4.在需要推送的项目文件夹中右键选择“OpenGitBashhere”5.初始化git,使用的命令如下gitinit初始化成功后......
  • Caused by: java.lang.IllegalStateException: A unix domain socket connection requ
    Causedby:java.lang.IllegalStateException:Aunixdomainsocketconnectionrequiresepollorkqueueandneitherisavailable出现这个错误,首先确保自己的操作系统是否支持epoll,或者kqueue。如果支持。请导入netty的大库,lettuce中好像缺失了一部分,我怀疑是这是怀疑,......