## Ubuntu 20.04安裝Intel sgx
官網的安裝連接配接:https://github.com/intel/linux-sgx
安裝順序:sgx dirver ->sgx sdk-> sgx psw
安裝sgx driver
準備工作
- 檢查是否安裝了比對的核心頭檔案
- 安裝比對的核心頭檔案
生成驅動子產品
/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
準備工作*
- 安裝編譯SGX SDK要用到的工具
sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev git cmake perl
- 安裝編譯SGX PSW要用到的工具
sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip
- 從倉庫擷取源碼
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
- 把準備好的工具清單添加到全局變量中,友善之後編譯工作的展開
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