Карта Adaptec 29320 не распознается операционной системой.

Вопрос или проблема

Я установил SCSI-карту Adaptec 29320 LVE в сервер HP DL380 Gen9. До этого она использовалась в HP DL380 Gen5.

При загрузке POST видит карту:

[    8.586139] scsi host7: Adaptec AIC79XX PCI-X SCSI HBA DRIVER, Rev 3.0
                <Adaptec 29320LPE PCIe Ultra320 SCSI adapter>
                aic7901: Ultra320 Wide Channel A, SCSI Id=7, PCI-X 101-133MHz, 512 SCBs

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

[   29.595322] scsi 7:0:0:0: tag#448 Attempting to queue an ABORT message:
[   29.596425] CDB:
[   29.596427]  0x12
[   29.597486]  0x0
[   29.598527]  0x0
[   29.599561]  0x0
[   29.600582]  0x24
[   29.601598]  0x0

[   29.605751] scsi 7:0:0:0: tag#448 Command already completed

Номер tag и канал scsi увеличиваются с каждым сообщением. После загрузки lsscsi не показывает устройство(а), подключенное к карте, хотя использование программного обеспечения SCSISelect из PROM распознает подключенные устройства.

Я пробовал это с Ubuntu 24.04.01 и Debian 12 с тем же результатом. Я пробовал UEFI (с включенной и отключенной безопасностью) и режимы загрузки legacy с тем же результатом. В SCSISelect я пробовал устанавливать Int 13 Support в Enabled, Disabled:scan и Disabled: NOT scan с тем же результатом.

lsmod возвращает:

# lsmod | grep aic79xx
Module                  Size  Used by
aic79xx               221184  0
scsi_transport_spi     40960  1 aic79xx

В dmesg есть дополнительная информация:

# dmesg | grep aic79xx
[    2.750109] UBSAN: shift-out-of-bounds in /build/linux-dLQ24T/linux-6.8.0/drivers/scsi/aic7xxx/aic79xx_core.c:7026:31
[    2.753600]  ? ahd_write_flexport+0xe5/0x130 [aic79xx]
[    2.753961]  ahd_init.cold+0x14/0x19 [aic79xx]
[    2.754306]  ahd_pci_config+0x1bf/0x210 [aic79xx]
[    2.754646]  ahd_linux_pci_dev_probe+0xfe/0x260 [aic79xx]
[    3.085612] UBSAN: shift-out-of-bounds in /build/linux-dLQ24T/linux-6.8.0/drivers/scsi/aic7xxx/aic79xx_core.c:4338:31
[    3.088560]  ahd_reset_channel.cold+0x15/0x1a [aic79xx]
[    3.089119]  ahd_linux_initialize_scsi_bus+0x51/0x1e0 [aic79xx]
[    3.089395]  ahd_linux_register_host+0x204/0x2e0 [aic79xx]
[    3.089668]  ahd_linux_pci_dev_probe+0x12a/0x260 [aic79xx]

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

У кого-нибудь есть идеи, что я могу попробовать, чтобы эта карта заработала?

Ответ или решение

Ваша проблема связана с некорректным распознаванием SCSI-карты Adaptec 29320 LVE операционной системой на сервере HP DL380 Gen9 после предыдущего использования в сервере HP DL380 Gen5. Давайте рассмотрим все аспекты этой ситуации и предложим возможные варианты решения.

Теория

SCSI-карта Adaptec 29320 LVE является высокопроизводительным устройством, поддерживающим Ultra320 SCSI-интерфейс и предлагает хорошую производительность для подключения различных периферийных устройств. Однако перенос карты с одного поколения сервера на другое может выявить несовместимости, связанные с архитектурными изменениями и обновлением программного обеспечения.

Сообщения, которые вы видите в dmesg, свидетельствуют о попытке драйвера работать с устройством, однако эта попытка сопровождается ошибками, такими как "UBSAN: shift-out-of-bounds". Это указывает на наличие проблем в коде драйвера, связанных с обработкой специфических данных или регистров устройства.

Пример

Сообщения, которые отображаются в выводе dmesg, такие как:

[    2.750109] UBSAN: shift-out-of-bounds in /build/linux-dLQ24T/linux-6.8.0/drivers/scsi/aic7xxx/aic79xx_core.c:7026:31

указывает на проблему в исходном коде драйвера aic79xx. UBSAN (Undefined Behavior SANitizer) — это инструмент, который выявляет неопределенные поведения в коде. Ошибка "shift-out-of-bounds" показывает, что происходит некорректная операция с битовыми сдвигами, что приводит к неопределенному поведению, влияющему на инициализацию и последующую работу карты.

Применение

1. Обновление драйверов и прошивки:

  • Проверьте наличие обновлений для драйверов SCSI вашего оборудования. Более новые версии драйверов могут содержать исправления известных ошибок и улучшения совместимости с новым серверным оборудованием.
  • Убедитесь, что у вас установлена самая последняя версия BIOS и прошивки для сервера HP DL380 Gen9, поскольку обновления могут содержать исправления, улучшающие взаимодействие с устаревшими устройствами.

2. Компиляция и настройка драйвера из исходного кода:

  • Подумайте о получении последней версии драйвера aic79xx из официальных репозиториев или от разработчиков Adaptec. Возможно, вам потребуется самостоятельно собрать драйвер из исходного кода с применением исправлений, устраняющих текущие ошибки.
  • Если вы уверены в своих силах, вы можете попытаться внести изменения в код драйвера, чтобы исправить ошибку "shift-out-of-bounds". Это потребует понимания, как драйвер взаимодействует с оборудованием на низком уровне.

3. Проверка параметров конфигурации:

  • Обратите внимание на параметры конфигурации SCSI в BIOS сервера, особенно функции, касающиеся режима работы SCSI-карты, такие как Int 13 Support. Хотя вы уже пробовали разные настройки, возможно, стоит обратиться к документации Adaptec для более подробного понимания, как эти параметры влияют на работу карты.
  • Убедитесь, что ваши конфигурации UEFI/Legacy boot mode согласуются с требованиями поддерживаемого оборудования и операционной системы.

4. Тестирование в другой среде:

  • Если возможно, протестируйте вашу SCSI-карту в аналогичном сервере или на другой операционной системе для исключения аппаратной неисправности карты.
  • Рассмотрите использование более старой версии операционной системы или ядра, где драйверы могли быть более совместимыми с данной версией оборудования.

5. Обратная связь и поддержка сообщества:

  • Обратитесь к сообществу Linux или специализированным форумам Adaptec для получения поддержки и возможных патчей. Сообщество может предоставить ценные предложения и решение вашей проблемы на основе опыта других пользователей.

Заключение

Настройка устаревших SCSI-карт на современном оборудовании может быть сложной задачей, требующей внимания как к аппаратным несовместимостям, так и к программным проблемам. Расположение источника проблемы через детальное тестирование и использование вышеуказанных методик может привести к успешному решению проблемы. В некоторых случаях может потребоваться компромисс в виде использования другой версии операционной системы или расширение возможностей за счет дополнительного оборудования.

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

Капча загружается...