[d-kernel] Re: ipw2x00
Sergey Vlasov
vsu на altlinux.ru
Чт Июл 14 19:33:30 MSD 2005
On Thu, Jul 14, 2005 at 05:06:11PM +0400, Sergey Vlasov wrote:
> Как-то нужно передать информацию для modpost; возможно, придётся положить
> собранные файлы модулей ещё и в kernel-headers-ieee80211-%flavour, а потом
> как-то их подсовывать при сборке зависимых модулей.
Именно так и пришлось сделать (причём в kernel-headers-ieee80211-%flavour
кладутся даже не *.ko, а *.o, потом при сборке модулей эти файлы
копируются в сборочный каталог, в .tmp_versions/ создаются файлы *.mod, а
потом сборочная система ядра ещё и собирает из них *.ko).
Некрасиво, но другого способа быстро решить эту проблему я пока не вижу.
Если делать совсем правильно, нужно патчить scripts/mod/modpost.c в ядре,
чтобы добавить туда поддержку генерации и использования нескольких файлов
типа имеющегося сейчас Module.symvers.
--- modules/ieee80211/kernel-modules-ieee80211.spec.modpost 2005-07-14 15:20:40 +0400
+++ modules/ieee80211/kernel-modules-ieee80211.spec 2005-07-14 18:33:02 +0400
@@ -63,6 +63,11 @@ modules which interface with these drive
%install
%__mkdir_p %buildroot/%module_dir
%__cp -a *.ko %buildroot/%module_dir
+%__mkdir_p %buildroot/%_prefix/src/linux-%kversion-%flavour/drivers/net/ieee80211
+for f in *.ko; do
+ mod="${f%.ko}"
+ %__cp -a "$mod.o" %buildroot/%_prefix/src/linux-%kversion-%flavour/drivers/net/ieee80211/
+done
%__mkdir_p %buildroot/%_prefix/src/linux-%kversion-%flavour/include/net
%__cp -a net/* %buildroot/%_prefix/src/linux-%kversion-%flavour/include/net/
echo "%name = %version-%release" \
@@ -81,6 +86,7 @@ echo "%name = %version-%release" \
%files -n kernel-headers-%module_name-%flavour
%defattr(644,root,root,755)
%_prefix/src/linux-%kversion-%flavour/include/net/*
+%_prefix/src/linux-%kversion-%flavour/drivers/net/ieee80211
%_prefix/src/linux-%kversion-%flavour/kernel-modules-%module_name.release
%changelog
--- modules/ipw2100/kernel-modules-ipw2100.spec.modpost 2005-07-14 15:26:32 +0400
+++ modules/ipw2100/kernel-modules-ipw2100.spec 2005-07-14 18:33:47 +0400
@@ -53,6 +53,16 @@ PRO/Wireless 2100 Network Connection min
%build
. %_usrsrc/linux-%kversion-%flavour/gcc_version.inc
+
+%__mkdir .tmp_versions
+%__mkdir ieee80211
+for f in %_usrsrc/linux-%kversion-%flavour/drivers/net/ieee80211/*.o; do
+ mod="${f##*/}"
+ mod="${mod%.o}"
+ echo "$(pwd)/ieee80211/$mod.ko" > .tmp_versions/"$mod".mod
+ %__cp -a "$f" ieee80211/
+done
+
%make_build -C %_usrsrc/linux-%kversion-%flavour SUBDIRS=$PWD \
LINUXSRC=%_usrsrc/linux-%kversion-%flavour/ \
IEEE80211_INC=%_usrsrc/linux-%kversion-%flavour/include
--- modules/ipw2200/kernel-modules-ipw2200.spec.modpost 2005-07-14 15:25:09 +0400
+++ modules/ipw2200/kernel-modules-ipw2200.spec 2005-07-14 18:40:23 +0400
@@ -53,6 +53,16 @@ PRO/Wireless 2200 Network Connection min
%build
. %_usrsrc/linux-%kversion-%flavour/gcc_version.inc
+
+%__mkdir .tmp_versions
+%__mkdir ieee80211
+for f in %_usrsrc/linux-%kversion-%flavour/drivers/net/ieee80211/*.o; do
+ mod="${f##*/}"
+ mod="${mod%.o}"
+ echo "$(pwd)/ieee80211/$mod.ko" > .tmp_versions/"$mod".mod
+ %__cp -a "$f" ieee80211/
+done
+
%make_build -C %_usrsrc/linux-%kversion-%flavour SUBDIRS=$PWD \
LINUXSRC=%_usrsrc/linux-%kversion-%flavour/ \
IEEE80211_INC=%_usrsrc/linux-%kversion-%flavour/include
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : http://lists.altlinux.ru/pipermail/devel-kernel/attachments/20050714/5427d60d/attachment.bin
Подробная информация о списке рассылки devel-kernel