LINUX.ORG.RU

Модуль самый простой


0

0

Пытаюсь сделать самый простой модуль, который сможет 
скомпилиться/загрузиться/ выгрузиться.

Делаю так:
-----------------------------------
#define MODULE
#define __KERNEL__
#include <linux/module.h>

int init_module()
{
	return 0;
}

void cleanup_module()
{
	return;
}
---------------------------------

Makefile:
-----------------------------------
CC = gcc
MODFLAGS = -O3 -Wall -DLINUX

module.o: module.c
	$(CC) $(MODFLAGS) $(CFLAGS) -c module.c
-----------------
Компилируется с большим числом ошибок. Причем ошибки все на 
неопределенный тип данных. Например не распознается uid_t, pid_t, size_t.

Что я упустил?
★★★★

Забыл прочитать книжку?

В частности, раздел "как всё это хозяйство правильно компилировать".

execve
()

#include <ctype.h>

anonymous
()

gcc -I/lib/modules/`uname -r`/build/include

Murr ★★
()

Если ядро 2.6, то makefile должен быть таким:

KERNELDIR=/lib/modules/$(shell uname -r)/build/

obj-m += module.o
default:
        make -C $(KERNELDIR) SUBDIRS=$(PWD) modules

vasirck
()
Ответ на: комментарий от vilfred

Так я и делал как раз по тем ссылкам. Там написано так компилять.

Спасибо. Буду разбираться.

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