[d-kernel] ipw2x00

Sergey Vlasov vsu на altlinux.ru
Ср Июл 13 13:55:09 MSD 2005


On Tue, Jul 12, 2005 at 01:05:20PM +0400, Anton Farygin wrote:
> В письме Tue, 12 Jul 2005 11:45:36 +0400, Alexey Shabalin
> написал:
> > 12.07.05, Anton Farygin<rider на altlinux.com> написал(а):
> >> В письме Tue, 12 Jul 2005 10:53:22 +0400, Alexey Shabalin
> >> написал:
> >> >> Кстати, просьба мантейнеру ipw2200
> >> >> подумать, как уживать ipw2100 и ipw2200 в одной
> >> >> системе. Ибо текущая схема сборки
> >> >> дистрибутива не позволяет размещать в
> >> >> одном дистрибутиве два _конфликтующих_ пакета.
> >> >>
> >> > Вот не знаю как это можно решить. конфликт идет по куче файлов типа
> >> > ieee80211_crypt_*.ko.
> >> > у ipw2100 и ipw2200 они разные. апстрим их синхронизировать похоже не
> >> > собирается. Разве что извращатся и делать разные файлы типа
> >> > ipw2100_ieee80211_crypt_* и   ipw2200_ieee80211_crypt_*.
> >> 
> >> Почему бы и нет ?
> > 
> > Как срочно это надо сделать?
> 
> Чем быстрее - тем лучше.

Но так, как только что было сделано в kernel CVS, делать нельзя.  После
выполнения depmod получается следующее:

/lib/modules/2.6.12-std26-up-alt1/kernel/drivers/net/wireless/ipw2100/ipw2100.ko:
/lib/modules/2.6.12-std26-up-alt1/kernel/drivers/base/firmware_class.ko
/lib/modules/2.6.12-std26-up-alt1/kernel/drivers/net/wireless/ipw2200/ipw2200_ieee80211.ko
/lib/modules/2.6.12-std26-up-alt1/kernel/drivers/net/wireless/ipw2200/ipw2200_ieee80211_crypt.ko

Т.е., модуль ipw2100 получил в зависимости модули ieee80211 от ipw2200.
При этом версии ieee80211 там, похоже, разные, поэтому ничего хорошего не
выйдет - в зависимости от того, в каком порядке depmod прочитает файлы,
будет работать либо ipw2100, либо ipw2200.

Зависимости модулей определяются по именам экспортируемых функций; если
два модуля экспортируют функции с одинаковыми именами, неизвестно, какой
из них будет выбран.  Таким образом, чтобы разделить похожие модули,
необходимо как минимум в одном из них переименовать все экспортируемые
функции (и соответствующим образом исправить те модули, которые используют
эти функции). :(

Кстати, при переименовании модулей в данном случае ещё надо учитывать, что
в драйверах есть вызовы request_module("ieee80211_crypt_wep") и т.п. - эти
имена тоже нужно менять.

В данном случае возможен другой вариант - попробовать подобрать пару
версий ipw2100 и ipw2200, выпущенных примерно в одно время и имеющих
одинаковые компоненты ieee80211, и собирать эти модули в одном пакете,
чтобы они использовали один и тот же набор общих модулей.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.ru/pipermail/devel-kernel/attachments/20050713/53ad840c/attachment.bin


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