@@ -15,7 +15,7 @@ To run SGX/TDX enclaves:
15151 . your hardware must have SGX/TDX support,
16162 . you must have the latest BIOS updates installed,
17173 . you must have SGX/TDX enabled in your BIOS,
18- 4 . you must have the Linux kernel, drivers and software components properly
18+ 4 . you must have the Linux kernel, drivers, and software components properly
1919 installed and running.
2020
2121[ Intel SGX ] : https://www.intel.com/content/www/us/en/architecture-and-technology/software-guard-extensions.html
@@ -94,19 +94,20 @@ and look for the following line:
9494
9595### DCAP Attestation
9696
97- #### Ubuntu 22 .04+
97+ #### Ubuntu 24 .04+
9898
99- A convenient way to install the AESM service on Ubuntu 22 .04 systems
100- is to use the Intel's [ official Intel SGX APT repository] ( https://download.01.org/intel-sgx/sgx_repo/ ) .
99+ A convenient way to install the AESM service on Ubuntu 24 .04 and newer systems
100+ is to use the Intel's [ official Intel SGX APT repository] .
101101
102- First add Intel SGX APT repository to your system:
102+ First, add the Intel SGX APT repository to your system:
103103
104104``` bash
105105curl -fsSL https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | sudo gpg --dearmor -o /usr/share/keyrings/intel-sgx-deb.gpg
106106echo " deb [arch=amd64 signed-by=/usr/share/keyrings/intel-sgx-deb.gpg] https://download.01.org/intel-sgx/sgx_repo/ubuntu $( lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/intel-sgx.list > /dev/null
107107```
108108
109- And then install the ` sgx-aesm-service ` , ` libsgx-aesm-ecdsa-plugin ` , ` libsgx-aesm-quote-ex-plugin ` and ` libsgx-dcap-default-qpl ` packages:
109+ Then install the ` sgx-aesm-service ` , ` libsgx-aesm-ecdsa-plugin ` ,
110+ ` libsgx-aesm-quote-ex-plugin ` and ` libsgx-dcap-default-qpl ` packages:
110111
111112``` bash
112113sudo apt update
@@ -119,6 +120,8 @@ The AESM service should be up and running. To confirm that, use:
119120sudo systemctl status aesmd.service
120121```
121122
123+ [ official Intel SGX APT repository ] : https://download.01.org/intel-sgx/sgx_repo/
124+
122125#### Configuring the Quote Provider
123126
124127The Intel Quote Provider (` libsgx-dcap-default-qpl ` ) needs to be configured in
@@ -194,7 +197,7 @@ Alternatively, an easy way to install and run the AESM service on a [Docker](htt
194197system is to use [ our AESM container image] ( https://github.com/oasisprotocol/oasis-core/pkgs/container/aesmd ) .
195198
196199Executing the following command should (always) pull the latest version of our
197- AESMD Docker container, map the SGX devices and ` /var/run/aesmd ` directory
200+ AESMD Docker container, map the SGX devices and ` /var/run/aesmd ` directory,
198201and ensure AESM is running in the background (also automatically started on boot):
199202
200203``` bash
@@ -240,7 +243,7 @@ provisioning process uses UEFI variables to communicate with the BIOS. In
240243addition the ** SGX Auto MP Registration** BIOS configuration setting should be
241244set to _ enabled_ .
242245
243- ##### Ubuntu 22 .04+
246+ ##### Ubuntu 24 .04+
244247
245248To provision and register your multi-socket system you need to install the Intel
246249SGX Multi-Package Registration Agent Service as follows (assuming Intel's SGX
@@ -300,67 +303,31 @@ installation steps above and you have a working SGX environment**!
300303### Host OS setup
301304
302305The following section contains summarized instructions for setting up an
303- environment for running ROFL node and other TDX services on Ubuntu 24.04 or
304- later. Check out the official [ Canonical TDX repository] for details.
305-
306- [ Canonical TDX repository ] : https://github.com/canonical/tdx
306+ environment for running ROFL node and other TDX services on Ubuntu 26.04 or
307+ newer. Check out the official [ Canonical TDX howto] for details.
307308
308- 1 . Add the following TDX PPAs to your APT sources and the keyring:
309-
310- ``` shell
311- sudo add-apt-repository ppa:kobuk-team/tdx-release
312- sudo add-apt-repository ppa:kobuk-team/tdx-attestation-release
313- sudo apt update
314- ```
315- 2 . Install the TDX quote generation service and QEMU for running
316- guest virtual machines:
309+ 1 . Install the TDX quote generation service from the Intel's SGX APT
310+ repository and QEMU for running guest virtual machines:
317311
318312 ``` shell
319313 sudo apt install tdx-qgs qemu-utils qemu-system-x86
320314 ```
321315
322- 3 . Install a special TDX-enabled Linux kernel:
323-
324- ``` shell
325- sudo apt install linux-image-intel
326- ```
327-
328- 3 . Disable ACPI S3 (add kernel parameter: ` nohibernate ` ):
316+ 2 . Disable ACPI S3 and enable TDX (add kernel parameters:
317+ ` nohibernate kvm_intel.tdx=1 ` ):
329318
330319 ```
331- sed -i -E "s/GRUB_CMDLINE_LINUX=\"(.*)\"/GRUB_CMDLINE_LINUX=\"\1 nohibernate \"/g" /etc/default/grub
320+ sed -i -E "s/GRUB_CMDLINE_LINUX=\"(.*)\"/GRUB_CMDLINE_LINUX=\"\1nohibernate kvm_intel.tdx=1 \"/g" /etc/default/grub
332321 update-grub
333322 ```
334323
335- 4 . Make sure the non-root user running Oasis-node is a member of ` sgx ` ,
324+ 3 . Make sure the non-root user running Oasis-node is a member of ` sgx ` ,
336325 ` sgx_prv ` and ` kvm ` groups on host (access to ` /dev/sgx* ` , ` /dev/kvm* ` and
337326 ` /dev/*vsock* ` devices).
338327
339- 5 . Reboot your system and select the new ` -intel ` kernel .
328+ 4 . Reboot your system.
340329
341- :::tip
342-
343- If you don't have access to the grub selector during machine startup, you can
344- also detect and set the correct default kernel by executing the script below
345- with elevated privileges:
346-
347- ``` bash
348- export KERNEL_RELEASE=$( apt show " linux-image-intel" 2>&1 | gawk ' match($0, /Depends:.* linux-image-([^, ]+)/, a) {print a[1]}' )
349- if [ -z " ${KERNEL_RELEASE} " ]; then
350- echo " ERROR : unable to determine kernel release"
351- exit 1
352- fi
353- MID=$( awk ' /Advanced options for Ubuntu/{print $(NF-1)}' /boot/grub/grub.cfg | cut -d\' -f2)
354- KID=$( awk " /with Linux $KERNEL_RELEASE /" ' {print $(NF-1)}' /boot/grub/grub.cfg | cut -d\' -f2 | head -n1)
355- cat > /etc/default/grub.d/99-tdx-kernel.cfg << EOF
356- GRUB_DEFAULT=saved
357- GRUB_SAVEDEFAULT=true
358- EOF
359- grub-editenv /boot/grub/grubenv set saved_entry=" ${MID} >${KID} "
360- update-grub
361- ```
362-
363- :::
330+ [ Canonical TDX howto ] : https://ubuntu.com/server/docs/how-to/virtualisation/intel-tdx/
364331
365332### Check TDX Setup
366333
0 commit comments