Настройка CentOS Linux 7.2 на сервере HP ProLiant DL360 G5. Обновляем драйвер и прошивку встроенных сетевых контроллеров Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (HP NC373i Multifunction Gigabit Server Adapter)

imageВ предыдущей заметке мы рассмотрели процедуру подготовки сервера HP ProLiant DL360 G5 и установки ОС CentOS Linux 7.2. В этой части мы продолжим обязательные пост-установочные процедуры и рассмотрим пример обновления драйверов и прошивок firmware (исключительно для наглядности) встроенных в материнскую плату сервера сетевых контроллеров Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet или, по классификации HP, NC373i Multifunction Gigabit Server Adapter.

Идентификация оборудования

Определяем модель сетевых адаптеров, которую видит наша Linux-система на шине PCI, например с помощью утилиты lspci:

# lspci | grep -i Ethernet

03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)

В логе /var/log/dmesg смотрим то, какой драйвер был подгружен в процессе загрузки ОС для сетевых адаптеров:

# dmesg | grep 'Ethernet'

[0.889485] bnx2: QLogic bnx2 Gigabit Ethernet Driver v2.2.6 (January 29, 2014)

В наглядном виде можем получить сразу в одном месте информацию о текущей версии firmware и названию и версии используемого драйвера для каждого сетевого интерфейса с помощью утилиты ethtool:

# ethtool -i enp3s0

driver: bnx2
version: 2.2.6
firmware-version: bc 1.9.6
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Оборудование идентифицировано и теперь перейдём к поиску более новых версий драйвера и прошивки для него.

 

Поиск и обновление драйвера

Идём на сайт HP и смотрим какие драйвера нам предлагаются к нашему серверу HP ProLiant DL360 G5 Server для ОС Red Hat Enterprise Linux (RHEL). Видим, что для данного сервера самая последняя поддерживаемая ОС это RHEL 6 Server (x86-64). Посмотрим все пакеты драйверов предлагаемые нам в секции Driver – Network. Вариантов много. Выберем подходящий нам драйвер HP Broadcom 1/10 GbE Multifunction Drivers for Linux, перейдём на страницу его загрузки и посмотрим, что указано на закладке Release Notes. Там можно найти перечисление названий драйверов входящих в данный пакет. Таким образом, максимум, что нам предлагается это пакет драйверов версии 7.4.25-2 (19 Feb 2013) в составе которого есть драйвер bnx2 version 2.2.3f.

Однако мы уже знаем о маркетинговых фокусах HP, и попробуем найти более новую версию указанного пакета драйверов, да ещё и с поддержкой RHEL 7 (т.е. CentOS 7). Для этого используем небольшую хитрость. В списке поддерживаемых сетевых адаптеров, перечисленных на этой веб-странице, найдём более современный адаптер, например HP Ethernet 10Gb 2-port 530T Adapter и поищем на сайте HP драйверы, которые предлагаются для этого адаптера. Поиск приведёт нас на соответствующую страницу, где мы сможем обнаружить то, что для этого адаптера доступен пакет драйверов под RHEL7, но уже с несколько другим именем - HPE QLogic NX2 1/10/20 GbE Multifunction Drivers for Red Hat Enterprise Linux 7 x86_64. Текущая версия  7.13.04.1-1 (1 Apr 2016). В документе README к этому пакету написано, что в пакет входит драйвер bnx2 версии 2.2.5p. Несмотря на то, что версия драйвера ниже, чем та, которая уже имеется у нас в системе (2.2.6), однако дата драйвера с сайта HP новее. Чтобы скачать и установить соответствующий пакет с драйвером с сайта HP выполним последовательно команды:

# wget http://ftp.hp.com/pub/softlib2/software1/pubsw-linux/p1050551721/v115715/kmod-netxtreme2-7.13.04.1-1.rhel7u2.x86_64.rpm
# yum install /kmod-netxtreme2-7.13.04.1-1.rhel7u2.x86_64.rpm

После установки перезагружаем сервер и проверяем то, с каким драйвером загружена система.

# dmesg | grep 'Ethernet'

[0.960488] bnx2: QLogic bnx2 Gigabit Ethernet Driver v2.2.5p (Sept 3, 2015)

Убедимся в том, что именно этот драйвер привязан к сетевым интерфейсам системы:

# ethtool -i enp3s0

driver: bnx2
version: 2.2.5p
firmware-version: bc 1.9.6
bus-info: 0000:03:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Как видим, несмотря на непонятную ситуацию с версией драйвера, дата драйвера стала новей, то есть мы предполагаем, что теперь в системе мы имеем более новую версию драйвера. Если у кого-то есть информация опровергающая эту гипотезу, прошу поделиться в комментариях.

 

Поиск и обновление Firmware

В заметках об установленном пакете драйверов есть рекомендация использовать вместе с этой версией пакета пакет обновления firmware HPE QLogic NX2 Online Firmware Upgrade Utility for Linux x86_64 последней версии:

HPE recommends the firmware provided in HPE QLogic NX2 Online Firmware Upgrade Utility for Linux x86_64, version 2.17.16, for use with these drivers.

Однако, как выяснилось в конечном итоге, если перебрать все версии доступные на закладке истории изменений утилиты HPE QLogic NX2 Online Firmware Upgrade Utility for Linux x86_64, то ни одна из них не имеет поддержки нашего сетевого контроллера. Поэтому мы вернёмся на страницу всех загрузок доступных для сервера HP ProLiant DL360 G5 Server и найдём там ссылку на утилиту HP Broadcom Online Firmware Upgrade Utility for Linux x86_64 версии 2.9.21 от 10.09.2013. Перейдём по этой ссылке и на закладке истории изменений сможем увидеть, что предложенная версия утилиты далеко не самая последняя. По началу может возникнуть желание загрузить самую последнюю версию, однако сразу скажу, что смысла это не имеет, так как утилита не является кумулятивной и в разных версиях содержит прошивки для разных контроллеров. То есть, в старых версиях утилиты есть прошивки для более старых контроллеров, в новых версиях утилиты старые контроллеры удаляются и добавляется поддержка более современных контроллеров. Поэтому, чтобы найти самую последнюю прошивку именно для нашего контроллера, нам придётся читать "релизноты" к каждой версии утилиты обновления, начав с самой новой её версии и перемещаясь к более старым до тех пор, пока не найдём свой контроллер. Именно таким образом я добрался до версии 2.10.15 (B)(2 май 2014), где и нашёл свой контроллер.

Загружаем данную версию на наш сервер с CentOS 7.2:

# wget http://ftp.hp.com/pub/softlib2/software1/sc-linux-fw/p649739856/v96908/CP023219.scexe

Перед запуском утилиты нужно убедится в том, что интерфейсы, которые нужно обновить не выключены. Если выключены, включите их:

# ifconfig {интерфейс} up

Для того, чтобы загруженный файл можно было запустить, сделаем его исполняемым. После этого запустим его:

# chmod +x ~/CP023219.scexe
# ~/CP023219.scexe

image

Как видно, в моём случае прошивка на сетевых контроллерах оказалась уже самой последней, поэтому я отказался от её установки.

В данной ситуации становится очевидно, что ранее рассмотренная процедура обновления firmware с помощью пакетов Service Pack for ProLiant (SPP) намного проще, чем описанный ручной метод, однако при этом стоит помнить и про то, что пакеты SPP не являются полностью кумулятивными и изменяют состав поддерживаемого оборудования от версии к версии.

Добавить комментарий