The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Проблема с компиляцией модуля. Помогите плиз."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от Zlodei on 06-Апр-06, 12:37 
Я первый раз с этим сталкиваюсь. Просто возникла необходимость написания драйвера для диплома.

Когда я пробую собрать модулю по примерам то че то у меня не получается!
Пожайлуста направте на путь истинный.
___________________________
Файл mydrv.c

#include <linux/module.h>
#include <linux/init.h>

MODULE_LICENSE("GPL");

static int __init my_init(void)
{
printk("<1>Da\n");
return 0;
};

static void __exit my_cleanup(void)
{
printk("<1>Net\n");
return;
};

module_init(my_init);
module_exit(my_cleanup);

Файл makefile
obj-m += mydrv.c

Команда для компиляции:
make -C /lib/modules/`uname -r` SUBDIRS=$PWD makefile

После чего не выдается ни каких ошибок и сообщений вообще. И получается какбудто команда выполнена. Хотя объектного файла mydrv.o я не нахожу ни где.

makefile и mydrv.c расположены в одной папке /home/Nikolai. Компилирую тоже из этой папки.
ОС ASP Linux 2.6.9-1.667
_________________________________
Заранее благодарен!!!

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от 111 (??) on 06-Апр-06, 13:36 
>Я первый раз с этим сталкиваюсь. Просто возникла необходимость написания драйвера для
>диплома.
>
>Когда я пробую собрать модулю по примерам то че то у меня
>не получается!
>Пожайлуста направте на путь истинный.
>___________________________
>Файл mydrv.c
>
>#include <linux/module.h>
>#include <linux/init.h>
>
>MODULE_LICENSE("GPL");
>
>static int __init my_init(void)
>{
>printk("<1>Da\n");
>return 0;
>};
>
>static void __exit my_cleanup(void)
>{
>printk("<1>Net\n");
>return;
>};
>
>module_init(my_init);
>module_exit(my_cleanup);
>
>Файл makefile
>obj-m += mydrv.c
>
>Команда для компиляции:
>make -C /lib/modules/`uname -r` SUBDIRS=$PWD makefile
>
>После чего не выдается ни каких ошибок и сообщений вообще. И получается
>какбудто команда выполнена. Хотя объектного файла mydrv.o я не нахожу ни
>где.
>
>makefile и mydrv.c расположены в одной папке /home/Nikolai. Компилирую тоже из этой
>папки.
>ОС ASP Linux 2.6.9-1.667
>_________________________________
>Заранее благодарен!!!

а через find искать не пробовали

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от Zlodei on 06-Апр-06, 14:27 
Пробовал. Не помогает. :(
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от vvvua (??) on 06-Апр-06, 14:36 
-C /lib/modules/`uname -r`

А makefile разве в этой директории?
Что-то с путями нахамутал.
Попробуй все пути абсолютными задать.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от vvvua (??) on 06-Апр-06, 14:48 
Вот еще примерчик пригодится:
http://www.captain.at/programming/rtai/serportint.php

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от Zlodei on 06-Апр-06, 15:27 
>Вот еще примерчик пригодится:
>http://www.captain.at/programming/rtai/serportint.php

Огромное спасибо за примерчик. Немного сдвинулось. Изменил makefile на:
obj-m := mydrv.c

KDIR := /lib/modules/$(shell uname -r)/build
PWD := $#(shell pwd)

default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

Командная строка (из директории с makefile):
make -f makefile

Теперь выдает следующее:
[root@localhost Nikolai]# make -f makefile
make -C /lib/modules/2.6.9-1.667asp/build SUBDIRS= modules
make[1]: Entering directory `/lib/modules/2.6.9-1.667asp/build'
  CHK     include/linux/version.h
  SPLIT   include/linux/autoconf.h -> include/config/*
  CHK     include/asm-i386/asm_offsets.h
  HOSTCC  scripts/genksyms/genksyms.o
  HOSTCC  scripts/genksyms/lex.o
  HOSTCC  scripts/genksyms/parse.o
  HOSTLD  scripts/genksyms/genksyms
  CC      scripts/mod/empty.o
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
make[2]: *** Нет правила для сборки цели `arch/i386/kernel/msr.c', требуемой для `arch/i386/kernel/msr.o'.  Останов.
make[1]: *** [arch/i386/kernel] Ошибка 2
make[1]: Leaving directory `/lib/modules/2.6.9-1.667asp/build'
make: *** [default] Ошибка 2
_____________
В чем проблема?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от Renat email(??) on 07-Апр-06, 10:33 
>KDIR := /lib/modules/$(shell uname -r)/build

Build должен быть ссылкой на директорию исходников ядра, причем
ядро должно быть скомпилировано.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Проблема с компиляцией модуля. Помогите плиз."  
Сообщение от Zlodei on 11-Апр-06, 11:49 
После компиляции модуля образовался файл mydrv.ko
Но при его инсталяции появляется ошибка:

[root@localhost Nikolai]# insmod ./mydrv.ko
insmod: error inserting './mydrv.ko': -1 Invalid module format

Что это значит?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру