Linux не видит raid-контроллер 3ware 9650SE

Вторая часть трилогии о модернизации бекап-сервера. Продолжаем работы по модернизации бекап-сервера. О том, как прошла замена дисков массива md0 уже написал, просьба прочесть. В этом посте рассморим вопрос «видимости» системой raid-контроллера 3ware 9650SE-2LP

Сервер на базе процессора AMD Ryzen 3 PRO 2100GE. Ядро собрано с опцией

CONFIG_SCSI_3W_9XXX=y

И после перезагрузки ошибки

3w-9xxx: scsi0: ERROR: (0x06:0x0015): No valid response during init connection.
3w-9xxx: scsi0: ERROR: (0x06:0x0007): Initconnection failed while checking SRL.
3w-9xxx: scsi0: ERROR: (0x06:0x0021): Compatibility check failed during reset sequence.
3w-9xxx: scsi0: ERROR: (0x06:0x000C): PCI Parity Error: clearing.
3w-9xxx: scsi0: ERROR: (0x06:0x000D): PCI Abort: clearing.

Как оказалось это общая болячка для всех серверов с AMD Ryzen и решается она правкой одного файла в исходниках ядра

cd /usr/src/linux/drivers/pci
vi quirks.c

Ищем блок со строками

DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);

#ifdef CONFIG_PCI_ATS
/*
* Some devices require additional driver setup to enable ATS.

и вставляем нужную строку

DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0420, quirk_no_ext_tags);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, 0x0422, quirk_no_ext_tags);

DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1452, quirk_no_ext_tags);

#ifdef CONFIG_PCI_ATS
/*
* Some devices require additional driver setup to enable ATS.

Пересобираем и инсталируем новое ядро

genkernel --clean all

Перезагружаем и проверяем, что видит ОС

tw_cli /c0 show

Linux не видит raid-контроллер 3ware 9650SE

На этом этапе все. Далее предстоит миграция ОС на /c0/u0

0 0 голоса
Оцените статью
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии