Summary: | Модуль aic94xx не работает с SATA дисками (диски не видны) | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Slava Dubrovskiy <dubrsl> | ||||||
Component: | kernel-image-std-smp | Assignee: | Sergey Vlasov <vsu> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | critical | ||||||||
Priority: | P2 | CC: | mike, silicium | ||||||
Version: | unstable | ||||||||
Hardware: | all | ||||||||
OS: | Linux | ||||||||
Attachments: |
|
Description
Slava Dubrovskiy
2008-03-19 19:46:28 MSK
Created attachment 2510 [details]
вывод dmesg
Created attachment 2511 [details]
вывод lspci
На самом деле здесь несколько проблем: 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 даже при использовании поддерживаемых этой версией устройств; эту проблему следует решать отдельно. (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 Спасибо еще раз за ответ. (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 (хотя на серверной плате это скорее как раз менее проверенный вариант). Думаю оно уже зафиксилось |