Bug 8672

Summary: 2.6.14 не видит SCSI дисков подключенных к LSI (модуль mptscsih)
Product: Sisyphus Reporter: Ranger <pvl>
Component: hwdatabaseAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P2 CC: alexustal, lakostis, mike, rider, vsu
Version: unstable   
Hardware: all   
OS: Linux   

Description Ranger 2005-12-17 05:38:19 MSK
после установки ядра (2.6.14-alt-2) перестал видеться диск подключенный к
LSI53C1030.
Comment 1 Ranger 2005-12-17 05:42:12 MSK
Может поможет: диск заработал после добавления в initrd-... модуля mptspi
Comment 2 Sergey Vlasov 2005-12-17 13:10:47 MSK
Это результат обновления драйверов MPT в ядре - в новой версии изменилась
структура драйверов, и поддержку различных типов адаптеров разнесли по разным
модулям:

- mptspi - SPI (Parallel Scsi);
- mptfc  - Fiber Channel;
- mptsas - SAS (Serial Attached SCSI).

Теперь вместо mptscsih нужно загружать набор из модулей mptspi, mptfc, mptsas,
соответствующий имеющимся адаптерам (эти модули автоматически вытянут и mptscsih
по зависимостям).

Теоретически mkinitrd при отсутствии строки probeall scsi_hostadapter ... в
файле /etc/modules.conf должен автоматически определить нужный набор модулей
(при условии, что соответствующие PCI-устройства имеют класс Mass storage
controller).  При наличии явного указания scsi_hostadapter в modules.conf этот
автоматический поиск отключается, и конфигурацию нужно обновлять вручную.

Для ядра 2.6.12 автоопределение в mkinitrd, вероятнее всего, не работало
правильно (список идентификаторов PCI-устройств в старой версии драйверов
находился в модуле mptbase, а для доступа к дискам небходимо было загружать ещё
и модуль mptscsih).  Это можно попробовать обойти, добавив в modules.conf строку
above mptbase mptscsih.  В новой версии драйверов это не требуется, поскольку
модули поддержки адаптеров (mptspi, mptfc, mptsas) теперь имеют зависимость на
mptscsih.
Comment 3 Sergey Vlasov 2005-12-18 12:28:45 MSK
Как выяснилось, mkinitrd всё равно работает неправильно из-за записей в
hwdatabase, которые теперь стали неверными:

$ rpm -qf /usr/share/hwdatabase/pcitable 
hwdatabase-0.3.17-alt1

$ grep mpt /usr/share/hwdatabase/pcitable
1000    0030    mptscsih
1000    0032    mptscsih
1000    0040    mptscsih
1000    0621    mptscsih
1000    0622    mptscsih
1000    0623    mptscsih
1000    0624    mptscsih
1000    0625    mptscsih
1000    0626    mptscsih
1000    0627    mptscsih
1000    0628    mptscsih
1000    0629    mptscsih

Начиная с ядра 2.6.13, для этих устройств должны загружаться другие модули:

- для 0030, 0032 - mptspi;
- для 06xx - mptfc;
- для 0040 - непонятно (вроде бы это PCI_DEVICE_ID_LSI_53C1035, но этого
идентификатора ни в одном драйвере нет - в том числе и в 2.6.12).

Необходимо сделать так, чтобы записи с mptscsih использовались только для ядер
<= 2.6.12 (для этих ядер автоматический поиск по modules.pcimap даст неверный
результат, поскольку таблица PCI ID там находится в модуле mptbase).
Comment 4 Sergey Vlasov 2005-12-18 12:29:27 MSK
reassign
Comment 5 Sergey Vlasov 2006-02-10 14:08:58 MSK
*** Bug 9034 has been marked as a duplicate of this bug. ***
Comment 6 Anton Farygin 2006-09-29 12:44:35 MSD
Желающие исправить есть ? я перевешу баг.
Comment 7 Konstantin A Lepikhov (L.A. Kostis) 2006-11-07 00:41:08 MSK
Насчет следущих строк у меня есть сомнение:
1000    0040    1000    0033    megaraid
+driver 2.6|megaraid_mbox
1000    0040    1000    0066    megaraid
+driver 2.6|megaraid_mbox
- похоже, это сделано для драйвера, который предлагает LSI, внутри которого все
равно живет обычный mptspi. Более того, строки с +driver 2.6 неправильные в
принципе, поскольку неправильно трактуют имя драйвера (megaraid - это название
проприетарного драйвера, а не версии, входящей в состав ядра).

В-общем, я постарался это исправить в f6ca1a8d65e995421f1e147d32da47fe86828e7e

Comment 8 Michael Shigorin 2006-12-18 14:29:35 MSK
2 Ranger: можете поставить свежий hwdatabase и проверить?
Comment 9 Ranger 2006-12-18 15:20:10 MSK
на ядре 2.6.18-ovz-smp заработало!