天天看點

Ubuntu 20.04安裝Intel sgx

## Ubuntu 20.04安裝Intel sgx

官網的安裝連接配接:https://github.com/intel/linux-sgx

安裝順序:sgx dirver ->sgx sdk-> sgx psw

安裝sgx driver

準備工作

  1. 檢查是否安裝了比對的核心頭檔案
  1. 安裝比對的核心頭檔案

生成驅動子產品

/linux-sgx-driver-master# make
           

安裝驅動

sudo mkdir -p "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"    
sudo cp isgx.ko "/lib/modules/"`uname -r`"/kernel/drivers/intel/sgx"    
sudo sh -c "cat /etc/modules | grep -Fxq isgx || echo isgx >> /etc/modules"    
sudo /sbin/depmod
sudo /sbin/modprobe isgx
           

查詢是否成功

lsmod | grep isgx
           

安裝SGX SDK

準備工作*

  1. 安裝編譯SGX SDK要用到的工具
sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev git cmake perl

           
  1. 安裝編譯SGX PSW要用到的工具
sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip

           
  1. 從倉庫擷取源碼
git clone https://github.com/intel/linux-sgx.git   
#如果出現了問題:fatal: unable to access 'https://github.com/intel/linux-sgx.git/': GnuTLS recv error (-110): The TLS connection was non-properly terminated.
#指令換成:git clone git://github.com/intel/linux-sgx.git 
cd linux-sgx && make preparation

           
  1. 把準備好的工具清單添加到全局變量中,友善之後編譯工作的展開
sudo cp external/toolset/ubuntu20.04/{as,ld,ld.gold,objdump} /usr/local/bin
           

再用下面這個語句檢查是不是添加成功

which as ld ld.gold objdump
           

編譯SGX SDK和SGX SDK安裝工具(installer)

1.進入./linux-sgx檔案夾(其實應該也是一直在這個檔案夾下),指令行執行

make sdk
           

再指令行執行:

make sdk_install_pkg
           

成功運作的話,在linux/installer/bin檔案夾下會有一個sgx_linux_x64_sdk_${version}.bin檔案生成

安裝SGX SDK

為什麼先安裝SDK而不是像官網說的先去吧SGX PSW也編譯好呢?别問,問就是報錯。如果先去編譯psw,它會傳回一個…/sgxsdk不存在的錯誤,說明psw需要依賴SGX SDK,或者它需要根據安裝好的SDK構造一些依賴關系,是以,先安裝SDK吧。

安裝好需要用到的工具

sudo apt-get install build-essential python
           

無腦運作以下指令:

cd linux/installer/bin
./sgx_linux_x64_sdk_${version}.bin
           

這裡特别提示存在一個坑,就是它詢問是否存在目前檔案夾的時候,最好選擇“no”,然後将SGX SDK安裝在/opt/intel/ 檔案夾下。

安裝SGX PSW

make psw
make psw_install_pkg
cd psw/ae/le
make
           

成功運作的話,在linux/installer/bin檔案夾下會有一個sgx_linux_x64_psw_${version}.bin檔案生成

cd linux/installer/bin
./sgx_linux_x64_psw_${version}.bin
           

SGX PSW 提供了3個服務,分别是launch、EPID-based attestation和Algorithm agnostic attestation,從2.8版本開始,PSW整體拆分成這三個小服務,可以分别安裝:

sudo apt-get install libsgx-launch libsgx-urts
 sudo apt-get install libsgx-epid libsgx-urts
 sudo apt-get install libsgx-quote-ex libsgx-urts
 sudo apt-get install libsgx-dcap-ql 
           

繼續閱讀