Bug 15006 - Модуль aic94xx не работает с SATA дисками (диски не видны)
Summary: Модуль aic94xx не работает с SATA дисками (диски не видны)
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-std-smp (show other bugs)
Version: unstable
Hardware: all Linux
: P2 critical
Assignee: Sergey Vlasov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-03-19 19:46 MSK by Slava Dubrovskiy
Modified: 2008-07-11 13:52 MSD (History)
2 users (show)

See Also:


Attachments
вывод dmesg (19.13 KB, text/plain)
2008-03-19 19:48 MSK, Slava Dubrovskiy
no flags Details
вывод lspci (20.33 KB, text/plain)
2008-03-19 19:48 MSK, Slava Dubrovskiy
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Slava Dubrovskiy 2008-03-19 19:46:28 MSK
Ядро не видит диски SATA подключенные к RAID контроллеру.
Используется такая материнская плата:
http://www.supermicro.com/products/motherboard/Xeon800/E7520/X6DHP-3G2.cfm
Использовались самые разные настройки в биос. Результат - не работает.
Данный адаптер очень широко используется в материнских платах Интела,
Супермикро, ИБМ.

Совместными раскопками с vsu@ обнаружили, что данная проблема имеет место во
многих дистрибутивах. В некоторых решена.
Некоторые ссылки по теме:
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/82382
http://kernel.org/pub/linux/kernel/people/jejb/


Steps to Reproduce:
1.Установить дистрибутив на материнскую плату X6DHP-3G2 где диски SATA
подключены через RAID контроллер
2.
3.
Comment 1 Slava Dubrovskiy 2008-03-19 19:48:01 MSK
Created attachment 2510 [details]
вывод dmesg
Comment 2 Slava Dubrovskiy 2008-03-19 19:48:36 MSK
Created attachment 2511 [details]
вывод lspci
Comment 3 Sergey Vlasov 2008-03-20 13:48:20 MSK
На самом деле здесь несколько проблем:

1) Приложенный в attachment 2511 [details] вывод lspci содержит PCI ID 9005:041f,
отсутствующий в списке поддерживаемых устройств драйвера aic94xx. Тут проблема в
том, что контроллер имеет режим HostRAID (реализация RAID там на самом деле
программная), для которого, как обычно, есть только бинарный драйвер от
производителя; GPL-драйвер поддерживает только функциональность SAS-контроллера
без RAID. Таким образом, чтобы использовать aic94xx, необходимо в настройках
BIOS отключить режим RAID для этого контроллера, при этом меняется PCI ID
устройства.

2) Драйвер aic94xx, добавленный в 2.6.18-std-smp-alt7, был взят из ядра RHEL5
(kernel-2.6.18-8.1.6.el5); эта версия драйвера действительно не поддерживает
SATA-устройства - можно использовать только SAS. Поддержка SATA в aic94xx
появилась только в ядре 2.6.23, перенос её в 2.6.18 вряд ли возможен из-за
зависимости от множества изменений в libata.

3) Для новой версиия aic94xx требуется внешний файл firmware
(/lib/firmware/aic94xx-seq.fw), который в настоящее время отсутствует в пакетах.
Причём брать свежую версию с сайта Adaptec нельзя - во-первых, её лицензия
запрещает дальнейшее распространение, во-вторых, есть сведения, что с драйвером
aic94xx эта версия не работает
(https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/82382 - там
же есть и пригодный для использования файл firmware). К версии драйвера,
добавленной в ядро 2.6.18-std-smp-alt7, это не относится - в этом варианте
драйвера код firmware встроен непосредственно в модуль (в процессе чистки перед
включением драйвера в ядро этот кусок был оттуда выброшен и заменён на
использование внешнего файла firmware). Однако драйвер aic94xx из имеющихся в
Сизифе сборок 2.6.24 не будет работать без aic94xx-seq.fw.

4) Вариант "использовать драйвер от производителя" в данном случае не проходит,
поскольку на сайте Adaptec

http://www.adaptec.com/en-US/downloads/linux_source/linux_source_code?productId=SAS-44300&dn=Adaptec+Serial+Attached+SCSI+44300

самая свежая версия датирована маем 2007 года, и с ядром 2.6.18 уже не
собирается из-за изменений в API (да и лицензия опять-таки запрещает
распространение этой версии). Причём для дистрибутива RHEL 5.0, где ядро
основано на 2.6.18, драйвер всё-таки предлагается (версия там новее), но только
в виде собранных бинарных модулей для ядер с установочного диска; вариант,
пригодный для пересборки под конкретное ядро, не опубликован.

