Установка драйверов для Mellanox

Skip to end of metadata
Go to start of metadata

Connect X-2

создайте исполняемый файл

/etc/sysconfig/modules/mellanox.modules

с содержимым

#!/bin/sh
/sbin/modprobe mlx4_core
/sbin/modprobe mlx4_en

Connect X-3

Идём на сайт

http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers

Качаем 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/
./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 },

Метки

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.
  1. ноя 09, 2018

    /dev/reductor говорит:

    Пример начинается с "107c - номер устройства." А потом превращается в "grep -...

    Пример начинается с "107c - номер устройства."
    А потом превращается в "grep -ri 6750". Это другой пример, или какая-то магия?