linux内核中-objs用法,Makefile中的objs会破坏内核模块
我正在尝试为显示器编写内核模块,但我正在努力学习基础知识 . 如果我尝试分离源文件并通过-objs在Makefile中定义它,内核模块将被编译,加载,但不会做任何事情 .码:driver.c#define LINUX#include #include #include "display.h"int init_module(void) {printk(KERN_INFO "module regist
我正在尝试为显示器编写内核模块,但我正在努力学习基础知识 . 如果我尝试分离源文件并通过-objs在Makefile中定义它,内核模块将被编译,加载,但不会做任何事情 .
码:
driver.c
#define LINUX
#include
#include
#include "display.h"
int init_module(void) {
printk(KERN_INFO "module registered\n");
init_display();
return 0;
}
void cleanup_module(void) {
printk(KERN_INFO "module unregistered\n");
}
display.h
#ifndef DISPLAY_H
#define DISPLAY_H
void init_display (void);
#endif
display.c
#include "display.h"
#include /* Needed by all modules */
#include /* Needed for KERN_ALERT */
void init_display (void) {
printk(KERN_INFO "initialize display\n");
}
Makefile文件
obj-m := driver.o
driver-objs := driver.o display.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
如果没有Makefile中的include和driver-objs,我将获得KERN_INFO(加载,卸载)输出,并且kernellog为空 .
任何方向,我做错了什么?
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)