5) Наконец, судя по dmesg из attachment 2510 [details], на этой конкретной машине имеются
какие-то проблемы с прерываниями (сообщения "irq 169: nobody cared"), которые
также могут приводить к неработоспособности aic94xx даже при использовании
поддерживаемых этой версией устройств; эту проблему следует решать отдельно.
Comment 4 Slava Dubrovskiy 2008-03-20 14:26:05 MSK
(In reply to comment #3)
Сергей, спасибо большое за развернутый ответ.

> На самом деле здесь несколько проблем:
> 
> 1) Приложенный в attachment 2511 [details] [edit] вывод lspci содержит PCI ID 9005:041f,
> отсутствующий в списке поддерживаемых устройств драйвера aic94xx. Тут проблема в
> том, что контроллер имеет режим HostRAID (реализация RAID там на самом деле
> программная), для которого, как обычно, есть только бинарный драйвер от
> производителя; GPL-драйвер поддерживает только функциональность SAS-контроллера
> без RAID. Таким образом, чтобы использовать aic94xx, необходимо в настройках
> BIOS отключить режим RAID для этого контроллера, при этом меняется PCI ID
> устройства.
Прикладываю вывод с отключенным RAID. Модуль загружается автоматом. Если это
чем-то поможет.

> 2) Драйвер aic94xx, добавленный в 2.6.18-std-smp-alt7, был взят из ядра RHEL5
> (kernel-2.6.18-8.1.6.el5); эта версия драйвера действительно не поддерживает
> SATA-устройства - можно использовать только SAS. Поддержка SATA в aic94xx
> появилась только в ядре 2.6.23, перенос её в 2.6.18 вряд ли возможен из-за
> зависимости от множества изменений в libata.
Грустно. Еще один плюс перехода на новое ядро.

> 3) Для новой версиия aic94xx требуется внешний файл firmware
> (/lib/firmware/aic94xx-seq.fw), который в настоящее время отсутствует в пакетах.
> Причём брать свежую версию с сайта Adaptec нельзя - во-первых, её лицензия
> запрещает дальнейшее распространение, во-вторых, есть сведения, что с драйвером
> aic94xx эта версия не работает
> (https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/82382 - там
> же есть и пригодный для использования файл firmware). К версии драйвера,
> добавленной в ядро 2.6.18-std-smp-alt7, это не относится - в этом варианте
> драйвера код firmware встроен непосредственно в модуль (в процессе чистки перед
> включением драйвера в ядро этот кусок был оттуда выброшен и заменён на
> использование внешнего файла firmware). Однако драйвер aic94xx из имеющихся в
> Сизифе сборок 2.6.24 не будет работать без aic94xx-seq.fw.
Тут все ясно: нужно добавлять.

> 4) Вариант "использовать драйвер от производителя" в данном случае не проходит,
> поскольку на сайте Adaptec
> 
>
http://www.adaptec.com/en-US/downloads/linux_source/linux_source_code?productId=SAS-44300&dn=Adaptec+Serial+Attached+SCSI+44300
> 
> самая свежая версия датирована маем 2007 года, и с ядром 2.6.18 уже не
> собирается из-за изменений в API (да и лицензия опять-таки запрещает
> распространение этой версии). Причём для дистрибутива RHEL 5.0, где ядро
> основано на 2.6.18, драйвер всё-таки предлагается (версия там новее), но только
> в виде собранных бинарных модулей для ядер с установочного диска; вариант,
> пригодный для пересборки под конкретное ядро, не опубликован.
Если будет работать aic94xx + aic94xx-seq.fw то и не надо.

 
> 5) Наконец, судя по dmesg из attachment 2510 [details] [edit], на этой конкретной машине
имеются
> какие-то проблемы с прерываниями (сообщения "irq 169: nobody cared"), которые
> также могут приводить к неработоспособности aic94xx даже при использовании
> поддерживаемых этой версией устройств; эту проблему следует решать отдельно.
С этим разбираюсь. Возможно из-за этого не работает и RHEL 5.0 + adp94xx

Спасибо еще раз за ответ.
Comment 5 Sergey Vlasov 2008-03-20 14:48:14 MSK
(In reply to comment #4)
> > 5) Наконец, судя по dmesg из attachment 2510 [details] [edit] [edit], на этой
конкретной машине
> имеются
> > какие-то проблемы с прерываниями (сообщения "irq 169: nobody cared"), которые
> > также могут приводить к неработоспособности aic94xx даже при использовании
> > поддерживаемых этой версией устройств; эту проблему следует решать отдельно.
> С этим разбираюсь. Возможно из-за этого не работает и RHEL 5.0 + adp94xx

В первую очередь обратите внимание на обновления BIOS и настройки BIOS в районе
ACPI; если это не помогает, можно пробовать опции ядра acpi=noirq, pci=noacpi;
если всё совсем плохо - noapic (хотя на серверной плате это скорее как раз менее
проверенный вариант).
Comment 6 Michail Yakushin 2008-07-11 13:52:52 MSD
Думаю оно уже зафиксилось