[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