Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сборка модуля в linux
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
andron86
Привет всем!
Пытаюсь собрать tty модуль для 2.6.11 кернела при этом нужно подключить функцию из другого с-файла, или вернее собрать модуль из двух с-фаилов. Как это можно сделать?
Заранее всем благодарен!
smile.gif
andron86
Всё вопрос решен.
Если кому интересно, то я сделал так:
В Makefile

obj-m += modul.o
modul-objs := modul1.o modul2.o
reddot
можно еще использовать такой вариант:

ld -r module1.o module2.o <...> -o module.o
Doka
не стал плодить еще одну тему. напишу тут:

При сборке двайвера под RHEL4 столкнулся с проблемой на шаге: "edit the Makefile to make sure the path of KERNEL_SOURCE is your are running, and the kernel version is correctly configure."

в самом Makefile есть пример: KERNEL_SOURCE=/usr/src/linux-2.6.7

однако у меня немного иная структура каталогов:
Код
[doka@srv ~]$ ls /usr/src/kernels
    2.6.9-5.EL-hugemem-i686
    2.6.9-5.EL-i686  
    2.6.9-5.EL-smp-i686
[doka@srv ~]$ ls /usr/src/redhat
    BUILD
    RPMS  
    SOURCES  
    SPECS  
    SRPMS

как невкалифицированный пользователь Линукс не знаю какую из трех папок было бы правильным указать :(

еще смутила такая строчка в мануале по сборке драйвера:
Цитата
If your platform is not SMP system, please don't config SMP supported, because when module loaded, this will make unresolved symbol..
совсем непонятно что имеется в виду :-/
faa
Цитата(Doka @ Oct 20 2006, 21:43) *
не стал плодить еще одну тему. напишу тут:

При сборке двайвера под RHEL4 столкнулся с проблемой на шаге: "edit the Makefile to make sure the path of KERNEL_SOURCE is your are running, and the kernel version is correctly configure."

в самом Makefile есть пример: KERNEL_SOURCE=/usr/src/linux-2.6.7

однако у меня немного иная структура каталогов:
Код
[doka@srv ~]$ ls /usr/src/kernels
    2.6.9-5.EL-hugemem-i686
    2.6.9-5.EL-i686  
    2.6.9-5.EL-smp-i686
[doka@srv ~]$ ls /usr/src/redhat
    BUILD
    RPMS  
    SOURCES  
    SPECS  
    SRPMS

как невкалифицированный пользователь Линукс не знаю какую из трех папок было бы правильным указать sad.gif

еще смутила такая строчка в мануале по сборке драйвера:
Цитата
If your platform is not SMP system, please don't config SMP supported, because when module loaded, this will make unresolved symbol..
совсем непонятно что имеется в виду :-/

Делаем
#uname -r
смотрим, что получилось - это рабочее ядро
далее по инструкции - доки рулят smile.gif
Doka
Цитата(faa @ Oct 21 2006, 00:02) *
Делаем
#uname -r
смотрим, что получилось - это рабочее ядро
далее по инструкции - доки рулят smile.gif

хех..
Код
[doka@srv ~]$ uname -r
2.6.9-5.EL
так чтоже мне несуществующую папку "2.6.9-5.EL" в Makefile прописывать????
andron86
Цитата(Doka @ Oct 21 2006, 06:04) *
Цитата(faa @ Oct 21 2006, 00:02) *
Делаем
#uname -r
смотрим, что получилось - это рабочее ядро
далее по инструкции - доки рулят smile.gif

хех..
Код
[doka@srv ~]$ uname -r
2.6.9-5.EL
так чтоже мне несуществующую папку "2.6.9-5.EL" в Makefile прописывать????

Думаю, да.
faa
Цитата(Doka @ Oct 21 2006, 08:04) *
хех..
Код
[doka@srv ~]$ uname -r
2.6.9-5.EL
так чтоже мне несуществующую папку "2.6.9-5.EL" в Makefile прописывать????

а что говорят
uname -a
rpm -qa|grep kernel
ls -l /usr/src/kern*
ls -l /usr/src
?
Doka
Код
[doka@srv ~]$ uname -a
Linux srv 2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005 i686 i686 i386 GNU/Linux

[doka@srv ~]$ rpm -qa|grep kernel
kernel-hugemem-devel-2.6.9-5.EL
kernel-devel-2.6.9-5.EL
kernel-utils-2.4-13.1.48
kernel-2.6.9-5.EL
kernel-smp-devel-2.6.9-5.EL

[doka@srv ~]$ ls -l /usr/src/kern*
total 24
drwxr-xr-x  17 root root 4096 Sep  6 21:45 2.6.9-5.EL-hugemem-i686
drwxr-xr-x  17 root root 4096 Sep  6 21:44 2.6.9-5.EL-i686
drwxr-xr-x  17 root root 4096 Sep  6 21:45 2.6.9-5.EL-smp-i686

[doka@srv ~]$ ls -l /usr/src
total 16
drwxr-xr-x  5 root root 4096 Sep  6 21:45 kernels
drwxr-xr-x  7 root root 4096 Sep  6 21:46 redhat
makc
Думаю, что стоит указать в Makefile на 2.6.9-5.EL-i686
Doka
итог:
вне зависимости от указаний
2.6.9-5.EL-i686 или 2.6.9-5.EL сборщик драйвера "самонастроился" на директорию /usr/src/kernels/2.6.9-5.EL-i686

всем спасибо за помощь
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.