Connect X-2
создайте исполняемый файл
/etc/sysconfig/modules/mellanox.modules
с содержимым
#!/bin/sh /sbin/modprobe mlx4_core /sbin/modprobe mlx4_en
Connect X-3
Идём на сайт
https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/
Качаем ISO'шку под нужный нам дистрибутив (сейчас CentOS 6.10) и кладём её в /root/ на сервер
Монтируем
mkdir /mnt/mellanox mount -o ro,loop MLNX_OFED_LINUX-4.2-1.2.0.0-rhel6.8-x86_64.iso /mnt/mellanox/
Запускаем установку (идёт долго, после установки может быть зависание минут на пять).
cd /mnt/mellanox ./mlnxofedinstall /etc/init.d/openibd restart
Вероятнее всего потребуется доставить ряд зависимостей. О чём будет сообщено установщиком: |
Logs dir: /tmp/MLNX_OFED_LINUX-4.0-2.0.0.1.6322.logs
Verifying KMP rpms compatibility with target kernel...
Error: One or more required packages for installing MLNX_OFED_LINUX are missing.
Please install the missing packages using your Linux distribution Package Management tool.
Run:
yum install gtk2 atk cairo gcc-gfortran libxml2-python tcsh tcl numactl tk
Ставим:
yum -y install gtk2 atk cairo gcc-gfortran libxml2-python tcsh tcl numactl tk
И повторяем установку.
Как определить что установленный драйвер не подходит
Проверьте что драйвер сейчас загружен:
lsmod | grep mlx
Если в вывод не пустой – выполните команду и найдите в её выводе сетевую карту.
lspci -k
Если в её выводе нет строчки kernel driver in use - значит драйвер не подходит.
Если в её выводе есть kernel driver in use – скорее всего всё работает и нужно перепроверить вывод команды ip link / ifconfig.
... 05:00.0 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0) Subsystem: Mellanox Technologies Device 0015 Kernel driver in use: mlx4_core Kernel modules: mlx4_core ...
ethtool может показывать другой драйвер:
$ ethtool -i eth2 driver: mlx4_en
Ничего страшного в этом нет, для работы mellanox требуется несколько загруженных модулей ядра.
Как проверить что исходники для нужного драйвера
Находим pci id устройства:
1. Выполняем lspci и запоминаем bus id нужного устройства:
$ lspci ... 05:00.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05) ...
bus id - 05:00.0.
Теперь узнаем pci id устройства:
$ lspci -n | grep 05:00.0 05:00.0 0200: 8086:107c (rev 05)
PCI ID = 8086:107c
8086 - номер вендора, в данном случае это Intel.
107c - номер устройства.
Пробуем найти номер устройства в исходниках драйвера.
Если его там нет - скорее всего это драйвера не подходят для этого устройства.
Например для Mellanox :
[username@reductor mlnx-en-2.4-1.0.0.1]$ grep -ri 6750 ./ ./drivers/net/ethernet/mellanox/mlx4/main.c: { PCI_VDEVICE(MELLANOX, 0x6750), MLX4_PCI_DEV_FORCE_SENSE_PORT }, ./drivers/net/ethernet/mellanox/mlx4/main.c.orig: { PCI_VDEVICE(MELLANOX, 0x6750), MLX4_PCI_DEV_FORCE_SENSE_PORT },
Комментарии (1)
ноя 09, 2018
Отдел разработки Carbon Reductor DPI X говорит:
Пример начинается с "107c - номер устройства." А потом превращается в "grep -...Пример начинается с "107c - номер устройства."
А потом превращается в "grep -ri 6750". Это другой пример, или какая-то магия?