[d-kernel] ÷ÙÎÏÓ IDE × ÍÏÄÕÌØ

Anton Farygin rider на altlinux.com
Вт Фев 8 15:58:30 MSK 2005


Sergey Vlasov wrote:

>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, и в этом
>месте его загружать не надо.
>  
>
Мне все-таки кажется что надо расширять функциональность hwdatabase.

Rgds,
Rider



Подробная информация о списке рассылки devel-kernel