[PPML] Refine SGX Driver installation doc (#6167)
* Add install from install package * Rename file to install_sgx_driver * Rename title to Install SGX Driver on Xeon Server * Add vmlinux-gdb issue
This commit is contained in:
parent
b688238068
commit
b5d7b3183c
4 changed files with 110 additions and 74 deletions
|
|
@ -185,7 +185,7 @@ subtrees:
|
|||
- file: doc/PPML/Overview/trusted_big_data_analytics_and_ml
|
||||
- file: doc/PPML/Overview/trusted_fl
|
||||
- file: doc/PPML/QuickStart/secure_your_services
|
||||
- file: doc/PPML/QuickStart/build_kernel_with_sgx
|
||||
- file: doc/PPML/QuickStart/install_sgx_driver
|
||||
- file: doc/PPML/QuickStart/deploy_intel_sgx_device_plugin_for_kubernetes
|
||||
- file: doc/PPML/QuickStart/trusted-serving-on-k8s-guide
|
||||
- file: doc/PPML/QuickStart/tpc-h_with_sparksql_on_k8s
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Advanced Topic
|
|||
* `Trusted Big Data Analytics and ML <trusted_big_data_analytics_and_ml.html>`_
|
||||
* `Trusted FL (Federated Learning) <trusted_fl.html>`_
|
||||
* `Secure Your Services <../QuickStart/secure_your_services.html>`_
|
||||
* `Building Linux Kernel from Source with SGX Enabled <../QuickStart/build_kernel_with_sgx.html>`_
|
||||
* `Install SGX Driver through the Installation Package <../QuickStart/install_sgx_driver.html>`_
|
||||
* `Deploy the Intel SGX Device Plugin for Kubernetes <../QuickStart/deploy_intel_sgx_device_plugin_for_kubernetes.html>`_
|
||||
* `Trusted Cluster Serving with Graphene on Kubernetes <../QuickStart/trusted-serving-on-k8s-guide.html>`_
|
||||
* `TPC-H with Trusted SparkSQL on Kubernetes <../QuickStart/tpc-h_with_sparksql_on_k8s.html>`_
|
||||
|
|
|
|||
|
|
@ -1,72 +0,0 @@
|
|||
# Building Linux Kernel from Source with SGX Enabled
|
||||
|
||||
SGX driver is merged to Linux Kernel from 5.11+. After enabling SGX feature during kernel building, we don't have to install SGX driver anymore.
|
||||
|
||||
In this guide, we show how to build Kernel 5.14 from source code and enable SGX feature on Ubuntu 18.04. You can change the kernel version, i.e., 5.14 if necessary.
|
||||
|
||||
|
||||
## Prerequisite
|
||||
|
||||
Install prerequisites for kernel build. Please follow your distro instruction or your favorite way to build the kernel.
|
||||
|
||||
```
|
||||
sudo apt-get install flex bison git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache libelf-dev
|
||||
|
||||
```
|
||||
|
||||
## Main steps
|
||||
|
||||
Clone Linux Kernel source code.
|
||||
|
||||
```
|
||||
# Obtain Linux kernel source tree
|
||||
mkdir kernel && cd kernel
|
||||
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
|
||||
cd linux
|
||||
# You can change this version
|
||||
git checkout v5.14
|
||||
```
|
||||
|
||||
Build Kernel from source code with SGX enabled.
|
||||
|
||||
```
|
||||
cp /boot/config-`uname -r` .config
|
||||
yes '' | make oldconfig
|
||||
# Enable SGX and SGX KVM
|
||||
/bin/sed -i 's/^# CONFIG_X86_SGX is not set/CONFIG_X86_SGX=y/g' .config
|
||||
echo 'CONFIG_X86_SGX_KVM=y' >> .config
|
||||
make -j `getconf _NPROCESSORS_ONLN` deb-pkg
|
||||
```
|
||||
|
||||
Install kernel from deb and reboot
|
||||
|
||||
```
|
||||
cd ..
|
||||
sudo dpkg -i linux-headers-5.14.0_5.14.0-1_amd64.deb linux-image-5.14.0_5.14.0-1_amd64.deb
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Check if Kernel was installed correctly and the SGX driver is working
|
||||
|
||||
```bash
|
||||
$ uname -r
|
||||
$ ls -l /dev/ | grep sgx
|
||||
```
|
||||
|
||||
## Uninstall this kernel
|
||||
|
||||
Uninstall kernel with dpkg (if you want to change back to the previous kernel)
|
||||
|
||||
```bash
|
||||
sudo dpkg --purge linux-image-5.14.0 linux-headers-5.14.0
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
### Trouble Shooting
|
||||
|
||||
* Building on Ubuntu 5.4.X may encounter
|
||||
* "make[2]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'. Stop.". Please disable `SYSTEM_TRUSTED_KEYS`. Refer to [CONFIG_SYSTEM_TRUSTED_KEYS](https://askubuntu.com/questions/1329538/compiling-the-kernel-5-11-11).
|
||||
* "make[4]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'. Stop.". Please disable `SYSTEM_REVOCATION_KEYS`.
|
||||
* In some kernels, SGX option is `CONFIG_INTEL_SGX`.
|
||||
* 5.13 Kernel may encounter nfs problem [Can't mount NFS-shares from Linux-5.13.0](https://forums.gentoo.org/viewtopic-p-8629887.html?sid=f7359b869fb71849d64f3e69bb48503a)
|
||||
* [Mellanox interface may be disabled on 5.14.0](https://bugzilla.redhat.com/show_bug.cgi?id=2014094). Changes to 5.15.5 will fix this issue.
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
# Install SGX (Software Guard Extensions) Driver for Xeon Server
|
||||
|
||||
Checklist for SGX Driver:
|
||||
|
||||
1. Please [check if your CPU has SGX feature](https://www.intel.com/content/www/us/en/support/articles/000028173/processors.html).
|
||||
2. Check if SGX feature is correctly enabled on BIOS. Please ensure enough memory and Reserved Memory Range Registers (PRMRR) are configured for SGX.
|
||||
3. Recommended OS (Operating System): Ubuntu 18.04/20.04, CentOS 8, Redhat 8.
|
||||
|
||||
Note that SGX driver has been merged to Linux Kernel from 5.11+. After enabling SGX feature during kernel building, SGX driver will be automatically enabled. So, we recommend our customers upgrade their kernel to 5.14+ with SGX enabled. See [Building Linux Kernel from Source with SGX Enabled](#building-linux-kernel-from-source-with-sgx-enabled).
|
||||
|
||||
If your data center cannot upgrade OS or kernel, then you can [Install SGX Driver through the Installation Package](#install-sgx-driver-through-the-installation-package)
|
||||
|
||||
## Building Linux Kernel from Source with SGX Enabled
|
||||
|
||||
In this guide, we show how to build Kernel 5.14 from the source code and enable SGX feature on Ubuntu 18.04/20.04. You can change the kernel version, i.e., 5.14 if necessary.
|
||||
|
||||
### Prerequisite for kernel build
|
||||
|
||||
Install prerequisites for kernel build. Please follow your distro instruction or your favorite way to build the kernel.
|
||||
|
||||
```bash
|
||||
sudo apt-get install flex bison git build-essential kernel-package fakeroot libncurses5-dev libssl-dev ccache libelf-dev
|
||||
```
|
||||
|
||||
### Main steps
|
||||
|
||||
Clone Linux Kernel source code.
|
||||
|
||||
```bash
|
||||
# Obtain Linux kernel source tree
|
||||
mkdir kernel && cd kernel
|
||||
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
|
||||
cd linux
|
||||
# You can change this version
|
||||
git checkout v5.14
|
||||
```
|
||||
|
||||
Build Kernel from source code with SGX enabled.
|
||||
|
||||
```bash
|
||||
cp /boot/config-`uname -r` .config
|
||||
yes '' | make oldconfig
|
||||
# Enable SGX and SGX KVM
|
||||
/bin/sed -i 's/^# CONFIG_X86_SGX is not set/CONFIG_X86_SGX=y/g' .config
|
||||
echo 'CONFIG_X86_SGX_KVM=y' >> .config
|
||||
make -j `getconf _NPROCESSORS_ONLN` deb-pkg
|
||||
```
|
||||
|
||||
Install kernel from deb and reboot
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
sudo dpkg -i linux-headers-5.14.0_5.14.0-1_amd64.deb linux-image-5.14.0_5.14.0-1_amd64.deb
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
Check if Kernel was installed correctly and the SGX driver is working
|
||||
|
||||
```bash
|
||||
uname -r
|
||||
ls -l /dev/ | grep sgx
|
||||
```
|
||||
|
||||
### Uninstall this kernel
|
||||
|
||||
Uninstall kernel with dpkg (if you want to change back to the previous kernel)
|
||||
|
||||
```bash
|
||||
sudo dpkg --purge linux-image-5.14.0 linux-headers-5.14.0
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
## Install SGX Driver through the Installation Package
|
||||
|
||||
In this guide, we show how to install SGX driver with the installation package. This allows customers to enable SGX without upgrading their OS or kernel. More details in [Intel_SGX_SW_Installation_Guide_for_Linux.pdf](https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_SGX_SW_Installation_Guide_for_Linux.pdf).
|
||||
|
||||
### Prerequisite for SGX Driver
|
||||
|
||||
```bash
|
||||
sudo apt-get install build-essential ocaml automake autoconf libtool wget python libssl-dev dkms
|
||||
```
|
||||
|
||||
### Download & Install SGX Driver binary file
|
||||
|
||||
```bash
|
||||
wget - https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu20.04-server/sgx_linux_x64_driver_1.41.bin
|
||||
chmod 777 sgx_linux_x64_driver_1.41.bin
|
||||
sudo ./sgx_linux_x64_driver_1.41.bin
|
||||
```
|
||||
|
||||
Check if the SGX driver is installed correctly
|
||||
|
||||
```bash
|
||||
ls -l /dev/ | grep sgx
|
||||
```
|
||||
|
||||
If you encounter any issue during installation, please open an issue on [Intel(R) Software Guard Extensions Data Center Attestation Primitives](https://github.com/intel/SGXDataCenterAttestationPrimitives)
|
||||
|
||||
## Trouble Shooting
|
||||
|
||||
* Building on Ubuntu 5.4.X may encounter
|
||||
* "make[2]: *** No rule to make target 'debian/certs/benh@debian.org.cert.pem', needed by 'certs/x509_certificate_list'. Stop.". Please disable `SYSTEM_TRUSTED_KEYS`. Refer to [CONFIG_SYSTEM_TRUSTED_KEYS](https://askubuntu.com/questions/1329538/compiling-the-kernel-5-11-11).
|
||||
* "make[4]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'. Stop.". Please disable `SYSTEM_REVOCATION_KEYS`.
|
||||
* "dpkg-source: error: cannot represent change to vmlinux-gdb.py:". Remove `vmlinux-gdb.py`, then build again.
|
||||
* In some kernels, SGX option is `CONFIG_INTEL_SGX`.
|
||||
* 5.13 Kernel may encounter nfs problem [Can't mount NFS-shares from Linux-5.13.0](https://forums.gentoo.org/viewtopic-p-8629887.html?sid=f7359b869fb71849d64f3e69bb48503a)
|
||||
* [Mellanox interface may be disabled on 5.14.0](https://bugzilla.redhat.com/show_bug.cgi?id=2014094). Changes to 5.15.5 will fix this issue.
|
||||
* Error 404 when downloading binary file. Please go to [intel-sgx-linux](https://download.01.org/intel-sgx/latest/linux-latest/distro) for the latest download link.
|
||||
Loading…
Reference in a new issue