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 1.0.2-alt1.@kreleasebuild@ +* Thu Jul 14 2005 Alexey Shabalin 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