[d-kernel] Вынос IDE в модуль
Sergey Vlasov
vsu на altlinux.ru
Вт Фев 8 14:16:24 MSK 2005
On Tue, Feb 08, 2005 at 01:47:55AM +0300, Vitaly Lipatov wrote:
> On Monday 07 February 2005 12:42, Sergey Vlasov wrote:
> > On Sat, Feb 05, 2005 at 05:50:34PM +0300, Vitaly Lipatov wrote:
> > > А какие у нас остались аргументы в пользу того,
> > > чтобы (для ядра 2.6.х) по-прежнему держать IDE
> > > вкомпилированным в ядро?
> > > Предлагается вынести его в отдельный модуль.
> >
> > Это уже давно предлагается; основная сложность тут в написании
> Куда FR повесить?
В принципе уже не надо ;)
> > соответствующей поддержки для mkinitrd.
> Сейчас в initrd толком не пакуется поддержка soft raid и
> sata-контроллеров, так что всё равно надо. И с учётом
> приближающейся повсеместной миграции на sata, приоритеты для ide
> теряюсь смысл.
> > Сейчас у меня есть вроде бы работающий кусок, определяющий
> > набор модулей для PCI IDE, обнаруженных текущим ядром.
> Здорово. А для sata?
Поскольку драйверы SATA сейчас работают через эмуляцию SCSI, для них
используется тот же способ, что и для SCSI - загрузка модулей,
перечисленных в (alias|probeall) scsi_hostadapter ... в /etc/modules.conf.
> > Правда, в случае, если в старом ядре не было нужного драйвера,
> > из-за чего использовался ide-generic, появившийся в новом ядре
> Да, это я ловил, делая initrd для ядра 2.6 из 2.4
> Но может это исправляется просто загрузочным CD с ядром 2.6?
То же самое вылезет и при обновлении ядра, если в предыдущей версии не
было нужного драйвера. Так что всё равно придётся что-то делать.
> > драйвер не будет использован автоматически. Видимо, стоит ещё
> > добавить поиск PCI IDE, которые могут оказаться на
> > ide-generic, по классу.
Тут вылезает ещё одна проблема - на таких PCI ID могут висеть ещё и
драйверы libata. А уж то, что сотворили в свежем sata_nv - вообще ужас:
2005/01/20 achew | { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
2005/01/20 achew | PCI_ANY_ID, PCI_ANY_ID,
2005/01/20 achew | PCI_CLASS_STORAGE_IDE<<8, 0xffff00, GENERIC },
Т.е., этот модуль будет вытаскиваться при наличии _любого_ контроллера
IDE от nVidia, а дальше функция ->probe смотрит, похож ли этот контроллер
на SATA:
2005/01/20 achew | // Make sure this is a SATA controller by counting the number of bars
2005/01/20 achew | // (NVIDIA SATA controllers will always have six bars). Otherwise,
2005/01/20 achew | // it's an IDE controller and we ignore it.
2005/01/20 achew | for (bar=0; bar<6; bar++)
2005/01/20 achew | if (pci_resource_start(pdev, bar) == 0)
2005/01/20 achew | return -ENODEV;
По этому поводу приходит на ум только фильтрация по пути к модулю -
например, так: если в имени файла модуля или модулей, вытаскиваемых по
зависимостям, есть /kernel/drivers/scsi/ - это не драйвер IDE, и в этом
месте его загружать не надо.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.ru/pipermail/devel-kernel/attachments/20050208/0feb75c8/attachment.bin
Подробная информация о списке рассылки devel-kernel