Ubuntu 22.04 and 24.04 MLNX_EN driver install fail

I am trying to do a test install of the MLNX_EN drivers and keep running into the same error. error: unknown type name ‘uuid_le’ uuid_le uuid

OS: Ubuntu 22.04 and Ubuntu 24.04, both as guest VM
I do not have any Infiniband hardware installed yet.

I installed the public repo for mellanox_mlnx_en
I added the gpg for Nvidia
sudo apt update
sudo apt install mlnx-en-eth-only

Building module:
Cleaning build area...(bad exit status: 2)
./scripts/mlnx_en_patch.sh --kernel 6.6.0-14-generic --kernel-sources /lib/modules/6.6.0-14-generic/build -j2 && make -j2..........................................................................................................................................................................................(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.6.0-14-generic (x86_64)
Consult /var/lib/dkms/mlnx-en/5.8/build/make.log for more information.
Processing triggers for man-db (2.12.0-3) ...
Processing triggers for libc-bin (2.38-3ubuntu1) ...

make.log

In file included from include/linux/pci.h:27,
                 from /var/lib/dkms/mlnx-en/5.8/build/include/linux/pci.h:7,
                 from /var/lib/dkms/mlnx-en/5.8/build/compat/pci.c:2:
/var/lib/dkms/mlnx-en/5.8/build/include/linux/mod_devicetable.h:725:9: error: unknown type name ‘uuid_le’
  725 |         uuid_le uuid;
      |         ^~~~~~~
  CC [M]  /var/lib/dkms/mlnx-en/5.8/build/compat/mmu_notifier.o
make[4]: *** [scripts/Makefile.build:251: /var/lib/dkms/mlnx-en/5.8/build/compat/pci.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:488: /var/lib/dkms/mlnx-en/5.8/build/compat] Error 2
make[2]: *** [/usr/src/linux-headers-6.6.0-14-generic/Makefile:1917: /var/lib/dkms/mlnx-en/5.8/build] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.6.0-14-generic'
make: *** [makefile:139: kernel] Error 2
(END)

The above is the output from Ubuntu 24.04 with kernel 6.6, but Ubuntu 22.04 with the earlier 6.5 kernel produces the same results.

In file included from include/linux/pci.h:27,
                 from /var/lib/dkms/mlnx-en/5.8/build/include/linux/pci.h:7,
                 from /var/lib/dkms/mlnx-en/5.8/build/compat/pci.c:2:
/var/lib/dkms/mlnx-en/5.8/build/include/linux/mod_devicetable.h:725:9: error: unknown type name ‘uuid_le’
  725 |         uuid_le uuid;
      |         ^~~~~~~
  CC [M]  /var/lib/dkms/mlnx-en/5.8/build/compat/mmu_notifier.o
make[4]: *** [scripts/Makefile.build:251: /var/lib/dkms/mlnx-en/5.8/build/compat/pci.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [scripts/Makefile.build:488: /var/lib/dkms/mlnx-en/5.8/build/compat] Error 2
make[2]: *** [/usr/src/linux-headers-6.5.0-15-generic/Makefile:2037: /var/lib/dkms/mlnx-en/5.8/build] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-15-generic'
make: *** [makefile:139: kernel] Error 2
(END)

Am I missing a package? I’ve tried installing uuid and uuid-dev, but get the same results. Is it because there is no Nvidia/Mellanox hardware present? Is it because I’m doing it in a VM?

It’s not the VM and it’s not your lack of HW present, because I get the same error on Ubuntu 22.04 w/ kernel 6.5.0-15 running on bare metal with a ConnectX-4 card plugged in and working with the mlx5_core drivers.

I had some time to spend on this and it turns out you can (probably) build the driver if you downgrade to kernel 6.1.

I got it to successfully compile but ran out of space on /boot during the rest of the process. I don’t know why past me thought a 500MB boot partition would be enough, but here we are.

I’ll clean up the mess and continue later this week.

I was able to get it to successfully compile with the 6.2 kernel, but 6.3 and later all fail. I guess that’s some progress. Now I need to do a bare metal install with a ConnectX card and make sure it’s all still happy.

Is this just one of those situations where we have to wait for Nvidia to fix the installer for the newer kernels?

Also, no problems with space on /boot. Only using 6.2MB, so I’m not sure what is causing your problem.

My problem was an unreasonably small boot volume whose cup runneth over.

If you’re planning on using a device that’s not in LTS mode, (i.e. ConnectX-5 or newer), I had no problems installing the drivers for those on kernel 6.5 from the downloadable .iso.

I used 24.01 which was released last week.

I can confirm that the 24.01 drivers will also compile for the 6.6 kernel, but (perhaps not surprisingly) not the 6.8 unstable kernel. From what I have read, the 6.8 kernel is planned for the final release of Ubuntu 24.04, so that is why I’m testing it.

1 Like

OFED officially supports Ubuntu 24.04 from OFED 24.04-0.6.6.0.
OFED 24.04-0.6.6.0 is released in May 2024. (unlucky, it’s not in Feb).
Now we can try to use the newer OFED version for Ubuntu 24.04.

For OFED 5.8 and Ubuntu 22.04, the OFED 5.8 only officially supports the Ubuntu 22.04 with kernel 5.15.0-25-generic.

Generally, ‘uuid_le’ is defined in linux/uuid.h. Ensure that the compiler can include the header file.

1 Like

@Levei_Luo Looks like uuid_le was moved to MEI namespace in the newer kernels.

include/linux/uuid.h used to import “uapi/linux/uuid.h” which had uuid_le definition in the previous releases.

5.15 Kernel: uuid.h « linux « include - ~ubuntu-kernel/ubuntu/+source/linux/+git/jammy - [no description]

6.8 Kernel: uuid.h « linux « include - ~ubuntu-kernel/ubuntu/+source/linux/+git/noble - [no description]

Reference: