Mlnx-en-5.7-1.0.2.0-rhel9.0 - error: /mnt/RPMS: read failed: Is a directory (21)

Hello Forum,

i am trying to install the NVIDIA/MELLANOX drivers from

  1. MLNX_EN-5.7-1.0.2.0/mlnx-en-5.7-1.0.2.0-rhel9.0-x86_64.iso for
  2. ConnectX-5 EN (pure ethernet),
    on CentOS9 or RockyLinux 9.0
    but the included evaluation script “is_kmp_compat.sh” is always failing when attempting to install the packages according to the guide on “https://docs.nvidia.com/networking/display/MLNXENv571020/Installing+MLNX_EN”.

Core error message:

error: /mnt/RPMS: read failed: Is a directory (21)

Applied procedure:

  1. wget … MLNX_EN-5.7-1.0.2.0/mlnx-en-5.7-1.0.2.0-rhel9.0-x86_64.iso [abbreviated because not allowed more then 1 link per post]
  2. mount -o ro,loop mlnx-en-5.7-1.0.2.0-rhel9.0-x86_64.iso /mnt
  3. cd /mnt
  4. bash --debug is_kmp_compat.sh --path /mnt/RPMS --kernel $(uname -r)
  5. error: /mnt/RPMS: read failed: Is a directory (21)

I drilled down to where the procedure breaks:

$RPM -i --nodeps --notriggers --noscripts --root $tmpdir "$fff"

Attempting to reproduce it:

rpm -vv --test --nodigest --nosignature -i --nodeps --notriggers --noscripts --root /tmp/kmp_check.a6cssCN /mnt/RPMS
ufdio:       1 reads,    17654 total bytes in 0.000009 secs
D: ============== /mnt/RPMS
error: /mnt/RPMS: read failed: Is a directory (21)

ufdio:       1 reads,        0 total bytes in 0.000002 secs
error: /mnt/RPMS cannot be installed
D: 	added source package [0]
D: found 1 source and 0 binary packages
D: Exit status: 1

I doublechecked for the presence of ACLs, SELinux labels or filesystem permissions.
Also tried directories outside of “/tmp” and “/mnt”.
But nothing helped the problem.
I just want to make sure the evaluation skript would not indicate incompatibility for the wrong reasons…
Has anyone an idea what actually is the problem?

Any idea would be highly appreciated.

Best

Hello again,

i just wanted to update, that apparently the error message can be read verbatim:
it simply attempts to read the directory.
Pointing it directly to the files would make it operable:

rpm -vvvvv --test \
--nodigest --nosignature -i --nodeps --notriggers --noscripts \
--root /tmp/kmp_check.a6cssCN /mnt/RPMS/*.rpm

But that format again is not what “is_kmp_compat.sh” expects:

bash --verbose is_kmp_compat.sh -\
-path /mnt/RPMS/*.rpm --kernel $(uname -r)
    -E- Unsupported option: /mnt/RPMS/ibacm-56mlnx40-1.57102.x86_64.rpm

which also would contradict the name of the option (path)…

Do i possibly use the wrong syntax for the options?

Best