Перейти к основному содержанию

Прошивка LSI 2208 в режим IT для использования в качестве HBA

Firmware Прошивка

Внимание! Официально контроллеры LSI (MegaRAID) с чипом 2208 не поддерживают прошивку в режим HBA и не имеют прошивки IT. Все дальнейшие действия, которые вы выполняете по этой статье, вы выполняете на свой страх и риск. Риск превратить ваш RAID контроллер в кирпич.

Прежде чем приступать к опытам с прошивкой, вы можете воспользоваться режимом JBOD.

LSI 2208 можно перевести в JBOD-режим (прямой проброс дисков в ОС без создания виртуальных массивов), используя утилиты megacli или storcli. Это удобно для лабораторий, где контроллер может позже понадобиться в RAID-режиме без повторной прошивки.

JBOD-режим — контроллер просто передаёт диски «как есть» в систему (аналог IT-режима, но без смены прошивки). Не требует рисков перепрошивки, сохраняет возможность быстрого возврата к RAID. Некоторые ОС (например, FreeNAS/ZFS) могут «видеть» диск через контроллер не напрямую, что иногда влияет на производительность.

Активация JBOD через megacli/storcli

Проверка текущего состояния контроллера:

megacli -LDInfo -LAll -aALL  # Показать виртуальные диски (если есть)
storcli /c0 show             # Альтернатива для storcli

Включение JBOD для всех дисков:

megacli -AdpSetProp -EnableJBOD -1 -aALL  # Активировать глобально
megacli -PDMakeJBOD -PhysDrv[32:0] -a0    # Для конкретного диска (пример)

Или через storcli (более современная утилита):

storcli /c0/e32/s0 set jbod                # Для диска в слоте 32:0
storcli /c0 set jbod=on                    # Глобальное включение

Проверка результата:

megacli -PDList -aALL | grep "JBOD"        # Фильтр по JBOD-дискам
storcli /c0 /eall /sall show               # Показать все диски и их режим

 Перевод статьи: https://mywiredhouse.net/blog/flashing-lsi-2208-firmware-use-hba/

Опасно, Карл!

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

Я привык выходить за границы возможного… вот, высказался.

Недавно я приобрёл себе недорогое оборудование уровня домашнего дата-центра — материнскую плату Supermicro X9DRH-7F — и захотел передать встроенный контроллер LSI 2208 в управление FreeNAS внутри виртуальной машины, чтобы не подключать дополнительную PCIe-плату. Мой предыдущий опыт с LSI HBA подсказывал, что перепрошить их между RAID- и IT-режимами довольно просто — я уже делал это, перепрошив Dell PERC H310 в IT-режим. Я даже не стал исследовать вопрос, а просто взял загрузочный диск, загрузил на него инструменты LSI вроде megarec, megacli и sas2flash, и принялся за работу: создал резервные копии блоков прошивки и стёр BIOS на контроллере.

supermicro

Затем, когда я начал искать прошивку, мне попались несколько статей в интернете, утверждающих, что для чипсета LSI 2208 на моей материнской плате не существует IT-прошивки, и что максимум, на что можно рассчитывать, — это JBOD-режим через аппаратный контроллер. Фу.

Однако я продолжил копать и нашёл в разных документах вот эти картинки:

lsi

В красном углу у нас тяжёловес LSI 2208 с двумя процессорами PowerPC 440 на 800 МГц, шиной PCIe x8, ядром SAS-2 на 4.8 Гб/с и 4 МБ контекстной памяти.

В синем углу его облегчённый брат LSI 2308, схожий по архитектуре, с теми же характеристиками, но только с одним процессором PowerPC 440 (хотя и на тех же 800 МГц).

Важная деталь: у LSI 2308 есть IT-прошивка, и у меня даже есть пара HP 220-х карт на этом чипсете, которые я успешно перепрошил на LSI-прошивку версии 20.

lsi

Учитывая схожесть 2208 и 2308, я задумался: а что, если попробовать прошить встроенный Broadcom-чипсет на моей X9DRH универсальной прошивкой от LSI HBA? Поскольку я уже стёр старую прошивку, решил рискнуть.

На этом моменте некоторые из вас подумают: "Этот парень — идиот, зачем он рискует дорогой материнской платой и рабочим RAID-контроллером?" Для меня он не рабочий — я идеологически не люблю аппаратные RAID-устройства и предпочитаю программные RAID-решения, потому что их можно восстановить на обычном железе. Я же не дата-центр, чтобы держать на полке запасные детали на случай поломки.

Ну ладно… давайте продолжим.

Результат

Начнём с результата, ибо именно он и интересен.

До:

lsi
LSI 2208 — всё выглядит отлично!

После:

lsi
LSI2208 думает, что он LSI2308!

Прошивка LSI 2208 из RAID в IT-режим

⚠️ Внимание: Это абсолютно не поддерживается и не рекомендуется!

Данный материал представлен исключительно в ознакомительных целях. Если вы решите повторить эти действия и что-то сломаете — под вашу ответственность. Вряд ли в службе поддержки какого-либо вендора вам скажут: "О? Проблемы из-за прошивки от другого устройства? Как неожиданно!".

Как я это сделал (для истории)

Использовал 2 USB-флешки:

  1. DOS-загрузочную с утилитами (megarec, megacli, sas2flash).
  2. С sas2flash.efi для работы из EFI Shell.

Полезные файлы:

  • 9207_8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows.zip — содержит прошивку 9207-8.bin и BIOS mptsas2.rom
  • 9207_8e_Package_P14_IT_Firmware_BIOS_for_MSDOS_Windows.zip — старая версия sas2flash (менее привередлива к перепрошивке)
  • lsi_dos.zipmegarec, megacli, sas2flash и др.
  • lsi2208fixer.zip — включает прошивку для восстановления 2208
  • sas2008.zip — пустой SBR-файл (empty.bin).
  • Installer_P20_for_UEFI.zipsas2flash.efi для UEFI.

