intel / linux-sgx

Intel SGX for Linux*
https://www.intel.com/content/www/us/en/developer/tools/software-guard-extensions/linux-overview.html
Other
1.33k stars 544 forks source link

Latest Out-of-Tree Driver install fails on Ubuntu 22.04.4 and 24.04: "assignment of read-only member ‘vm_flags’" #1032

Closed joshwyant closed 6 months ago

joshwyant commented 6 months ago

Hello,

It looks like the latest driver is failing to install for me.

I'm working through the Driver Installation QuickStart instructions in the Intel SGX SW Installation Guide for Linux. I'm following the instructions for the Out-of-Tree Driver option, as I need Legacy Launch Control support for my machine.

I'm unable to install the driver, and I've tried on Ubuntu 22.04.4 and 24.04 Desktop.

According to the readme I found, the OOT version is sgx_linux_x64_driver_2.11.b6f5b4a.bin.

Here's what I get when I try to install:

$ sudo ./sgx_linux_x64_driver_2.11.b6f5b4a.bin 
Unpacking Intel SGX Driver ... done.
Verifying the integrity of the install package ... done.
Installing Intel SGX Driver ...
/tmp/sgx-driver-ciUmNZ /home/josh
install -d /opt/intel/sgxdriver/package
install -d /opt/intel/sgxdriver/scripts
install package/* /opt/intel/sgxdriver/package
install scripts/* /opt/intel/sgxdriver/scripts
/home/josh
Warning: There is no need to install additional SGX driver with in-kernel SGX support.
/opt/intel/sgxdriver/package /home/josh
make -C /lib/modules/6.5.0-28-generic/build M=/opt/intel/sgxdriver/package modules
make[1]: Entering directory '/usr/src/linux-headers-6.5.0-28-generic'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using:           gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  CC [M]  /opt/intel/sgxdriver/package/sgx_main.o
/opt/intel/sgxdriver/package/sgx_main.c: In function ‘sgx_mmap’:
/opt/intel/sgxdriver/package/sgx_main.c:112:23: error: assignment of read-only member ‘vm_flags’
  112 |         vma->vm_flags |= VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP | VM_IO |
      |                       ^~
make[3]: *** [scripts/Makefile.build:251: /opt/intel/sgxdriver/package/sgx_main.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.5.0-28-generic/Makefile:2039: /opt/intel/sgxdriver/package] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-28-generic'
make: *** [Makefile:16: default] Error 2

specifically,

/opt/intel/sgxdriver/package/sgx_main.c: In function ‘sgx_mmap’:
/opt/intel/sgxdriver/package/sgx_main.c:112:23: error: assignment of read-only member ‘vm_flags’
  112 |         vma->vm_flags |= VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP | VM_IO |
      |                       ^~

I get the same error on 24.04. I made sure the prerequisites were installed.

joshwyant commented 6 months ago

looks like this belongs under intel/linux-sgx-driver.