[d-kernel] Re: ipw2x00

Sergey Vlasov vsu на altlinux.ru
Чт Июл 14 17:06:11 MSD 2005


On Thu, Jul 14, 2005 at 02:25:43PM +0400, Alexey Shabalin wrote:
> Я отправил новые модули ipw2100, ipw2200, ieee80211 в cvs. 
> kernel-source-* залиты в инкоминг. Прошу посмотреть не замыленым
> глазом - не напутал ли я чего в зависимостях.

Да, зависимости не совсем правильные:

1) Модули ipw2?00 должны требовать для сборки не просто
kernel-headers-ieee80211-%flavour, а именно версию для соответствующего
ядра - kernel-headers-ieee80211-%kversion-%flavour-%krelease, иначе
получится путаница с заголовками.

2) Для установки пакетов с модулями также нужен не просто пакет
kernel-modules-ieee80211-%flavour (собранный неизвестно для какого ядра),
а именно та версия, заголовки от которой использовались при сборке.
Аналогичную проблему с модулями v4l и lirc я решал добавлением в пакет с
заголовками файла, содержащего информацию о версии и сборке пакета с
модулями, и использованием этого файла при сборке зависимых модулей.
После любой пересборки модулей ieee80211 потребуется пересборка ipw2100 и
ipw2200.

Кроме того, в некоторых местах нужно поправить каталоги, чтобы сборка
проходила не только через hasher, а и при использовании сборочных скриптов
из kernel CVS (там макрос %_usrsrc переопределяется, чтобы файлы брались
из временного каталога, поэтому при помещении файлов в собираемый пакет
надо использовать вместо него %_prefix/src).

> При сборке идет некоторвая ругань, но собирается и работает. Проверял
> работу ipw2100.

Вполне возможно, что модули действительно работают, только при загрузке
имеем вот такую неприятность:

ipw2200: no version for "ieee80211_get_crypto_ops" found: kernel tainted.

