Kernel Modules

5 отговора 0 прегледа
#1

Kernel Modules

Опитвам се да компилирам един "Hello World" Kernel Module но ми излиза:

make -C /lib/modules/2.6.18-4-686/build M=/home/dimitar/Desktop/Kernel Modules modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.18-4-686'
make[1]: *** No rule to make target `Modules'. Stop.
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-4-686'
make: *** [all] Error 2

Имам Linux Headers a също така компилирах ndiswrapper който в себе си съдържа модул.

Файлове:

hello-1.c

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

int init_module(void)
{
printk(KERN_INFO "Hello world 1.\n");

return 0;
}

void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world 1.\n");
}


makefile

obj-m += hello-1.o

all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Отговор
в отговор на Debian #2

Re: Kernel Modules

Пробвай да сложиш $(PWD) в (двойни) кавички. Или най-добре си преименувай директорията да няма интервали в името й.

П.П. Не знам откъде си го гледал този пример за модул, но не е верен.

The generation of random numbers is too important to be left to chance.

Редактирано от | на

Отговор
в отговор на | #3

Re: Kernel Modules

[линк] Пишеше го поне на още 5-6 места та предположих че е вярно . Иначе се оправи.

Големи благодарности!

Отговор
в отговор на dasad #4

Re: Kernel Modules

[линк] показва новия (и правилен ;) метод за писане на модули :)

The generation of random numbers is too important to be left to chance.
Отговор
в отговор на | #5

Re: Kernel Modules

Нали разбираш че това дето си ми го дал е едно и също. Двата Makefile съвпадат.

Отговор
в отговор на dasad #6

Re: Kernel Modules

Разликата не е в makefile, а C кода.

The generation of random numbers is too important to be left to chance.
Отговор