蓬萊enclave-spmp 編譯和運行說明 蓬萊是一個RISC-V TEE系統,其設計具有安全性,高性能和可擴展性。基於PMP的OpenSBI版本的蓬萊Enclave使用可以參考下文,具體倉庫地址為:https://github.com/Penglai-Enclave/Penglai-Enclav ...
蓬萊enclave-spmp 編譯和運行說明
蓬萊是一個RISC-V TEE系統,其設計具有安全性,高性能和可擴展性。基於PMP的OpenSBI版本的蓬萊Enclave使用可以參考下文,具體倉庫地址為:https://github.com/Penglai-Enclave/Penglai-Enclave-sPMP
penglai編譯環境準備
-
創建~/dev目錄,將sdk、penglai-enclave-driver、secgear目錄放置在~/dev目錄中,最終佈局如下,
~/dev ├── penglai-enclave-driver ├── sdk ├── secGear
該sdk和secGear路徑與下文cmake編譯secGear時指定的蓬萊sdk路徑參數相關,不建議修改
-
安裝內核模塊編譯相關依賴:
dnf install -y kernel-devel kernel-source cmake g++
-
在RISC-V下編譯secGear需要Ocaml等依賴環境,如果不能通過軟體源安裝,則需要自行編譯並指定路徑。目前我們已經準備預編譯的Ocaml包來簡化這個過程,用戶可以直接從 https://ipads.se.sjtu.edu.cn:1313/d/6a464e02cd3d4c1bafb0/ 下載已經編譯好的opam工具,解壓後將
opam.tar.gz
拷貝至~/目錄並解壓。
對應倉庫:
- penglai-enclave-drvier: https://github.com/Penglai-Enclave/Penglai-Enclave-sPMP/tree/opensbi/penglai-enclave-driver
- penglai-sdk: https://github.com/Penglai-Enclave/penglai-sdk
- penglai-secGear: https://github.com/Penglai-Enclave/Penglai-secGear/tree/oe-release
編譯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