Соответственно получается Tainted: GF, хотя все модули "нормальные" :(

Как-то нужно передать информацию для modpost; возможно, придётся положить
собранные файлы модулей ещё и в kernel-headers-ieee80211-%flavour, а потом
как-то их подсовывать при сборке зависимых модулей.  По этому поводу я ещё
пока ничего не сделал; остальные изменения ниже (пока не коммитил).


Index: modules/ieee80211/kernel-modules-ieee80211.spec
===================================================================
RCS file: /cvs/kernel/kernel/modules/ieee80211/kernel-modules-ieee80211.spec,v
retrieving revision 1.1
diff -u -p -r1.1 kernel-modules-ieee80211.spec
--- modules/ieee80211/kernel-modules-ieee80211.spec	14 Jul 2005 10:11:05 -0000	1.1
+++ modules/ieee80211/kernel-modules-ieee80211.spec	14 Jul 2005 12:44:50 -0000
@@ -63,8 +63,10 @@ modules which interface with these drive
 %install
 %__mkdir_p %buildroot/%module_dir
 %__cp -a *.ko %buildroot/%module_dir
-%__mkdir_p %buildroot/%_usrsrc/linux-%kversion-%flavour/include/net
-%__cp -a net/*  %buildroot/%_usrsrc/linux-%kversion-%flavour/include/net/ 
+%__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" \
+	> %buildroot%_prefix/src/linux-%kversion-%flavour/kernel-modules-%module_name.release
 
 %post
 %post_kernel_modules %kversion-%flavour-%krelease
@@ -78,8 +80,9 @@ modules which interface with these drive
 
 %files -n kernel-headers-%module_name-%flavour
 %defattr(644,root,root,755)
-%_usrsrc/linux-%kversion-%flavour/include/net/*
+%_prefix/src/linux-%kversion-%flavour/include/net/*
+%_prefix/src/linux-%kversion-%flavour/kernel-modules-%module_name.release
 
 %changelog
-* * Thu Jul 14 2005 Alexey Shabalin <shaba на altlinux.ru> 1.0.2-alt1. на kreleasebuild@
+* Thu Jul 14 2005 Alexey Shabalin <shaba на altlinux.ru> 1.0.2-alt1. на kreleasebuild@
 - initial release
Index: modules/ipw2100/kernel-modules-ipw2100.spec
===================================================================
RCS file: /cvs/kernel/kernel/modules/ipw2100/kernel-modules-ipw2100.spec,v
retrieving revision 1.5
diff -u -p -r1.5 kernel-modules-ipw2100.spec
--- modules/ipw2100/kernel-modules-ipw2100.spec	14 Jul 2005 10:08:08 -0000	1.5
+++ modules/ipw2100/kernel-modules-ipw2100.spec	14 Jul 2005 12:44:50 -0000
@@ -25,7 +25,7 @@ BuildPreReq: kernel-build-tools
 BuildRequires: kernel-headers-%flavour = %kversion-%krelease
 BuildRequires: kernel-source-%module_name-%module_version
 BuildRequires: kernel-headers-modules-%flavour = %kversion-%krelease
-BuildRequires: kernel-headers-ieee80211-%flavour
+BuildRequires: kernel-headers-ieee80211-%kversion-%flavour-%krelease
 
 Provides:       kernel-modules-%module_name-%kversion-%flavour-%krelease = %version-%release
 Conflicts:      kernel-modules-%module_name-%kversion-%flavour-%krelease < %version-%release
@@ -37,7 +37,8 @@ PreReq: kernel-image-%flavour = %kversio
 ExclusiveArch: %ix86
 
 Requires: firmware-%module_name
-Requires: kernel-modules-ieee80211-%flavour
+%define ieee80211_release_file %_usrsrc/linux-%kversion-%flavour/kernel-modules-ieee80211.release
+%([ -s "%ieee80211_release_file" ] && echo "PreReq: $(cat "%ieee80211_release_file")")
 
 %description
 This project was created by Intel to enable support for the Intel
Index: modules/ipw2200/kernel-modules-ipw2200.spec
===================================================================
RCS file: /cvs/kernel/kernel/modules/ipw2200/kernel-modules-ipw2200.spec,v
retrieving revision 1.7
diff -u -p -r1.7 kernel-modules-ipw2200.spec
--- modules/ipw2200/kernel-modules-ipw2200.spec	14 Jul 2005 10:09:01 -0000	1.7
+++ modules/ipw2200/kernel-modules-ipw2200.spec	14 Jul 2005 12:44:50 -0000
@@ -24,7 +24,7 @@ BuildPreReq: kernel-build-tools
 BuildRequires: kernel-headers-%flavour = %kversion-%krelease
 BuildRequires: kernel-source-%module_name-%module_version
 BuildRequires: kernel-headers-modules-%flavour = %kversion-%krelease
-BuildRequires: kernel-headers-ieee80211-%flavour
+BuildRequires: kernel-headers-ieee80211-%kversion-%flavour-%krelease
 
 Provides:       kernel-modules-%module_name-%kversion-%flavour-%krelease = %version-%release
 Conflicts:      kernel-modules-%module_name-%kversion-%flavour-%krelease < %version-%release
@@ -36,7 +36,9 @@ PreReq: kernel-image-%flavour = %kversio
 ExclusiveArch: %ix86
 
 Requires: firmware-%module_name-2.3
-Requires: kernel-modules-ieee80211-%flavour
+
+%define ieee80211_release_file %_usrsrc/linux-%kversion-%flavour/kernel-modules-ieee80211.release
+%([ -s "%ieee80211_release_file" ] && echo "PreReq: $(cat "%ieee80211_release_file")")
 
 %description
 This project was created by Intel to enable support for the Intel
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.ru/pipermail/devel-kernel/attachments/20050714/d1a7c57a/attachment.bin


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