[Comm] zaptel : sisyphus -> alm24

Eugene Prokopiev =?iso-8859-1?q?prokopiev_=CE=C1_stc=2Edonpac=2Eru?=
Вт Дек 6 15:19:27 MSK 2005


>>Сразу оговорюсь, что речь пока не идет о "правильной" сборке в RPM, 
>>первая задача - просто добиться работоспособности модуля.

http://lists.altlinux.ru/pipermail/sisyphus/2005-April/057742.html

помогло make KSRC=/usr/src/linux-2.4.26-std-up/, там уж дальше нашелся 
modversions.h и все собралось правильно


>># lsmod | grep z
>>Module Size Used by Tainted: P
>>zaptel 184384 0 (unused)
> 
> 
> Модули zaptel есть в Сизифе. Может стоит использовать их как основу для
> собственной сборки?

Именно так и планируется, но есть некоторые сложности ...

За основу беру kernel-modules-zaptel-std26-up-1.0-alt4.132620.4.src.rpm, 
переименовываю спек в kernel-modules-zaptel-std-up, правлю версии:

< %define kversion      2.4.26
< %define krelease      alt6
< %define flavour               std-up
---
 > %define kversion      2.6.12
 > %define krelease      alt4
 > %define flavour               std26-up

при сборке получаю:

make -C  /home/john/RPM/BUILD/kernel-source-zaptel-1.0/zaptel 
CFLAGS="-D__KERNEL__ -I/usr/src/linux-2.4.26-std-up/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i586 
-DMODULE -DMODVERSIONS -include 
/usr/src/linux-2.4.26-std-up/include/linux/modversions.h" 
MAKING_MODULES=1 modules
make[1]: Entering directory 
`/home/john/RPM/BUILD/kernel-source-zaptel-1.0/zaptel'
make[1]: *** No rule to make target `modules'.  Stop.

жалуюсь Денису Смирнову, тот отвечает: "Гм. Странно. Дело в том, что -C 
должно указывать не на этот каталог, а на каталог внутри 
kernel-headers-modules."

тогда я в спеке перед:

make -C %_usrsrc/linux-%kversion-%flavour SUBDIRS=`realpath .` modules

вписываю:

echo %_usrsrc/linux-%kversion-%flavour
ls %_usrsrc/linux-%kversion-%flavour

и получаю:

+ echo /usr/src/linux-2.4.26-std-up
/usr/src/linux-2.4.26-std-up
+ ls /usr/src/linux-2.4.26-std-up
Makefile  Rules.make  arch  drivers  gcc_version.inc  include  scripts
++ realpath .
+ make -C /usr/src/linux-2.4.26-std-up 
SUBDIRS=/home/john/RPM/BUILD/kernel-source-zaptel-1.0/zaptel modules
make: Entering directory `/usr/src/linux-2.4.26-std-up'
make -C  /home/john/RPM/BUILD/kernel-source-zaptel-1.0/zaptel 
CFLAGS="-D__KERNEL__ -I/usr/src/linux-2.4.26-std-up/include -Wall 
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common 
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i586 
-DMODULE -DMODVERSIONS -include 
/usr/src/linux-2.4.26-std-up/include/linux/modversions.h" 
MAKING_MODULES=1 modules
make[1]: Entering directory 
`/home/john/RPM/BUILD/kernel-source-zaptel-1.0/zaptel'
make[1]: *** No rule to make target `modules'.  Stop.

Т.е. первоначально в %_usrsrc/linux-%kversion-%flavour оказывается то, 
что нужно, но следующий make все портит. Откуда он берется? Наверное, из 
/usr/src/linux-2.4.26-std-up/Makefile, в котором цель modules описана так:

modules: $(patsubst %, _mod_%, $(SUBDIRS))
         $(MAKE) -C $(patsubst _mod_%, %, $@) CFLAGS="$(CFLAGS) 
$(MODFLAGS)" MAKING_MODULES=1 modules

Что править?

-- 
С уважением, Прокопьев Евгений



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