Mellanox drivers - connectx-4 100gb eth

so, apparently there is no driver for the mellanox connectx-4 100g ethernet cards, nvidia did not release a driver for arch or similar, and I’m at a loss for how to get them to be recognized and usable, since nothing seems to be written, that I can find at least, for arch/EOS, can anyone offer help? I have two connectx-4 cards, and a switch, and everything else needed but the dang driver to get it to initialize in EOS….

I’ve never heard of that ethernet card brand before. But I did run across this:
Getting started with ConnectX-4 100Gb/s Adapter for Linux

No idea if it will help in your situation or not. Good luck! :vulcan_salute:

trying to follow that does not help sadly, its a guide written for centos and needs the RPM system which, supposedly exists in arch from what I can find on google, but running the install script fails and I am NOT savvy enough to edit that thing to get it to work, so I”m still in the same boat sadly, but thank you, I had not stumbled on that particular one yet, though it lends the same end result of not installing.

1 Like

I can finally add that I made SOME progress due to not realizing I needed to add a tool to get it to be recognized by the system, so progress, and new errors, on two different systems running EOS. one step forward and another brick wall to the face.

log file one hidden for space savings

Summary

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [---------------------------------------------------------------------------------------] 100%
(1/1) checking package integrity [---------------------------------------------------------------------------------------] 100%
(1/1) loading package files [---------------------------------------------------------------------------------------] 100%
(1/1) checking for file conflicts [---------------------------------------------------------------------------------------] 100%
:: Running pre-transaction hooks…
(1/1) Remove upgraded DKMS modules
==> dkms remove kernel-mft-dkms/4.32.0
:: Processing package changes…
(1/1) reinstalling nvidia-mft [---------------------------------------------------------------------------------------] 100%
:: Running post-transaction hooks…
(1/4) Arming ConditionNeedsUpdate…
(2/4) Install DKMS modules
==> dkms install --no-depmod kernel-mft-dkms/4.32.0 -k 6.16.8-arch3-1
Deprecated feature: CLEAN (/usr/src/kernel-mft-dkms-4.32.0/dkms.conf)

