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 написал(а): > >> В письме 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, и собирать эти модули в одном пакете, чтобы они использовали один и тот же набор общих модулей.