Запуск модуля ядра Linux (Hello World)

#linux #linux-kernel #kernel #kernel-module

#linux #linux-ядро #ядро #kernel-module

Вопрос:

Я пытаюсь запустить модуль ядра hello world, но его отображающий модуль.h отсутствует. но у меня есть модуль.h в /usr/src/linux.2.xx.xx/includes/.Пожалуйста, помогите мне, как установить этот путь?

Ответ №1:

Попробуйте выполнить следующее в вашей оболочке в каталоге с исходным кодом вашего модуля:

 export KDIR=/usr/src/linux.2.xx.xx
make -C $KDIR M=`pwd`
  

Этот заголовок следует использовать через #include <linux/module.h>

Ответ №2:

попробуйте коснуться нового makefile, который кодирует, как показано ниже

 ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
  
  1. этот makefile должен иметь имя «Makefile»
  2. поместите его в тот же каталог, что и файл hello.c