LINUX.ORG.RU
ФорумAdmin

Компиляция модуля!!!


0

0

Ребята, как можно скомпилить отдельный модуль, не проходя процедуру конфигурации и перекомпиляции ядра??? Дело в том, что когда перекомпилировал ядро и проходил настройку звука, видать забыл включить поддержку ac97 кодека и ядро перекомилилось без него. И вот теперь получается что у меня есть ac97_codec скомпиленый от прежнего ядра, а под новым(перекомпиленым) он не хочет загружаться, т.к. ругается на неправильную версию ядра. Я конечно могу его загрузить методом грубой силы, набрав "insmod -f ac97_codec". Но мне чертовски интересно, можно ли скомпилить этот модуль отдельно, я имею в виду собственно /usr/src/<версия ядра>/drivers/sound/ac97_codec.c ?! Я не знаю как это сделать. Покажите плиз на примере, какие команды давать чтобы можно было скомлилить и что нужно еще делать?

anonymous

Re: Компиляция модуля!!!

Из руководства "Linux Kernel Module Programming Guide" для ядра 2.6.x:


[quote]

...откройте Makefile ядра и удостоверьтесь, что информация о версии в точности соответствует целевому ядру. Например, в данном конкретном случае Makefile должен содержать строки

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 5
EXTRAVERSION = -1.358custom
...


Теперь запустите make, чтобы обновить информацию о версии:

[root@pcsenonsrv linux-2.6.x]# make
CHK include/linux/version.h
UPD include/linux/version.h
SYMLINK include/asm -> include/asm-i386
SPLIT include/linux/autoconf.h -> include/config/*
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
HOSTCC scripts/basic/docproc
HOSTCC scripts/conmakehash
HOSTCC scripts/kallsyms
CC scripts/empty.o
...


Если вы не желаете полностью пересобирать ядро, то можете прервать процесс сборки (CTRL_C) сразу же после появления строки, начинающейся со слова SPLIT, поскольку в этот момент все необходимые файлы уже будут готовы. Перейдем в каталог с исходными текстами модуля и скомпилируем его. Теперь сигнатура версии модуля будет в точности соответствовать версии целевого ядра и будет загружено им без каких либо проблем.

[/quote]

Однако, для ветки 2.6.x пересобрать только один модуль, после mrproper
по-моему не удастся, бо там теперь всем этим хозяйством kbuild
разруливает и по-моему он сразу пойдет все ядро пересобирать.
Как для 2.4.x -- не в курсе, но вроде там тоже не все так просто.


andrey-x ()

Re: Компиляция модуля!!!

С деревом исходников что-нибудь делали после инсталляции? Если нет, то по нормальному отконфигурировать и провести всю процедуру, то что готово просто пропустится.
Если да, то (с нуля) наверное так можно
отконфигурировать 
make dep (2.4 ведь?)
cd drivers/sound/
make ac97_codec.o
Должно скомпилировать (+ то от чего он зависит)
скопировать этот модуль куда надо
depmod -a

Bolverk ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.