Сначала убедимся, что megarec видит устройство (если нет — пробуем другие версии утилиты):

megarec -adplist

Сделаем резервную копию SBR и SPD (smc = Supermicro, 8.3-формат для DOS):

megarec -readsbr 0 smc2208.sbr
megarec -readspd 0 smc2208.spd

Сохранение SAS-адреса:

megacli -adpallinfo -a0 > allinfo.txt

В файле allinfo.txt ищем строку с SAS-адресом (уникален для каждой карты).

Очистка контроллера. Заменяем SBR на пустой (источник empty.bin неизвестен, возможно, sbrempty.bin):

megarec -writesbr 0 empty.bin

Полная очистка флеш-памяти:

megarec -cleanflash 0

Перезагрузка.

Прошивка IT-режима через EFI. Проверяем, что sas2flash видит контроллер:

sas2flash -list

Прошиваем firmware и BIOS (BIOS можно пропустить для ускорения загрузки):

sas2flash -o -f 9207-8.bin -b mptsas2.rom

Проверяем, что sas2flash видит контроллер:

sas2flash -list

Восстанавливаем SAS-адрес (из allinfo.txt):

sas2flash -o -sasadd 50030480195exxxx

Если нужно убрать BIOS, сохранив адрес:

sas2flsh -o -e 6

Возврат к оригинальной прошивке LSI 2208

Да, это возможно! Перед тем как делать скриншоты и проводить предыдущие операции, я успешно вернул свой контроллер к полностью рабочему состоянию с родной прошивкой LSI2208 — правда, с парой моментов, когда "сердце уходило в пятки".

Для восстановления использовалась аварийная прошивка от LSI, найденная в этом отличном обсуждении на ServeTheHome:

https://forums.servethehome.com/index.php?threads/is-there-a-way-to-restore-an-lsi-2208-after-firmware-update-failure.13237/

Поместил ISO с аварийной прошивкой в Сборку для системного администратора.

Процесс восстановления

Использовал пакет LSI_DOS.zip из указанной темы (распакованный из ISO — те же DOS-утилиты, что и для прошивки в IT-режим).

Очистка и восстановление SBR:

megarec -cleanflash 0

Перезагрузка.

megarec -writesbr 0 smc2208.sbr

Прошивка аварийного образа (2208_16.rom — образ из упомянутого треда на STH):

megarec -m0flash 0 2208_16.rom

Перезагрузка — контроллер вернулся к рабочей прошивке версии 3.270.65-2578.

Обновление до последней версии прошивки Supermicro. Последнюю прошивку можно найти здесь:

ftp://ftp.supermicro.com/Driver/SAS/LSI/2208/Firmware(not_for_X9DRL-7F)/

megacli -adpallinfo -a0

Выводит подробную информацию, включая SAS-адрес и настройки.

megacli -adpfwflash -f smc2208.rom -a0

Перезагрузка — теперь прошивка 3.460.115 от Supermicro.

Восстановление SAS-адреса (если нужно). Где-то в процессе мог потребоваться возврат оригинального SAS-адреса. Точной команды у меня нет (я тогда слишком радовался, что контроллер "ожил"), но это могло выглядеть так:

megaoem -sasadd 50030480195exxxx

Замените 50030480195exxxx на ваш адрес из резервной копии allinfo.txt.

Важные замечания

  • Резервные копии — ваше спасение. Файлы smc2208.sbr, smc2208.spd и allinfo.txt критически важны для восстановления.
  • Версии утилит. Некоторые шаги могут требовать конкретных версий megarec/megacli — если что-то не работает, пробуйте альтернативные сборки.
  • SAS-адрес. Если контроллер после прошивки не видит диски, проверьте, что адрес совпадает с оригинальным.

Контроллер успешно вернулся к «родной» прошивке, но процесс требует внимательности. Если решите повторить — держите под рукой запасные компоненты и никогда не пропускайте резервное копирование!

P.S. Для тех, кто случайно «закирпичил» карту: это исправимо, но нервы придётся потрепать.

Проблемы и решения

Некоторые пользователи столкнулись с тем, что после перепрошивки не отключается звуковой сигнал (buzzer) на их устройствах.

Анонимный участник предложил следующие команды (лично я их не проверял, так как у меня такой проблемы не возникло):

MegaCli -AdpSetProp -AlarmSilence -aALL

Или:

MegaSCU -AdpSetProp -AlarmDsbl -aALL

Надеюсь, одна из них поможет, если вас тоже достаёт этот писк!

Удачи! (или, как говорят австралийцы — hooroo!)

Из комментариев

В комментариях сообщали об успешных прошивках.

  • Контроллер LSI 2208 на материнской плате Supermicro X9DRL-7F
  • HP Branded SAS1064E 4-Port
  • LSI 9266-8i
  • Контроллер LSI 2208 на материнской плате Supermicro X9DRH-7F
  • SuperMicro BPN-ADP-S2208L-H8iR
  • M5110

Цены

 

Похожие материалы

Прошивка Avago SAS 9300-8i Host Bus Adapter через UEFI

Имеем железку Avago SAS 9300-8i HBA. На ней стоит прошивка "IT" от 16 года. Начитался, что если поставить прошивку "IR", то можно контроллер обучить работать с RAID. Проверим. Если не получится — обновим "IT" до последней версии.

Zabbix шаблон для мониторинга RAID контроллеров LSI в ESXi 7

Сегодня серьёзная тема по мониторингу LSI контроллеров на гипервизорах ESXi 7. Очень много стало появляться аппаратных серверов, которые не могут и не умеют сообщать о том, что вышел из строя диск