运行 Linux 内核模块(Hello World)

3

我正在尝试运行一个hello world内核模块,但是显示module.h不存在。但是我在/usr/src/linux.2.xx.xx/includes/中有module.h。请帮助我如何设置这个路径?

2个回答

2
请在包含您模块源代码的目录中,尝试以下操作:
export KDIR=/usr/src/linux.2.xx.xx
make -C $KDIR M=`pwd`

该头文件应该通过#include <linux/module.h>来使用。

0
尝试创建一个新的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 文件相同的目录中

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接