Модуль ядра делает ошибки файла - PullRequest
0 голосов
/ 22 мая 2019

Итак, я пытаюсь собрать простой первый модуль ядра в arch linux, но получаю ошибку с моим файлом make

Я попытался найти заголовки ядра для своего uname -r, но не повезло

obj-m += Test.c
KIDR = /usr/lib/modules/5.1.3-arch1-1-ARCH
all:
        $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
        echo DONE

мои ошибки:

prompt$ make
make -C  SUBDIRS=/home/johndoe/KernelModule modules
make[1]: *** SUBDIRS=/home/johndoe/KernelModule: No such file or directory.  Stop.
make: *** [Makefile:4: all] Error 2

и мой код:

#include <linux/init.h>
#include <linux/module.h>
static int entry_func(void){
        printk("ENTERED");
        return 0;
}

static exit_func(void){
        printk("EXITING");
}
module_init(entry_func);
module_exit(exit_func);

1 Ответ

0 голосов
/ 22 мая 2019

Кажется, что ваш путь не верен.Пожалуйста, проверьте путь вашего исходного файла.Вы используете переменную $SUBDIRS для пути, где расположен ваш внешний модуль.Таким образом, вы можете удалить это, если ваш модуль находится в вашем исходном файле.

obj-m   += Test.o

all:
    make -C ${KDIR} modules

clean:
    make -C ${KDIR} clean

Вы можете найти дополнительную информацию здесь .

У вас установлены исходные коды ядра?В противном случае ваша система не содержит никаких источников.

...