Error! Bad return status for module build on kernel: 6.16.8-arch3-1 (x86_64)
Consult /var/lib/dkms/kernel-mft-dkms/4.32.0/build/make.log for more information.
==> WARNING: `dkms install --no-depmod kernel-mft-dkms/4.32.0 -k 6.16.8-arch3-1’ exited 10
==> ERROR: Missing 6.12.48-1-lts kernel modules tree for module kernel-mft-dkms/4.32.0.
(3/4) Running kernel-install…
Running kernel-install for 6.16.8-arch3-1
dracut[I]: Executing: /usr/bin/dracut --no-hostonly --force /efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback 6.16.8-arch3-1
dracut[I]: *** Including module: bash ***
dracut[I]: *** Including module: systemd ***
dracut[I]: *** Including module: systemd-ask-password ***
dracut[I]: *** Including module: systemd-battery-check ***
dracut[I]: *** Including module: systemd-cryptsetup ***
dracut[I]: *** Including module: systemd-initrd ***
dracut[I]: *** Including module: systemd-journald ***
dracut[I]: *** Including module: systemd-modules-load ***
dracut[I]: *** Including module: systemd-pcrphase ***
dracut[I]: *** Including module: systemd-sysctl ***
dracut[I]: *** Including module: systemd-tmpfiles ***
dracut[I]: *** Including module: systemd-udevd ***
dracut[I]: *** Including module: modsign ***
dracut[I]: *** Including module: i18n ***
dracut[I]: *** Including module: systemd-sysusers ***
dracut[I]: *** Including module: btrfs ***
dracut[I]: *** Including module: crypt ***
dracut[I]: *** Including module: dm ***
dracut[I]: *** Including module: fs-lib ***
dracut[I]: *** Including module: kernel-modules ***
dracut[I]: *** Including module: kernel-modules-extra ***
dracut[I]: *** Including module: lvm ***
dracut[I]: *** Including module: mdraid ***
dracut[I]: *** Including module: nvdimm ***
dracut[I]: *** Including module: qemu ***
dracut[I]: *** Including module: qemu-net ***
dracut[I]: *** Including module: fido2 ***
dracut[I]: *** Including module: pkcs11 ***
dracut[I]: *** Including module: hwdb ***
dracut[I]: *** Including module: lunmask ***
dracut[I]: *** Including module: resume ***
dracut[I]: *** Including module: rootfs-block ***
dracut[I]: *** Including module: terminfo ***
dracut[I]: *** Including module: udev-rules ***
dracut[I]: *** Including module: virtiofs ***
dracut[I]: *** Including module: dracut-systemd ***
dracut[I]: *** Including module: initqueue ***
dracut[I]: *** Including module: usrmount ***
dracut[I]: *** Including module: base ***
dracut[I]: *** Including module: shell-interpreter ***
dracut[I]: *** Including module: shutdown ***
dracut[I]: *** Including modules done ***
dracut[I]: *** Installing kernel module dependencies ***
dracut[I]: *** Installing kernel module dependencies done ***
dracut[I]: *** Resolving executable dependencies ***
dracut[I]: *** Resolving executable dependencies done ***
dracut[I]: *** Generating early-microcode cpio image ***
dracut[I]: *** Constructing AuthenticAMD.bin ***
dracut[I]: *** Store current command line parameters ***
dracut[I]: *** Stripping files ***
dracut[I]: *** Stripping files done ***
dracut[I]: *** Creating image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback.tmp’ ***
dracut[I]: *** Hardlinking files ***
dracut[I]: *** Hardlinking files done ***
dracut[I]: *** Creating initramfs image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback.tmp’ done ***
dracut[I]: *** Moving image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback.tmp’ to ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback’ ***
dracut[I]: *** Moving image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback.tmp’ to ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd-fallback’ done ***
dracut[I]: Executing: /usr/bin/dracut --hostonly --no-hostonly-cmdline -f /efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd 6.16.8-arch3-1
dracut[I]: *** Including module: bash ***
dracut[I]: *** Including module: systemd ***
dracut[I]: *** Including module: systemd-ask-password ***
dracut[I]: *** Including module: systemd-battery-check ***
dracut[I]: *** Including module: systemd-cryptsetup ***
dracut[I]: *** Including module: systemd-initrd ***
dracut[I]: *** Including module: systemd-journald ***
dracut[I]: *** Including module: systemd-modules-load ***
dracut[I]: *** Including module: systemd-pcrphase ***
dracut[I]: *** Including module: systemd-sysctl ***
dracut[I]: *** Including module: systemd-tmpfiles ***
dracut[I]: *** Including module: systemd-udevd ***
dracut[I]: *** Including module: i18n ***
dracut[I]: *** Including module: systemd-sysusers ***
dracut[I]: *** Including module: btrfs ***
dracut[I]: *** Including module: crypt ***
dracut[I]: *** Including module: dm ***
dracut[I]: *** Including module: fs-lib ***
dracut[I]: *** Including module: kernel-modules ***
dracut[I]: *** Including module: kernel-modules-extra ***
dracut[I]: *** Including module: lvm ***
dracut[I]: *** Including module: mdraid ***
dracut[I]: *** Including module: qemu ***
dracut[I]: *** Including module: qemu-net ***
dracut[I]: *** Including module: hwdb ***
dracut[I]: *** Including module: lunmask ***
dracut[I]: *** Including module: resume ***
dracut[I]: *** Including module: rootfs-block ***
dracut[I]: *** Including module: terminfo ***
dracut[I]: *** Including module: udev-rules ***
dracut[I]: *** Including module: virtiofs ***
dracut[I]: *** Including module: dracut-systemd ***
dracut[I]: *** Including module: initqueue ***
dracut[I]: *** Including module: usrmount ***
dracut[I]: *** Including module: base ***
dracut[I]: *** Including module: shell-interpreter ***
dracut[I]: *** Including module: shutdown ***
dracut[I]: *** Including modules done ***
dracut[I]: *** Installing kernel module dependencies ***
dracut[I]: *** Installing kernel module dependencies done ***
dracut[I]: *** Resolving executable dependencies ***
dracut[I]: *** Resolving executable dependencies done ***
dracut[I]: *** Generating early-microcode cpio image ***
dracut[I]: *** Constructing AuthenticAMD.bin ***
dracut[I]: *** Store current command line parameters ***
dracut[I]: *** Stripping files ***
dracut[I]: *** Stripping files done ***
dracut[I]: *** Creating image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd.tmp’ ***
dracut[I]: *** Hardlinking files ***
dracut[I]: *** Hardlinking files done ***
dracut[I]: *** Creating initramfs image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd.tmp’ done ***
dracut[I]: *** Moving image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd.tmp’ to ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd’ ***
dracut[I]: *** Moving image file ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd.tmp’ to ‘/efi/8b6bab0dceb3439bab1a6ee85f0b4cd3/6.16.8-arch3-1/initrd’ done ***
(4/4) Checking which packages need to be rebuilt
[volt@GamingPC ~]$ yay -S nvidia-mft

both systems have this exact same error.

extra log file info:

log file 2 contents hidden for space savings:

Summary

DKMS (dkms-3.2.2) make.log for kernel-mft-dkms/4.32.0 for kernel 6.16.8-arch3-1 (x86_64)
Tue Sep 23 05:42:15 PM EDT 2025

Building module(s)

command: make -j16 KERNELRELEASE=6.16.8-arch3-1 all KPVER=6.16.8-arch3-1

cd mst_backward_compatibility/mst_pci && make
make[1]: Entering directory ‘/var/lib/dkms/kernel-mft-dkms/4.32.0/build/mst_backward_compatibility/mst_pci’
make -C /lib/modules/6.16.8-arch3-1/build M=/var/lib/dkms/kernel-mft-dkms/4.32.0/build/mst_backward_compatibility/mst_pci CONFIG_CTF= CONFIG_CC_STACKPROTECTOR_STRONG= modules
make[2]: Entering directory ‘/usr/lib/modules/6.16.8-arch3-1/build’
make[3]: Entering directory ‘/var/lib/dkms/kernel-mft-dkms/4.32.0/build/mst_backward_compatibility/mst_pci’
CC [M] ../../nnt_driver/nnt_device.o
CC [M] ../../nnt_driver/nnt_dma.o
CC [M] ../../nnt_driver/nnt_pci_conf_access.o
CC [M] ../../nnt_driver/nnt_pci_conf_access_recovery.o
CC [M] ../../nnt_driver/nnt_memory_access.o
CC [M] ../../nnt_driver/nnt_ioctl.o
CC [M] mst_pci_bc.o
CC [M] ../../nnt_driver/nnt_gpu.o
mst_pci_bc.c:6:10: fatal error: nnt_ioctl.h: No such file or directory
6 | #include “nnt_ioctl.h”
| ^~~~~~~~~~~~~
compilation terminated.
make[5]: *** [/usr/lib/modules/6.16.8-arch3-1/build/scripts/Makefile.build:287: mst_pci_bc.o] Error 1
make[5]: *** Waiting for unfinished jobs…
../../nnt_driver/nnt_pci_conf_access_recovery.c:5:5: warning: no previous prototype for ‘read_no_vsec’ [-Wmissing-prototypes]
5 | int read_no_vsec(struct nnt_device* nnt_device, unsigned int offset, unsigned int* data)
| ^~~~~~~~~~~~
../../nnt_driver/nnt_gpu.c:17:5: warning: no previous prototype for ‘is_gb100_pci_device’ [-Wmissing-prototypes]
17 | int is_gb100_pci_device(u_int16_t pci_device_id)
| ^~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_memory_access.c:7:5: warning: no previous prototype for ‘write_memory’ [-Wmissing-prototypes]
7 | int write_memory(struct nnt_device* nnt_device, struct nnt_rw_operation* write_operation)
| ^~~~~~~~~~~~
../../nnt_driver/nnt_dma.c:9:5: warning: no previous prototype for ‘dma_mapping_page’ [-Wmissing-prototypes]
9 | int dma_mapping_page(unsigned int total_pinned, unsigned int page_mapped_counter,
| ^~~~~~~~~~~~~~~~
../../nnt_driver/nnt_gpu.c:30:5: warning: no previous prototype for ‘is_gr100_pci_device’ [-Wmissing-prototypes]
30 | int is_gr100_pci_device(u_int16_t pci_device_id)
| ^~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_memory_access.c:21:5: warning: no previous prototype for ‘read_memory’ [-Wmissing-prototypes]
21 | int read_memory(struct nnt_device* nnt_device, struct nnt_rw_operation* read_operation)
| ^~~~~~~~~~~
../../nnt_driver/nnt_memory_access.c:34:5: warning: no previous prototype for ‘init_memory’ [-Wmissing-prototypes]
34 | int init_memory(struct nnt_device* nnt_device)
| ^~~~~~~~~~~
../../nnt_driver/nnt_memory_access.c: In function ‘init_memory’:
../../nnt_driver/nnt_memory_access.c:41:59: warning: ordered comparison of pointer with integer zero [-Wextra]
41 | if (nnt_device->memory_device.hardware_memory_address <= 0) {
| ^~
../../nnt_driver/nnt_dma.c:38:5: warning: no previous prototype for ‘pin_user_pages_in_kernel_space’ [-Wmissing-prototypes]
38 | int pin_user_pages_in_kernel_space(unsigned int total_pages, unsigned int total_pinned,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access_recovery.c:44:5: warning: no previous prototype for ‘write_no_vsec’ [-Wmissing-prototypes]
44 | int write_no_vsec(struct nnt_device* nnt_device, unsigned int offset, unsigned int data)
| ^~~~~~~~~~~~~
../../nnt_driver/nnt_dma.c:77:5: warning: no previous prototype for ‘pin_user_memory_in_kernel_space’ [-Wmissing-prototypes]
77 | int pin_user_memory_in_kernel_space(unsigned int total_pages, struct nnt_device* nnt_device,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access_recovery.c:90:5: warning: no previous prototype for ‘is_wo_gw’ [-Wmissing-prototypes]
90 | int is_wo_gw(struct nnt_device* nnt_device)
| ^~~~~~~~
../../nnt_driver/nnt_dma.c:123:5: warning: no previous prototype for ‘map_dma_pages’ [-Wmissing-prototypes]
123 | int map_dma_pages(struct nnt_page_info* page_info, struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:114:5: warning: no previous prototype for ‘create_file_name_mstflint’ [-Wmissing-prototypes]
114 | int create_file_name_mstflint(struct pci_dev* pci_device, struct nnt_device* nnt_dev, enum nnt_device_type device_type)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_dma.c:164:5: warning: no previous prototype for ‘release_dma_pages’ [-Wmissing-prototypes]
164 | int release_dma_pages(struct nnt_page_info* page_info, struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:128:5: warning: no previous prototype for ‘create_file_name_mft’ [-Wmissing-prototypes]
128 | int create_file_name_mft(struct pci_dev* pci_device, struct nnt_device* nnt_dev, enum nnt_device_type device_type)
| ^~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:141:5: warning: no previous prototype for ‘nnt_device_structure_init’ [-Wmissing-prototypes]
141 | int nnt_device_structure_init(struct nnt_device** nnt_device)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:157:5: warning: no previous prototype for ‘create_nnt_device’ [-Wmissing-prototypes]
157 | int create_nnt_device(struct pci_dev* pci_device, enum nnt_device_type device_type, int is_alloc_chrdev_region)
| ^~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:199:5: warning: no previous prototype for ‘check_pci_id_range’ [-Wmissing-prototypes]
199 | int check_pci_id_range(unsigned short pci_device_id, unsigned short id_range_start)
| ^~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:204:5: warning: no previous prototype for ‘is_connectx’ [-Wmissing-prototypes]
204 | int is_connectx(unsigned short pci_device_id)
| ^~~~~~~~~~~
../../nnt_driver/nnt_device.c:209:5: warning: no previous prototype for ‘is_connectx3’ [-Wmissing-prototypes]
209 | int is_connectx3(unsigned short pci_device_id)
| ^~~~~~~~~~~~
../../nnt_driver/nnt_device.c:214:5: warning: no previous prototype for ‘is_bluefield’ [-Wmissing-prototypes]
214 | int is_bluefield(unsigned short pci_device_id)
| ^~~~~~~~~~~~
../../nnt_driver/nnt_device.c:220:5: warning: no previous prototype for ‘is_pcie_switch’ [-Wmissing-prototypes]
220 | int is_pcie_switch(unsigned short pci_device_id)
| ^~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:225:5: warning: no previous prototype for ‘is_quantum’ [-Wmissing-prototypes]
225 | int is_quantum(unsigned short pci_device_id)
| ^~~~~~~~~~
../../nnt_driver/nnt_device.c:230:5: warning: no previous prototype for ‘is_spectrum’ [-Wmissing-prototypes]
230 | int is_spectrum(unsigned short pci_device_id)
| ^~~~~~~~~~~
../../nnt_driver/nnt_device.c:235:5: warning: no previous prototype for ‘is_switch_ib’ [-Wmissing-prototypes]
235 | int is_switch_ib(unsigned short pci_device_id)
| ^~~~~~~~~~~~
../../nnt_driver/nnt_device.c:253:5: warning: no previous prototype for ‘is_livefish_device’ [-Wmissing-prototypes]
253 | int is_livefish_device(unsigned short pci_device_id)
| ^~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:259:5: warning: no previous prototype for ‘is_nic’ [-Wmissing-prototypes]
259 | int is_nic(unsigned short pci_device_id)
| ^~~~~~
../../nnt_driver/nnt_device.c:264:5: warning: no previous prototype for ‘is_switch’ [-Wmissing-prototypes]
264 | int is_switch(unsigned short pci_device_id)
| ^~~~~~~~~
../../nnt_driver/nnt_device.c:270:5: warning: no previous prototype for ‘is_toolspf’ [-Wmissing-prototypes]
270 | int is_toolspf(unsigned short pci_device_id)
| ^~~~~~~~~~
../../nnt_driver/nnt_device.c:288:5: warning: no previous prototype for ‘create_device_file’ [-Wmissing-prototypes]
288 | int create_device_file(struct nnt_device* current_nnt_device,
| ^~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:342:5: warning: no previous prototype for ‘check_if_vsec_supported’ [-Wmissing-prototypes]
342 | int check_if_vsec_supported(struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:410:5: warning: no previous prototype for ‘create_devices’ [-Wmissing-prototypes]
410 | int create_devices(dev_t device_number, struct file_operations* fop, int is_alloc_chrdev_region)
| ^~~~~~~~~~~~~~
../../nnt_driver/nnt_device.c:539:5: warning: no previous prototype for ‘find_all_vendor_devices’ [-Wmissing-prototypes]
539 | int find_all_vendor_devices(unsigned int vendor_id)
| ^~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:10:5: warning: no previous prototype for ‘clear_vsec_semaphore’ [-Wmissing-prototypes]
10 | int clear_vsec_semaphore(struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:20:5: warning: no previous prototype for ‘get_semaphore_ticket’ [-Wmissing-prototypes]
20 | int get_semaphore_ticket(struct nnt_device* nnt_device, unsigned int* lock_value, unsigned int* counter)
| ^~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:42:5: warning: no previous prototype for ‘lock_vsec_semaphore’ [-Wmissing-prototypes]
42 | int lock_vsec_semaphore(struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:96:5: warning: no previous prototype for ‘wait_on_flag’ [-Wmissing-prototypes]
96 | int wait_on_flag(struct nnt_device* nnt_device, u8 expected_val)
| ^~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:119:5: warning: no previous prototype for ‘check_syndrome’ [-Wmissing-prototypes]
119 | int check_syndrome(struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:151:5: warning: no previous prototype for ‘set_address_space’ [-Wmissing-prototypes]
151 | int set_address_space(struct nnt_device* nnt_device, unsigned int address_space)
| ^~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:265:5: warning: no previous prototype for ‘set_rw_address’ [-Wmissing-prototypes]
265 | int set_rw_address(unsigned int* offset, unsigned int rw)
| ^~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:281:5: warning: no previous prototype for ‘read’ [-Wmissing-prototypes]
281 | int read(struct nnt_device* nnt_device, unsigned int offset, unsigned int* data)
| ^~~~
../../nnt_driver/nnt_pci_conf_access.c:351:5: warning: no previous prototype for ‘write’ [-Wmissing-prototypes]
351 | int write(struct nnt_device* nnt_device, unsigned int offset, unsigned int data)
| ^~~~~
../../nnt_driver/nnt_pci_conf_access.c:412:5: warning: no previous prototype for ‘address_space_to_capability’ [-Wmissing-prototypes]
412 | int address_space_to_capability(u_int16_t address_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:451:5: warning: no previous prototype for ‘get_space_support_status’ [-Wmissing-prototypes]
451 | int get_space_support_status(struct nnt_device* nnt_device, u_int16_t address_space)
| ^~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:467:5: warning: no previous prototype for ‘init_vsec_capability_mask’ [-Wmissing-prototypes]
467 | int init_vsec_capability_mask(struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_pci_conf_access.c:499:6: warning: no previous prototype for ‘check_vsec_minimum_support’ [-Wmissing-prototypes]
499 | void check_vsec_minimum_support(struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_ioctl.c:13:5: warning: no previous prototype for ‘dma_pages_ioctl’ [-Wmissing-prototypes]
13 | int dma_pages_ioctl(unsigned int command, void* user_buffer, struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~
../../nnt_driver/nnt_ioctl.c:48:5: warning: no previous prototype for ‘read_dword_ioctl’ [-Wmissing-prototypes]
48 | int read_dword_ioctl(void* user_buffer, struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~
../../nnt_driver/nnt_ioctl.c:77:5: warning: no previous prototype for ‘get_nnt_device_parameters’ [-Wmissing-prototypes]
77 | int get_nnt_device_parameters(struct nnt_device_parameters* nnt_parameters, struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
../../nnt_driver/nnt_ioctl.c:110:5: warning: no previous prototype for ‘pci_connectx_wa’ [-Wmissing-prototypes]
110 | int pci_connectx_wa(struct nnt_connectx_wa* connectx_wa, struct nnt_device* nnt_device)
| ^~~~~~~~~~~~~~~
../../nnt_driver/nnt_ioctl.c:144:5: warning: no previous prototype for ‘vpd_read’ [-Wmissing-prototypes]
144 | int vpd_read(struct nnt_vpd* vpd, struct nnt_device* nnt_device)
| ^~~~~~~~
../../nnt_driver/nnt_ioctl.c:188:5: warning: no previous prototype for ‘vpd_write’ [-Wmissing-prototypes]
188 | int vpd_write(struct nnt_vpd* vpd, struct nnt_device* nnt_device)
| ^~~~~~~~~
make[4]: *** [/usr/lib/modules/6.16.8-arch3-1/build/Makefile:2003: .] Error 2
make[3]: *** [/usr/lib/modules/6.16.8-arch3-1/build/Makefile:248: __sub-make] Error 2
make[3]: Leaving directory ‘/var/lib/dkms/kernel-mft-dkms/4.32.0/build/mst_backward_compatibility/mst_pci’
make[2]: *** [Makefile:248: __sub-make] Error 2
make[2]: Leaving directory ‘/usr/lib/modules/6.16.8-arch3-1/build’
make[1]: *** [Makefile:34: all] Error 2
make[1]: Leaving directory ‘/var/lib/dkms/kernel-mft-dkms/4.32.0/build/mst_backward_compatibility/mst_pci’
make: *** [Makefile:4: all] Error 2

exit code: 2

elapsed time: 00:00:02


TLDR it seems the installer’s failing because of not finding some file called nnt_ioctl.h??? emphasis on SEEMS, I am by no means confident that’s the problem. its A problem though.

Its datacenter gear so I’m not suprised Nvidia does not offer support for Arch. There is a mellanox firmware package, I assume you tried that? I agree that compilation fails because nnt_ioctl.h is not present.

that sadly did not change anything, I keep seeing that folk are saying compile from source, but dangit every attempt to do so fails saying unsupported distro, yeah no kidding that’s why I’m trying to compile it dangit, and the flags suggested do not work ( - - ignore-distro-check and - - add-kernel-support both get stated as not valid flags to try and force it to compile FOR arch/EOS), so I’m left with the source files complaining its unsupported, again no kidding, and am unable to do anything WITH the source files I’m supposed to compile from. I feel like I’m beating myself with a brick trying to figure this out, it is madness.

I get it, it’s frustrating. Lets start with basic debugging? What exactly is the issue? Are the cards not recognized by the system? What does lspci -nn | grep Mellanox return?

Have you tried mstflint? It is available in the AUR. There is also a thread in the Arch forum about trying to compile an older version of the driver you need: https://bbs.archlinux.org/viewtopic.php?id=263457

the card is physically seen, but I cannot seem to figure out, and maybe its due to lack of actual knowledge what the heck I’m doing here, I cannot rule that out, how to get it to show up in the network manager so that I can configure it as an interface for networking, which seems to be from what little I can tell and I am entirely possible to be mistaken here, but what little I THINK I understand, it needs the mellanox OFED driver to be able to configure it in the network manager, due to particular binary files used to set the thing up, and though I’m blanking on which commands it was I tried to run exactly, some work and others do not, so it appears I have a partially working setup, but still wonderfully incomplete, the cards DO show up, on both pcs, but neither can actually do anything with them, and for what ever its worth, I’m testing this FIRST on a single pc and then plan to try and replicate “whatever works” on the other once I get there first.

if I recall, mstfint IS installed, but I’m going to confirm that right quick. nope, seems I’m thinking of something else, MSTFLINT is NOT installed, and I typed it out in caps because I cant see for squat so that’s more for my own use than anything. ah cool, installing it errors out and stops the installer. exit status 4. configure : error: cannot find infiniband/mad.h

EDIT: before I forget since I’m so heavily prone to that with my ADHD….thank you all, everyone on this forum that spends their time to try and help users like me, you all are god-sends, thank you. I don’t post here often, but every time I do, some kind soul has helped me to fix the issues, so thank you.

You’re welcome :wink: Also, thank you for not taking quick help for granted. Happens all to often nowadays.

That’s… something? Can you paste the output of lsmod | grep mlx5? And please past it in a markdown quote block so it’s easier to read :grinning_face_with_smiling_eyes:
The output of ip linkcould also be useful

is the mlx5 specific to connectx 5? I have connectx4 cards is why I ask, IE that said do I need to use lsmod | grep mlx4 instead? also I keep wondering what to use for posting the massive text walls but being unfamiliar with this site’s setup just yet, I’m used to code blocks as an option for that. I’ll do that going forward thank you for that specific suggestion. also should I do so for both systems, or just the main one I’m trying to use to test this with?

also I might be having a moment of dumb, but how do I setup the process of marking something in markdown, like what’s the tags to use? I can guess but it’d be easier to just outright ask how to set that up, IE how to make the tags, example < HTML > for making a web file, then < /HTML > as an example of what I’m trying to ask.

edit: seems mlnx4 doesn’t exist. output is

[volt@Editing-PC Pictures]$ lsmod | grep mlx
mlx5_ib               589824  0
macsec                 69632  2 atlantic,mlx5_ib
ib_uverbs             217088  1 mlx5_ib
ib_core               557056  2 ib_uverbs,mlx5_ib
mlx5_core            3096576  1 mlx5_ib
mlxfw                  49152  1 mlx5_core
psample                16384  1 mlx5_core
mlxdevm               188416  1 mlx5_core
mlx_compat             16384  6 mlxdevm,mlxfw,ib_core,ib_uverbs,mlx5_ib,mlx5_core
tls                   155648  1 mlx5_core
ptp                    45056  3 atlantic,igb,mlx5_core
pci_hyperv_intf        12288  1 mlx5_core

and now I went and made it weird by editing the post with the info instead of replying, works either way.

The main system should be enough. I personally think markdown blocks make reading preformatted text easier, that’s why I asked for it :sweat_smile: How about you do lsmod | grep mlx without a number, this way, the number doesnt matter.

Markdown codeblocks are made by three backticks like this:

```
(markdown here)
```

Don’t worry. Could you post the output of ip link as well?

right, forgot about that one, thanks.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 3c:ec:ef:e1:54:31 brd ff:ff:ff:ff:ff:ff
    altname enp6s0
    altname enx3cecefe15431
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 3c:ec:ef:e1:53:57 brd ff:ff:ff:ff:ff:ff
4: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether be:3a:f2:b6:05:9f brd ff:ff:ff:ff:ff:ff
    altname enp0s20f0u14u1c2
    altname enxbe3af2b6059f
5: br10: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc htb state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:3f:85:fe brd ff:ff:ff:ff:ff:ff
[volt@Editing-PC ~]$ 

Alright. lsmod shows the drivers are loaded, and ip link shows two Ethernet interfaces, one down, one up. I assume the interface which is down (eth1) is your Mellanox card, since you use the other one two answer me?

Do you have a compatible ethernet cable in the card? Seems like you need a QSFP28 cable/adapter.

no, the one that shows as up is my motherboards onboard ethernet port. I cant get the mellanox card to show in that list which is also what shows in the network manager application, but not the mellanox card, so that list from ip link is what shows in the network manager, and the mellanox card is not one of them.

I’ve not bothered plugging in the optics I have yet since I cant even get the thing to show up to try and assign an IP address of my choosing.

Okay I get it.

Can you post the output of sudo dmesg | grep mellanox (or sudo dmesg | grep mlx) if the former doesn’t output anything at all. That might show us some errors.

the first outputs nothing, the second gives some output.

[volt@Editing-PC ~]$ sudo dmesg | grep mellanox
[sudo] password for volt: 
[volt@Editing-PC ~]$ sudo dmesg | grep mlx
[   11.202972] mlx5_core 0000:52:00.0: firmware version: 12.28.2302
[   11.203001] mlx5_core 0000:52:00.0: 63.008 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x8 link at 0000:50:04.0 (capable of 126.016 Gb/s with 8.0 GT/s PCIe x16 link)
[   13.488040] mlx5_core 0000:52:00.0: Port module event: module 0, Cable unplugged
[volt@Editing-PC ~]$ 

yeah, sorry, doing stuff on that pc, so I’m replying from the other so I can see when you all make a post and then editing outputs accordingly, not doing this every time, but this time I did.

1 Like

This output looks completely fine. Please go ahead and plugin the Ethernet, maybe connect it to a running switch if you can etc. I still haven’t seen an issue