LINUX.ORG.RU

Ошибка модуля ядра


0

1

Доброго времени суток ЛОР. Пытаюсь разобратся в написании модулей для ядра.

Начал с по традиции с hello world. Сам код:

#include <linux/module.h>       /* Needed by all modules */
#include <linux/kernel.h>       /* Needed for KERN_INFO */
#include <linux/init.h>         /* Needed for the macros */

static int __init hello_start(void)
{
printk(KERN_INFO "Loading hello module...\n");
printk(KERN_INFO "Hello world\n");
return 0;
}

static void __exit hello_end(void)
{
printk(KERN_INFO "Goodbye Mr.\n");
}

module_init(hello_start);
module_exit(hello_end);

Makefile:

obj-m += testmodule.o
 
all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
 
clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clear

выполняю make:

make -C /lib/modules/2.6.35-ARCH/build M=/home/shk/dev/testmodule modules
make[1]: Entering directory `/usr/src/linux-2.6.35-ARCH'
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "module_layout" [/home/shk/dev/testmodule/testmodule.ko] undefined!
make[1]: Leaving directory `/usr/src/linux-2.6.35-ARCH'


Далее по инструкции: insmod testmodule.ko
Появляется ошибка:insmod: error inserting 'testmodule.ko': -1 Invalid module format

В чем проблема? Как исправить? 

Всем спасибо.

Makefile:

obj-m := test.o
build.sh:
make -C /usr/src/linux-`uname -r`/ M=`pwd` modules
Собирается. 2.6.35-ARCH

anon_666 ()

>Появляется ошибка:insmod: error inserting 'testmodule.ko': -1 Invalid module format

Работающее ядро скомпилировано не из исходников «/usr/src/linux-2.6.35-ARCH»?

ttnl ★★★★★ ()
Ответ на: комментарий от anon_666

Там вообще заголовков достаточно, пусть для своего ядра поставит.

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