Особенность установки Debian GNU/Linux 9.3 "Stretch" на сервер HP ProLiant DL380 G5 с подключением firmware из non-free репозиториев (на примере bnx2)

Сама по себе процедура установки Debian GNU/Linux 9, на мой взгляд, не должна вызывать особых затруднений даже у начинающих Linux-администраторов. Однако могут возникнуть вопросы в тех случаях, когда установка выполняется на некотором серверном оборудовании, имеющем ребрендинговые модели тех или иных адаптеров и контроллеров. Так, например, при установке Debian на сервер HP ProLiant DL380 старого поколения Gen5 можно столкнуться с проблемой отсутствия в базовом инсталляторе ОС микрокода firmware для встроенных сетевых адаптеров Broadcom NetXtreme II BCM5708 (HP NC373i Multifunction Gigabit Server Adapter в маркировке HP).

В процессе установки Debian 9 на шаге Detect network hardware мы получим сообщение о том, что обнаружено оборудование, требующее для своей работы загрузки non-free микрокода. Это можно связать с тем, что Debian позиционирует себя как свободная ОС, и поэтому изначально поставляется только с теми микрокодами, которые являются свободными с точки зрения лицензионных барьеров. Таким образом предполагается, что администратор, эксплуатирующий такую Linux-систему должен самостоятельно устанавливать необходимый недостающий микрокод.

Фактически нам нужен пакет firmware-bnx2_20161130-3_all.deb, доступный в non-free репозиториях Debian. Мы можем скачать файл firmware-bnx2_20161130-3_all.deb и разместить его, например, на USB-накопителе. Программа установки подхватит этот пакет c накопителя в случае выбора "Yes".

В том случае, если накопитель с firmware не был подключен, в последующем при попытке настроить сетевое подключение мы получим ошибку.

Если по какой-то причине нет возможности подключить соответствующий микрокод в процессе установки, - ничего страшного, ибо установку ОС можно продолжить и с ненастроенной сетью. А произвести доустановку недостающего микрокода можно уже после окончания установки ОС. 

При этом стоит помнить про то, что с учётом неработающей сети, установку лучше производить с полного дистрибутива Debian, а не с урезанного дистрибутива NetInstall, который для завершения установки ОС может потребовать загрузки по сети каких-то недостающих пакетов.

Итак, предположим, что мы установили систему и не подключили микрокод на этапе установки. После загрузки системы мы увидим неработающую сеть и ошибки в dmesg, свидетельствующие о невозможности загрузки firmware

 

Устанавливаем firmware для сетевых контроллеров с накопителя

Мы можем установить недостающий микрокод firmware с USB накопителя, предварительно загрузив на этот накопитель пакет из онлайн репозиториев на каком-то другом компьютере. Если нет USB накопителя, но в iLO активирован функционал Advanced features, то мы можем удалённо подмонтировать каталог с нужным пакетом в качестве дополнительного виртуально диска. В нашем случае выбран последний вариант.

Создадим на клиентской файловой системе (на компьютере, с которого запущена консоль iLO) отдельный каталог и скопируем в него загруженный с сайта deb-пакет содержащий нужные нам микрокоды firmware. Используя функционал iLO, смонтируем этот каталог в качестве виртуального диска на нашем Linux-сервере.

Обратите внимание на то, что каталог монтируется в режиме Read Only и имеет ограничения по размеру:

После того, как каталог подключен через iLO, в логе системы (смотрим, например, через dmesg) появятся сообщения об обнаружении нового виртуального накопителя.

Как видно, в нашем случае этот виртуальный накопитель ассоциирован в системе с устройством /dev/sda. Создадим временный каталог и смонтируем в него устройство /dev/sda

# mkdir /mnt/hp-virtual-drive
# mount /dev/sda /mnt/hp-virtual-drive
# ls -la /mnt/hp-virtual-drive

Теперь нам доступен deb-пакет, который ранее был помещён в подключенный через iLO каталог:

Выполняем установку пакета, используя утилиту dpkg:

# dpkg –i /mnt/hp-virtual-drive/firmware-bnx2_20161130-3_all.deb

Данный пакет создан таким образом, что в процессе его установки вызывается пересборка загружаемого в процессе запуска ОС образа initrd (initial ramdisk)

После этого перезагружаем сервер и проверяем то, что микрокод firmware успешно подключается в ходе загрузки ОС.

Теперь в системе можно настроить параметры IP (/etc/network/interfaces) и сеть должна заработать.

 

Подключаем репозитории non-free в Debian GNU/Linux 9

Для дальнейшего обновления установленного пакета firmware-bnx2 к менеджеру пакетов apt можно подключить non-free репозитории, о которых упоминалось выше. Для этого внесём соответствующие изменения в файле /etc/apt/sources.list, приведя его, например, к следующему виду:

# From https://wiki.debian.org/SourcesList
#
deb     http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free
#
deb     http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free
#
deb     http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free
#

Теперь осталось только обновить кеш менеджера пакетов и можно устанавливать и обновлять дополнительные недостающие микрокоды firmware из non-free репозиториев Debian

# apt-get update
# apt-get install firmware-bnx2

В заключении, говоря об установке Debian на HP ProLiant DL380 G5, можно также отметить тот факт, что проблем с драйвером cciss, как в CentOS 7, попросту нет, ибо драйвер cciss, как это ни странно, имеется в базовом составе дистрибутива Debian GNU/Linux 9.

Всего комментариев: 4 Комментировать

  1. vlett /

    Ещё можно просто скачать образ Debian, который включает фирмварю: cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

    1. Алексей Максимов / Автор записи

      Спасибо за информацию, Владимир Валерьевич. Заметка была написана исключительно в целях расширения кругозора :)

  2. Обратная ссылка: Использование сервера с FC HBA QLogic на базе Debian GNU/Linux 9.3 и SCST в качестве СХД для томов CSV в кластере высоко-доступных виртуальных машин Hyper-V – Блог /

  3. Oleg /

    Да для кругозора хорошо. Я решил эту проблему проще, скачал файлик Bnx2 , после открыл образ debian 9 с помощью MagicISo и в папку Firmware вставил этот файлик bnx2 , после сохранил образ и при установке уже ОС сама все поставила. А объяснение отличное т.к. не всегда интернет под рукой. :)

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