文章目录
- 参考资料
- Gramine安装
- 运行`helloworld`
- 升级kernel到5.15
参考资料
Gramine Quick start
Gramine安装
Gramine安装要求:
- Linux 内核版本至少为 5.11(启用 SGX 驱动程序)
如果是5.4.0-150-generic
版本,则可以参考《Install Linux kernel with patched FSGSBASE》使kernel支持FSGSBASE;
或者参考《Ubuntu 20.04 更新到 Linux Kernel 5.15》升级kernel到 ≥5.11。 - 必须安装和配置英特尔 SGX PSW 和(可选)英特尔 DCAP。
安装过程如下:
sudo curl -fsSLo /usr/share/keyrings/gramine-keyring.gpg https://packages.gramineproject.io/gramine-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/gramine-keyring.gpg] https://packages.gramineproject.io/ $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/gramine.list
sudo curl -fsSLo /usr/share/keyrings/intel-sgx-deb.asc https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-sgx-deb.asc] https://download.01.org/intel-sgx/sgx_repo/ubuntu $(lsb_release -sc) main" \
| sudo tee /etc/apt/sources.list.d/intel-sgx.list
sudo apt-get update
sudo apt-get install gramine
运行helloworld
sudo apt-get install gcc make # for Ubuntu distribution
git clone --depth 1 --branch v1.4 https://github.com/gramineproject/gramine.git
cd gramine/CI-Examples/helloworld
不使用SGX编译
make
gramine-direct helloworld
使用SGX
make SGX=1
gramine-sgx helloworld
问题:error: Gramine with Linux-SGX backend requires support for FSGSBASE CPU instructions in the host kernel. Please update your system. private@baas-node4:~/codes/tee/gramine/CI-Examples/helloworld$
解决方法:
- 方法1:需要配置CPU支持FSGSBASE功能,参考文档《Install Linux kernel with patched FSGSBASE》
- 方法2:或者升级kernel到5.11以上,参考文档《Ubuntu 20.04 更新到 Linux Kernel 5.15》
升级kernel到5.15
因为使用的Gramine要求kernel在5.15以上。
// 更新 repo 列表
sudo apt update
// 升级系统和软件(可选)
sudo apt upgrade -y
// 重启
sudo reboot
// 列出可用的 5.15 内核版本
apt list linux-headers-5.15.*-*-generic linux-image-5.15.*-*-generic
// 其中:
// Install kernel-generic:通用内核,一般 PC 及 Server
// Install low-latency kernel:低延迟内核,适用于工业嵌入式系统(Industrial embedded systems)
// 指定版本即可,比如当前为 5.15.0-46
sudo apt install linux-headers-5.15.0-46-generic linux-image-5.15.0-46-generic
// 重启后生效
sudo reboot
uname -a
升级完kernel之后原来使用dkms安装的sdk可以卸载了。因为从kernel 5.11开始已经默认安装了SGX驱动。
参考文档:
- Intel_SGX_SW_Installation_Guide_for_Linux
- Intel SGX driver issue with i5-7300U CPU