0

我正在学习 Linux 内核编程。我正在尝试从多个文件构建我的模块。它构建并加载,但 dmesg 中没有消息。出了什么问题?

解决方案.c:

#include <linux/init.h>
#include <linux/module.h>
#include "checker.h"

static const char* msg = "Hello from my module!";
extern void call_me(const char*);

static int __init init(void)
{
    printk(KERN_INFO "322\n");
    call_me(msg);
    printk(KERN_ALERT "After the function\n");
    return 0;
}

 static void __exit exitFromModule(void)
{
    printk(KERN_ALERT "BYE\n");
    return;
}

module_init(init);
module_exit(exitFromModule);

检查器.h:

#include <linux/module.h>
 void call_me(const char* str);

检查器.c:

#include "checker.h" #include <linux/kernel.h>

void call_me(const char* str)
{
    printk("<1>FROM CALL_ME!\n");
    return;
}

生成文件:

CURRENT = $(shell uname -r)
KDIR = /lib/modules/$(CURRENT)/build
PWD = $(shell pwd)
DEST = /lib/modules/$(CURRENT)/misc
TARGET = solution

obj-m := $(TARGET).o
solution-objs  :=  checker.o

all:
        make -C $(KDIR) M=$(PWD)  modules

clean:
        make -C $(KDIR) M=$(PWD) clean
        @rm -f *.o .*.cmd .*.flags *.mod.c *.order;
        @rm -f .*.*.cmd *.symvers *~ *.*~ TODO.*
        @rm -fR .tmp*
        @rm -rf .tmp_versions

之后我开始制作并编译。但是在 insmod 之后 dmesg 中有消息。

4

0 回答 0