• 蓬莱enclave TEE编译和运行说明


    蓬莱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目录中,最终布局如下,

      highlighter- jboss-cli
      /dev
      ├── penglai-enclave-driver
      ├── sdk
      ├── secGear

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

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

      highlighter- brainfuck
      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目录:

    highlighter- reasonml
    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:

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

    运行demo测试

    highlighter- gradle
    cd ~/dev/sdk/demo
    ./host/host count/count

    oe中编译secGear程序

    进入~/dev/secGear目录

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

    运行demo测试

    highlighter- awk
    cd ~/dev/secGear/debug
    ./bin/secgear_helloworld
    ./bin/secgear_calculation

    __EOF__

  • 本文作者: fly
  • 本文链接: https://www.cnblogs.com/world-explorer/p/18064229
  • 关于博主: I'm Unlearned Man
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    十、DPDK协议栈之ddos和epoll
    Transformer在小目标检测上的应用
    力扣(LeetCode)算法_C++—— 快乐数
    iOS - 多线程-读写安全
    【动态规划】C++ dp子数组问题(最大/最长:环形/子数组和、乘积最大/为正数、单词拆分、子串)
    EasyExcel实现指定行列的相同内容单元格合并
    软考·系统架构师——导学
    sql 4
    Linux关于yum和vim入门的一些问题
    数据结构与算法之美学习笔记:16 | 二分查找(下):如何快速定位IP对应的省份地址?
  • 原文地址:https://www.cnblogs.com/world-explorer/p/18064229