首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译内核模块时生成文件错误

编译内核模块时生成文件错误
EN

Stack Overflow用户
提问于 2020-05-25 00:44:59
回答 1查看 463关注 0票数 0

您好,我正在尝试编译我的第一个内核模块,但我收到一条错误消息。模块的hello.c程序如下所示:

代码语言:javascript
复制
#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void){
printk(KERN_ALERT "Hello, world\n");
return 0;
}

static void hello_exit(void){
printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

我的makefile如下:

代码语言:javascript
复制
obj-m := hello.o
KDIR := /lib/modules/4.19.94-ti-r42/build
PWD := $(shell pwd)

default:
        $(MAKE) -C $(KDIR) M=$(PWD)

我还想提一下,我试图用SUBDIRS=$(PWD)替换M=$(PWD),但仍然收到相同的错误。当我运行make文件时,我收到以下错误消息:

代码语言:javascript
复制
debian@beaglebone:~/LDD-3$ make
make -C /lib/modules/4.19.94-ti-r42/build M=/home/debian/LDD-3
make[1]: Entering directory '/usr/src/linux-headers-4.19.94-ti-r42'
scripts/Makefile.build:45: /home/debian/LDD-3/Makefile: No such file or directory
make[2]: *** No rule to make target '/home/debian/LDD-3/Makefile'.  Stop.
make[1]: *** [Makefile:1522: _module_/home/debian/LDD-3] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.19.94-ti-r42'
make: *** [makefile:6: default] Error 2

有人知道我可能做错了什么吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 00:49:13

您将makefile命名为makefile,我们可以从下面的消息中看到:

代码语言:javascript
复制
make: *** [makefile:6: default] Error 2

内核构建系统希望您的makefile命名为Makefile,如下面的消息所示:

代码语言:javascript
复制
scripts/Makefile.build:45: /home/debian/LDD-3/Makefile: No such file or directory

所以我建议你使用:

代码语言:javascript
复制
mv makefile Makefile
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61989163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档